在我的應用程序中,我有一個有腳的角色,我想讓它在我的應用程序中看起來就像站在另一個CCSprite頂部,因爲它在屏幕上移動(動畫)。一切都工作正常除了有一個小的定位問題,我無法弄清楚! 讓我再解釋一下這個問題,當角色位於CCSprite頂部時,看起來好像角色以非常快的間隔向上/向下移動約10個點。當CCSprite在屏幕上顯示動畫時,CCSprite定位問題在其他CCSprite之上?
有沒有人知道爲什麼會發生這種情況?
謝謝!
FINAL EDIT:我只想再次感謝你幫助我完成所有這些。首先,由於帖子太長,我刪除了所有其他修改,如果您需要參考舊版編輯,只需查看我的編輯歷史記錄即可!所以經過大約一個小時的測試,我已經縮小到一個你剛纔提到的問題,if語句檢查角色和地板是否碰撞是不是在遊戲中被調用每次迭代當他們SHOULD(只要他們看UI)循環。
我cocosGameLoop日誌之外,之前所有的碰撞檢測代碼,但在比賽還有loop.f
我也注意到在我NSLogs的模式,你可以看到如下:
2012-05-27 17:00:54.791 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.811 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.825 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.841 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.858 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.874 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.891 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.908 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.924 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.928 App[2769:707] collisiontwo
2012-05-27 17:00:54.929 App[2769:707] two
2012-05-27 17:00:54.941 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.944 App[2769:707] collisiontwo
2012-05-27 17:00:54.945 App[2769:707] two
2012-05-27 17:00:54.958 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.974 App[2769:707] cocosGameLoop
2012-05-27 17:00:54.991 App[2769:707] cocosGameLoop
2012-05-27 17:00:55.008 App[2769:707] cocosGameLoop
2012-05-27 17:00:55.025 App[2769:707] cocosGameLoop
2012-05-27 17:00:55.043 App[2769:707] cocosGameLoop
2012-05-27 17:00:55.058 App[2769:707] cocosGameLoop
2012-05-27 17:00:55.076 App[2769:707] cocosGameLoop
2012-05-27 17:00:55.078 App[2769:707] collisiontwo
2012-05-27 17:00:55.078 App[2769:707] two
2012-05-27 17:00:55.091 App[2769:707] cocosGameLoop
2012-05-27 17:00:55.094 App[2769:707] collisiontwo
我也注意到當我NSLog字符Y座標是它停留在幾個interations的相同點(即使它應該是碰撞,所以它將與上面的NSLog中的一堆cocosGameLoop調用重合),然後當它實際上會發生碰撞(以編程方式),它會從Y座標上移約14個點。所以存在大約14個點的抖動。
所以底線是,我怎樣才能讓碰撞代碼被稱爲每次迭代並且不會抖動大約14個點?我不想更改定位點,因爲這會攪亂我的動畫定位等等。無論如何,你推薦什麼?另外請記住,我只使用Box2D進行碰撞檢測,因此我必須將所有內容保存在Cocos2D代碼中。
最後,我認爲我的應用程序中存在舍入點錯誤,因爲重力,但即使當我將值改變爲重力等整數時,它也沒有修復閃爍,因此它是100%問題我上面提到。
無論如何,這是問題的核心,我認爲你可以看到我無法做到的事情!讓我知道你的想法:)
非常感謝!
對不起,你放在這裏的coe讓我覺得沒有語境。你可以把整個語句不是其他的如果。 – Coder404
我增加了一些代碼來提供更多的上下文。同樣在大的註釋掉線之下,它會從另一個開始,因爲我有其他的if語句用於碰撞檢測,但在這個問題中不相關。 –
您應該可以將Box2d添加到您的標籤(用於增加流量)和 – Coder404