Rodrigo López
Rodrigo López

Reputation: 227

Having an id for images in Lua (Corona SDK)

I'm trying to make a game similar to candy crush in Lua. Here is the code:

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

I need to know which image is moving, to know if with the new position they made 3 in a line.

So my question is, how can i have an id or a identifier to know which image the user is moving in the table?

Thanks for your help

Upvotes: 2

Views: 1346

Answers (2)

Rob Miracle
Rob Miracle

Reputation: 3063

I would put your blocks into a table to keep track of each of them. But to answer your specific question, Lua allows you to add any method or attribute to an object, so you can do:

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

Then in your tap/touch handler, your "event.target" is the object, so you can say:

 print(event.target.gobbldygook)

Upvotes: 1

DevfaR
DevfaR

Reputation: 1616

you must put ID in each object you create for example:

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())

hopes this helps :)

Upvotes: 2

Related Questions