2014-09-26 97 views
0

我目前的工作在LibGDX遊戲向前移動(朝其前置)。你可能看過另一篇文章。我已經解決了這個問題,但現在,我面臨的事實是,我似乎無法將我的球員移向(它總是向上移動而不是指向前方)。我嘗試了一切,從使用Box2D到我在網上找到的建議使用trig函數的答案。有沒有人設法做到這一點?使玩家在LibGDX

回答

0

物體的運動usualy設定自己的X(左和右)和y(上下)進行協調。
要知道如何操縱它們,你需要知道他正在做的方向。
在自頂向下的遊戲它可能是一個Vector2,它給你在x和y方向上的相對運動的歸一化Vector(長度= 1的Vector)。在平臺遊戲中,它可能只是一個boolean,它定義了你是面向左右。然後通過跳躍和其他「上行力」和萬有引力定義上/下運動。

我覺得你的情況這是一個自上而下的遊戲,所以你需要一個Vector2
當你rotate你的性格,你需要rotateVector2來。爲了確保您的Vector2在操作後被歸一化,請撥打nor()
updaterender方法你應該設置你的角色的X和Y座標如下:

player.x = direction.x*delta*speed; 
player.y = direction.y*delta*speed; 

哪裏deltaGdx.Graphics.getDeltaTime()speed是您的播放器的movementspeed。

希望它有幫助

+0

這個「方向」是指玩家的位置嗎? – furyfish 2014-11-04 03:20:28

+0

@furyfish否,則'player.x'和'player.y'是位置,'direction'是歸一化(長度== 1)'VECTOR',給予運動的百分比在'x'和'ÿ ',這是玩家正在觀看的地方。如果你在左邊觀看,那麼'direction.x'爲-1,'direction.y'爲0.如果你正在觀看(45°),'direction.x'爲0.5,'direction .y'也是0.5 – Springrbua 2014-11-04 06:31:18