Сравните значение первого клика со значением второго клика в LUA (Corona SDK) - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть сцена с двумя объектами, и я хотел бы сохранить значение объекта в переменной, чтобы сравнить, являются ли они одинаковыми или разными. Как я могу сделать? Помогите мне, пожалуйста.

local function click( event )
    print( "Tap event on: " .. event.target.id )
    if (click1 == click2) then
        print("is true")
    else
        print("is false")
    end
    return true
end

object1 = display.newImage("img/card1.png")
object1.x = 30
object1.y = 30
object1.name = "obj1"   
object1.id = "obj1"
object1:addEventListener("tap",click)
group:insert(object1)

object2 = display.newImage("img/card2.png")
object2.x = 30
object2.y = 30
object2.name = "obj2"   
object2.id = "obj2"
object2:addEventListener("tap",click)
group:insert(object2)

1 Ответ

0 голосов
/ 04 февраля 2020

В своем заголовке вы говорите, что хотите сравнить «клики», поэтому я предполагал, что вы хотите сравнить координаты x и y каждого клика. Но в вашем реальном описании звучит так, будто вы хотите сравнить эти две lua таблицы object1 и object2 друг с другом.

Вы не можете использовать == здесь, потому что это не так сравните содержимое каждой таблицы, но показывают ли они одну и ту же ячейку памяти.

Чтобы сравнить их, вам нужно написать собственный код, который выполняет «глубокое» сравнение и проверяет необходимые значения в обеих таблицах на равенство.

Например, это проверяет если оба объекта находятся в одном месте:

object1 = {}
object1.x = 30
object1.y = 30

object2 = {}
object2.x = 30
object2.y = 30

if object1.x == object2.x and object1.y == object2.y then
  print("foo")
end
...