我想知道它是怎么可能的,我可以在某个点绘制一个对象并移动到屏幕上的点。我试图将它用于我的游戏,当用户触摸屏幕时,枪会从玩家的位置触发,但玩家是静止的。移动对象帮助
在此先感谢。
P.S.
是否有某种视觉图形显示每个情节在android上的位置。
我想知道它是怎么可能的,我可以在某个点绘制一个对象并移动到屏幕上的点。我试图将它用于我的游戏,当用户触摸屏幕时,枪会从玩家的位置触发,但玩家是静止的。移动对象帮助
在此先感谢。
P.S.
是否有某种视觉图形显示每个情节在android上的位置。
我不知道你用什么样的库来绘制所有的事情,但基本上没有关系,因为你只需要知道为了做到这一点两件事情:
无进入矢量几何的细节:
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;
如果您有测量两帧之间时间的方法,则速度变量应取决于这些帧之间的时间间隔,以便在不同平台上创建平滑移动。
@heishe你不需要创建HTML标签来处理代码。只需选择代码并点击“代码示例”按钮(或者每行添加4个空格) – WarrenFaith 2011-06-09 23:15:56
谢谢!我已经想知道为什么这么做太复杂了。我浏览了FAQ并没有找到任何东西,所以非常感谢:) – TravisG 2011-06-10 16:48:45
我会把这一点放到我的项目符号类或我的线程内。 – Manji 2011-06-10 19:52:30
我不想做一个拖放。玩家图标位于PointA,永不移动。攻击的精灵向他移动。而且我试图将它放到屏幕上,当它触摸屏幕时,它会向该位置发送一颗子弹。但是直到你触摸屏幕,子弹才会被绘制。 – Manji 2011-06-09 23:12:38