移动对象帮助

时间:2011-06-09 22:45:13

标签: java android

我想知道怎么可能,我可以在某一点绘制一个物体并移动到屏幕上触摸的点。我试图将它用于我的游戏,当用户触摸屏幕时,枪从玩家的位置开始射击,但玩家是静止的。

提前致谢。

P.S。

是否有某种形象的视觉图形显示每个情节在Android上的位置。

1 个答案:

答案 0 :(得分:0)

我不知道你用什么样的库来绘制你所有的东西,但这基本上没关系,因为你只需要知道两件事就可以了:

不涉及矢量几何的具体细节:

1.你需要根据你的鼠标位置计算射弹移动的方向(x和y分量)。只需从播放器的位置减去鼠标的位置即可获得此方向:

//x component of direction
float direction_x = mousePosition.x - playerPosition.x;
//y component of direction
float direction_y = mousePosition.y - playerPosition.y;

为了获得方向而不是向此向量添加速度分量,您需要对其进行标准化(因此它的长度为1):

float length =(float) Math.sqrt(direction_x*direction_x + direction_y*direction_y);
direction_x /= length;
direction_y /= length;

然后你需要通过向它添加direction_x和direction_y组件来更新射弹位置,乘以你想要射弹的速度(顺便说一下,这个过程称为线性插值):

projectile_x += direction_x*speed;
projectile_y += direction_y*speed;

如果您有某种方法可以测量两帧之间的时间,则速度变量应取决于这些帧之间的经过时间,以便在不同平台上创建平滑的移动。