2013-04-12 24 views
0

本週我剛開始使用Cocos2D。而玩弄的Box2D我想知道是否有可能與CCActions的幫助移動CCSprites和使用box2ds collisiion檢測功能來檢測這些精靈之間的碰撞..可以box2d跟蹤我的Cocos2d動作的精靈?

我敢肯定,這一定是可能?

+1

什麼樣的碰撞?如果矩形/圓形碰撞邊界足夠,物理引擎就會過度殺傷。如果您需要跟蹤精靈的形狀以獲得碰撞聚,您還需要PhysicsEditor。像素完美的碰撞?再次,沒有物理引擎可以做得很好。 – LearnCocos2D

+0

嘿它是關於精靈/多邊碰撞。不知道像素完美的碰撞是不可能的。是否因爲從m到px的轉換錯誤?從我的Cocos tick回調中爲碰撞檢測調用CoreGraphics交叉方法怎麼樣? – bijan

+1

物理引擎沒有圖形的概念,所以它不可能知道表示你的遊戲對象之一的像素。相反,您必須使用多邊形和儘可能少的頂點近似形狀,這是一個關鍵的性能問題。例如,Box2D允許多邊形不超過8個頂點。 – LearnCocos2D

回答

1

如果你不需要真正的物理行爲,我強烈建議「手動」處理你的碰撞邏輯。也就是說,對於您的場景,我會從這種方法開始.-

  • 爲每個精靈創建一個主體,並將每個精靈分配給用戶數據。
  • 你的「靜態」的情況將映射到靜態物體(如地板,平臺等)
  • 你的「動態」精靈將映射到動態物體,只燈具將被標記爲傳感器
  • 你'd註冊一個b2ContactListener來監聽衝突。
  • 至於棘手的部分,你需要在主循環的每次迭代中設置每個主體的位置到每個精靈的位置(當然,將像素轉換爲米),以避免它們只是表現得像物理實體一樣。你可以試着不要調用world-> step,但不確定contactListener是否會工作。

希望它有幫助!

+0

非常感謝你。是的,手動調整精靈位置,也是我能想到的唯一可能性。嗯。也許我會做一些物理學,並通過應用一些力量來移動我的精靈。順便說一句:我絕對需要我的角色的物理行爲,但想要移動我的平臺與CCAction .. – bijan