2013-05-01 112 views
0

我试图从3个不同的显示对象中打印水龙头,但是在终端中打印的水龙头多于一个。 他们需要自己的特定功能,但目前尚不可能。我该怎么办? 我是Corona和LUA的新手。在Corona SDK中点击显示对象

- BOBLER DISPLAY OBJEKTER

本地SPORT1 = display.newImage( “图像/ sport1.png”)

sport1.id = “mySport1”

sport1.x = 120

sport1.y = 90

SPORT1:比例(1,1)

本地gossip1 = display.newImage( “图像/ gossip1.png”)

gossip1.id = “myGossip1”

gossip1.x = 400

gossip1.y = 120

gossip1:比例(1,1)

本地kultur1 = display.newImage( “图像/ kultur1.png”)

kultur1.id = “myKultur1”

kultur1.x = 250

kultur1.y = 200

kultur1 :规模(1,1)

本地函数onSport1Tap(个体经营,事件)

打印(self.id .. “被窃听。”)

本地函数onGossip1Tap(个体经营,事件)

打印(self.id .. “被窃听。”)

本地函数onKultur1Tap(自我,事件)

print(self.id ..“tapped。”)

- TAP的addEventListener

SPORT1。轻按= onSport1Tap

SPORT1:的addEventListener( “抽头”,SPORT1)

gossip1.tap = onGossip1Tap

gossip1:的addEventListener( “抽头”,gossip1)

kultur1.tap = onKultur1Tap

kultur1:的addEventListener( “抽头”,kultur1)

回答

1

我建议你做以下事情:

  1. 使用此功能请点击/触摸事件:

    function sport1:touch(e) 
        if e.phase == "ended" then 
         print(self.id.." was tapped") 
        end 
    end 
    
  2. 使用tables更有效地创建你的对象,尤其是当你计划添加更多的对象。

下面是一个例子,说明:

本地对象= {}

对象[1] = {ID = mySport1,X = 120,Y = 90} - -by的方式,规模是(1,1)上的默认

对象[2] = {...}

对象[3] = {...}

然后可以使用for loops轻松地创建为所有这些信息:

对于i = 1,#objects做

本地对象[I]的.img = display.newImage(“images /”.. object [i] .id ..“。png”)

object [i] .img.x,object [i] .img.y = object [i]。 x,object [i] .y

局部形状=对象[I]的.img

函数形状:触摸(E)

如果e.phase == “结束”,则

打印(对象[I ]。ID..“被窃听”)

形状:的addEventListener( “触摸”)

我希望这不是太先进...它花了我一些时间去了解表格的效能,但是当你需要创建很多参数或对象时,它们会变得非常有效。 关于触摸功能,我没有真正与水龙头工作 - 我只是相信触摸是更好和更简单的使用。

+0

非常感谢您的回复。我会研究你的建议并尝试使其工作。 我使用tap的原因是因为它意味着要在接口中使用,该接口也应该对touch进行响应。 – user2339103 2013-05-02 08:27:08

0

只是return true在所有水龙头的功能,这样的结尾:

local function onKultur1Tap(self, event)  
    print(self.id .. " was tapped.") 
    return true -- ** just it ** 
end