3

我正在學習Swift爲iOS創建遊戲,但我正在努力研究精靈如何碰撞並與背景進行交互。Swift遊戲碰撞檢測和物理 - 精靈和背景

基本的遊戲將是一個球,你引導迷宮,但迷宮可能比屏幕大幾倍。迷宮可能是一個大的位圖,或由瓷磚組成,但我還沒有決定如何使球與迷宮互動。

我可以製作迷宮精靈節點中的所有圖塊,然後讓SpriteKit解決它,但我認爲這不是一個好的選擇。

接下來是SpriteKit邊緣機構,如此處所示 - https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Physics/Physics.html 我可以在迷宮中可能碰撞的部分使用這些嗎?

另一個問題是,迷宮表面可能是圓形的,所以碰撞和物理也需要應對。

我能找到的所有例子似乎都是與其他精靈碰撞的精靈。但是精靈和背景呢?

有沒有人有任何關於如何解決這個問題的聰明的想法,或者你可以指出我的一個例子,可以幫助嗎?

馬克

+0

我建議將牆壁變成精靈(L形,I形等等),然後創建一個SpriteKit場景並放下牆壁。這將使您可以輕鬆設置牆壁的物理類別,並且可以輕鬆與球交互。 –

回答

1

沒有正確或錯誤的方式來做到這一點。

在互動的方式VS,你需要問自己一些問題1點堅實的背景:

多少內存我想消費?
我想在其上使用多少加載時間?
我希望背景有多詳細?
我想做背景的多才多藝(變化量)?
背景是否大於最大紋理大小?

在您決定想要什麼後,您會發現確定您將使用的方法更容易。

你的物理是一個不同的問題,請記住,物理和節點在這裏是兩個不同的東西,所以你的物理機構不必反映節點設計,允許你做像不可見的牆。你有這幾個途徑:

您可以使用SKPhysicsBody(texture:)使用質地,使你的牆(透明度不會有衝突)
如果你正在做的瓷磚,可以將身體連接到每瓦。
最後,您可以生成大量的物體並將它們合併到背景節點中。

同樣,取決於你希望你的地圖工作的方式會告訴你哪個選項是最好的。就我個人而言,我會從最後一個選項開始(將一堆物體合併在一起),因爲這將允許您合併邊緣物體,用於所有混凝土牆,然後如果您需要製作門或臨時牆等物品,我會將它們添加到單獨的節點。

問題與圓的部分。

SKPhysicsBody允許使用CGPath,因此只需爲所需的任何形狀創建路徑。

+0

我想這就是我要找的https://www.raywenderlich.com/137216/whats-new-spritekit-ios-10-look-tile-maps – MarkT

+0

這是ios 10的一項新功能,可以讓你使用拼圖,他們可以有物理實體。 – MarkT

+0

是的。這與我所說的一樣,唯一的問題是你想要消耗所有的內存 – Knight0fDragon