2012-08-26 135 views
1

因此,與Tiled,我可以直接在瓷磚將其放置在地圖上像這樣前設置塊屬性:Cocos2d +平鋪+傳送(平鋪屬性)?

Setting Tile Properties

我就是這樣做了碰撞檢查,通過碰撞屬性設置爲「真',然後在移動精靈時檢查圖塊屬性。

但是,我想添加一個'teleport'瓦片。當玩家在特定的瓷磚上行走時,會將他們帶到一個單獨的位置。

我遇到的問題是當你在一個貼圖上設置一個屬性時,你只能設置一次,而不是在瓷磚實例上。意思是每個瓦片都有相同的傳送位置。

我可以俯視嗎?一般來說,有沒有更好的方法可以在Cocos2d中做到這一點?

回答

2

您可以使用此對象層。將一個「對象」(這只是一個矩形或Tiled中的點)添加到傳送程序塊中,並使用該對象的屬性將兩個位置連接在一起。

加載地圖時,可以遍歷所有對象以查找連接對象。然後你就可以知道傳送陣列中可以存儲的傳送器端點的兩個區域位置。每次你的玩家移動到一個新的瓦片時,檢查傳送陣列以查看該玩家是否在其中一個傳送區域上,如果他是,則將他移動到另一個傳送區塊。

當然,你也可以檢查交叉點與對象(矩形),但由於有可能意外地創建了一個橫跨多個tile的對象(矩形),在遊戲開始之前檢查這些對象似乎更加可靠。

1

嗯,這可能是最好的方式,但這是我所做的。您可以創建一個元層,併爲每個傳送板設置單獨的圖塊。因此,當您檢查玩家是否在teleportingpad1上時,您將玩家位置設置爲receiverPad1(可能是另一個圖塊,對象處於平鋪狀態,或只是您在檢查碰撞時設置的點)。你只需製作另一個例如teleportingpad2,teleportingpad3等更多的墊。