2014-09-26 108 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