2013-09-29 90 views
0

我是新來的網站,並決定創建一個帳戶,因爲我有問題在2D環境中掌握碰撞的概念。與2D雪碧物體碰撞和數學涉及

我擁有的是從上到下的角度設置的一組道具,我試圖設置與它們碰撞的規則,這樣如果玩家走出了道路,他會得到一個遊戲結束。

到目前爲止,我有在原地直路,你可以看到在這裏設置規則:

if ((*it)->getType() == ST_RoadStraight) 
    { 
     Road* road = (Road*)*it; 
     // Check to see if the road sprite is within 16 pixels of the bucket either way 
     int dx = road->getPosition().x - Pos.x; 
     if (dx < 0) dx = -dx; 
     if (dx > 200) 
     { 
      outOfBounds = true; 
     } 
    } 

基本上,我說,如果玩家進入一定的距離在x軸上,這兩種方式將結束遊戲。對於直行的道路來說,這很好,因爲我可以將我更改爲y軸,但我也有彎曲的道路。這裏的資產是什麼樣的一個想法:

直:http://i.imgur.com/bNHYwZO.png

曲:http://i.imgur.com/ppPw7ED.png

基本上,我需要的玩家可以去的道路或者跨越它允許的,但如果他撞到了他要下馬路的地方,我需要這麼說。在直道上這很容易,但是根據球員在彎道上的位置,在Y上的高度爲30像素可能在道路的某個部分是可以的,但是在另一個部分不會好。

從本質上講,我正在尋找某種公式,將允許這是精確地表示了我的比賽。

任何幫助,將不勝感激。

回答

0

有沒有你不能使用Sprite Kit任何理由?

+0

我目前正在使用Marmalade SDK編寫此遊戲,以使其可用於iPhone和Android設備。 我覺得這是用於xcode/objective-c編程。然而,提供我正在尋找的那種碰撞的套件將不勝感激,如果這對我仍然有用,我可能會研究它。 – user2829016

+0

我覺得我應該在Windows上的Visual Studio中也提到這一點。 – user2829016

+0

SpriteKit是Box2D的一個端口,所以如果你可以找到Box2D的另一個與橘子醬一起使用的端口,那麼它應該和Sprite Kit一樣好。 Cocos 2D是Box2D的另一個端口,但我認爲這也僅限於iOS。你可以在這裏訪問Box2D網站:http://box2d.org – WolfLink

0

那麼對於二維碰撞檢測,我建議你使用Box2D物理引擎。在Marmalade中安裝很容易,並提供準確的結果。我在很多橘子醬遊戲中都使用過它。在marmalade's github account有一個box2D擴展。看看它。