在Lua(Corona SDK)中为图像设置id

我正在尝试使用Lua制作类似于“糖果传奇”的游戏。这是代码:

local images = {
    "images/beer.png",
    "images/beef.png",
    "images/canned_food.png",
    "images/cup_ice_cream.png",
    "images/french_fries.png",
    "images/pepper.png"
}

local rowcount = 8
local colcount = 4

local blockWidth = display.contentWidth / (colcount*4)
local blockHeight = display.contentWidth / (rowcount*2)

local row
local col
local pan = 3
for row = 1, rowcount do
    for col = 1, colcount do
        local x = (col - 1) * blockWidth + pan
        local y = (row + 1) * blockHeight + pan
        local block = display.newImage(images[math.random(1, 6)], x, y)
        block:addEventListener("touch", blockTouch)
    end
end

我需要知道哪个图片正在移动,以知道它们是否形成了一行三个。

所以我的问题是,如何在表格中拥有一个ID或标识符,以知道用户正在移动哪个图像?

谢谢您的帮助。

点赞
用户1682268
用户1682268

你必须在每个创建的对象中放置 ID,例如:

local function getID(event)
   t = event.target
   print(t.id)
end

local beef = display.newImage("images/beef.png")
beef.id = "beef"

local canned_food= display.newImage("images/canned_foods.png")
canned_food.id = "cannedfoods"

local fries = display.newImage("images/fench_fries.png")
fries.id = "fries"

beef:addEventListener("tap", getID())
canned_food:addEventListener("tap", getID())
fries:addEventLister("tap", getID())

希望这能对你有所帮助 :)

2013-06-06 03:30:39
用户1870706
用户1870706

我会将您的块放入表格中以跟踪它们的每一个。但是为了回答您的具体问题,Lua允许您向对象添加任何方法或属性,因此您可以这样做:

block.name = "Beer"
block.color = "Green"
block.gobbldygook = 400

然后在您的tap/touch处理程序中,您的“event.target”就是该对象,所以您可以这样说:

print(event.target.gobbldygook)
2013-06-09 23:42:07