2013-05-01 104 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