我想知道怎么可能,我可以在某一点绘制一个物体并移动到屏幕上触摸的点。我试图将它用于我的游戏,当用户触摸屏幕时,枪从玩家的位置开始射击,但玩家是静止的。
提前致谢。
P.S。
是否有某种形象的视觉图形显示每个情节在Android上的位置。
答案 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;
如果您有某种方法可以测量两帧之间的时间,则速度变量应取决于这些帧之间的经过时间,以便在不同平台上创建平滑的移动。