Matrix 将Corona SDK中的tiles合并为一个单词,用于突破游戏网格?
我有一个游戏项目要重新实施。我想显示两个单词,每个单词在一行上。他们用砖块连接起来。在内部,顶行是第一个名字,左对齐。底线是姓氏,右对齐。它们是从文本框输入的,呈现如下所示: 每过一秒,屏幕将向网格添加可配置数量的砖块(例如,每秒五块砖块),直到两个单词显示完整为止。我显示了从矩阵(0,1)创建的字母表中的一个字母 …但我不知道如何把它们组合成一个词我如何加入这些字母? 到目前为止,我得到的是: 卢阿 卢阿Matrix 将Corona SDK中的tiles合并为一个单词,用于突破游戏网格?,matrix,lua,coronasdk,breakout,Matrix,Lua,Coronasdk,Breakout,我有一个游戏项目要重新实施。我想显示两个单词,每个单词在一行上。他们用砖块连接起来。在内部,顶行是第一个名字,左对齐。底线是姓氏,右对齐。它们是从文本框输入的,呈现如下所示: 每过一秒,屏幕将向网格添加可配置数量的砖块(例如,每秒五块砖块),直到两个单词显示完整为止。我显示了从矩阵(0,1)创建的字母表中的一个字母 …但我不知道如何把它们组合成一个词我如何加入这些字母? 到目前为止,我得到的是: 卢阿 卢阿 到目前为止,我所做的工作(如上所述)作为外部下载:为了实际回答这个问题: 我不能100
到目前为止,我所做的工作(如上所述)作为外部下载:为了实际回答这个问题: 我不能100%确定你所说的“我如何加入这些字母”是什么意思,但通过翻阅代码,我有一个猜测,因此请澄清它是否准确,或者我是否对你想要的东西有错误 情景1 你还没有成功地获得屏幕截图中所示的图像-你已经能够绘制一个字母,但不能绘制多个字母 在这种情况下,您需要更好地理解代码正在做什么。
CreateBricksFromTable
函数接受一个Level对象,该对象是由MakeLevel
函数从具有bricks
属性的表创建的,该属性是一个表表的表,表示其中包含列的行,显示每个位置应该是什么类型的砖。在注释掉的级别中,您创建了一个表,其中bricks
字段包含每个字母的字段,但是MakeLevel
函数仍然需要一个直接包含块网格的bricks
字段。您必须创建一个MakeWordLevel
函数(或类似函数),该函数接受此字母列表和每行一个单词,并通过将适当的字母复制到其中来构建一个更大的网格
StackOverflow不是你的编程导师,所以问题不是让人们为你编写代码或一步一步详细介绍如何做到这一点的合适论坛,但我会给你一个基本的提纲。您的函数如下所示:
local function MakeWordLevel(data, line1, line2)
local level = {}
...
return level
end
-- The level data.
local level = {}
-- Create the level data.
for row = 1, 25, 1 do
local rowData = {}
for column = 1, 80, 1 do
rowData[column] = "."
end
level[row] = rowData
end
-- Now let us setup the letters.
local letters = {
A = {
{".",".",".","#",".",".",".","."},
{".",".","#",".","#",".",".","."},
{".",".","#",".","#",".",".","."},
{".","#",".",".",".","#",".","."},
{".","#","#","#","#","#",".","."},
{"#",".",".",".",".",".","#","."},
{"#",".",".",".",".",".","#","."},
{"#",".",".",".",".",".","#","."},
{"#",".",".",".",".",".","#","."}
},
B = {
{"#","#","#","#",".",".","."},
{"#",".",".",".","#",".","."},
{"#",".",".",".","#",".","."},
{"#",".",".",".","#",".","."},
{"#","#","#","#",".",".","."},
{"#",".",".",".","#",".","."},
{"#",".",".",".",".","#","."},
{"#",".",".",".",".","#","."},
{"#","#","#","#","#",".","."}
}
}
-- The string to print.
local text = "ABBA"
-- Let us insert the data into the level data.
for index = 1, #text, 1 do
local char = string.sub(text, index, index)
local charData = letters[char]
local offset = index * 7
for row = 1, 9, 1 do
local rowData = charData[row]
for column = 1, 7, 1 do
level[row][offset + column] = rowData[column]
end
end
end
-- Print everything
for row = 1, 25, 1 do
local rowData = level[row]
for column = 1, 80, 1 do
io.write(rowData[column])
end
print()
end
然后必须:
- 填充所有与
相同的属性MakeLevel
- 计算标高与所有字母的宽度(
)level.columns
- 创建一个与
属性格式相同的表,但其大小足以容纳所有字母bricks
- 检查输入字符串(
和line1
),从现在的line2
数组中找到正确的字母数据,并将该数据复制到大表中test6
- 将该表指定为
level.bricks
local function MakeWordLevel(data, line1, line2)
local level = {}
...
return level
end
-- The level data.
local level = {}
-- Create the level data.
for row = 1, 25, 1 do
local rowData = {}
for column = 1, 80, 1 do
rowData[column] = "."
end
level[row] = rowData
end
-- Now let us setup the letters.
local letters = {
A = {
{".",".",".","#",".",".",".","."},
{".",".","#",".","#",".",".","."},
{".",".","#",".","#",".",".","."},
{".","#",".",".",".","#",".","."},
{".","#","#","#","#","#",".","."},
{"#",".",".",".",".",".","#","."},
{"#",".",".",".",".",".","#","."},
{"#",".",".",".",".",".","#","."},
{"#",".",".",".",".",".","#","."}
},
B = {
{"#","#","#","#",".",".","."},
{"#",".",".",".","#",".","."},
{"#",".",".",".","#",".","."},
{"#",".",".",".","#",".","."},
{"#","#","#","#",".",".","."},
{"#",".",".",".","#",".","."},
{"#",".",".",".",".","#","."},
{"#",".",".",".",".","#","."},
{"#","#","#","#","#",".","."}
}
}
-- The string to print.
local text = "ABBA"
-- Let us insert the data into the level data.
for index = 1, #text, 1 do
local char = string.sub(text, index, index)
local charData = letters[char]
local offset = index * 7
for row = 1, 9, 1 do
local rowData = charData[row]
for column = 1, 7, 1 do
level[row][offset + column] = rowData[column]
end
end
end
-- Print everything
for row = 1, 25, 1 do
local rowData = level[row]
for column = 1, 80, 1 do
io.write(rowData[column])
end
print()
end
将字母保存在查找表中,然后将它们逐段复制到标高数据中。在这里,我将数字替换为点和数字符号,以使其在命令行上更美观
或者,你也可以将单词“呈现”到一个准备好的缓冲区中,然后使用相同的逻辑将其插入到级别数据中。FYI,…谷歌告诉我,在这个页面上找到了“播放快乐的声音,让玩家享受”,所以我来看看-20000个空格在哪里?@techolic他们被删除了:如果你是从谷歌来的,那么你可能是在追求元帖子,请告诉我你是如何在一个StackOverflow帖子中获得20000个空间的!