【问题标题】:Compare the value of the first click with the value of the second click in LUA (Corona SDK)在LUA(Corona SDK)中比较第一次点击的价值和第二次点击的价值
【发布时间】:2020-05-19 14:18:31
【问题描述】:

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

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)

【问题讨论】:

  • 对 Corona 一无所知,但如果您创建一个全局变量 lastClick 并在每次点击时设置 lastClick = event.target.id 在评估 lastClick == event.target.id 之后,您可以将最后一次点击与新点击进行比较。理论上应该可行。

标签: lua coronasdk


【解决方案1】:

在您的标题中,您说要比较“点击”,所以我假设您要比较每次点击的 x 和 y 坐标。但在您的实际描述中,您似乎想将这两个 lua 表 object1object2 相互比较。

你不能在这里使用==,因为它不会比较每个表的内容,而是它们是否指向同一个内存位置。

要比较它们,您必须编写自己的代码,该代码执行“深度”比较并检查两个表中必要的值是否相等。

例如,这将检查两个对象是否在同一位置:

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

【讨论】:

    猜你喜欢
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多