如何在 LUA (Corona SDK) 中比较第一次点击和第二次点击的值

我有一个场景,其中创建了两个对象,并且我想将对象的值存储在变量中,以比较两个对象是相同的还是不同的。 我该怎么办?请帮帮我。

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)
点赞
用户12730491
用户12730491

在您的标题中,您说您想要比较“点击”,因此我假设您想要比较每个点击的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
2020-02-04 08:11:01