Android 使用三角学像猎枪一样射出多发子弹

Android 使用三角学像猎枪一样射出多发子弹,android,trigonometry,angle,Android,Trigonometry,Angle,我正在做一个游戏,玩家跟随鼠标,一颗子弹从玩家后端朝着鼠标移动的相反方向射出。这有点难以用语言解释,所以我很快在paint.net上画了一个草图来演示 灰球是那个运动员。黄色光标是播放器在触摸屏上触摸的位置。黑色的球就是子弹 在示例1和2中,玩家朝着光标移动,子弹在相反方向的快照后面。我想说的是,在例3中,有不止一颗子弹从后面射出来,它们也像散弹枪一样散开 图片: 我的目标是允许玩家升级,一次可以射出多颗子弹。我所希望的是球员能够一次射门5次。提前谢谢 其他项目符号的角度将使用与您使用的公式相

我正在做一个游戏,玩家跟随鼠标,一颗子弹从玩家后端朝着鼠标移动的相反方向射出。这有点难以用语言解释,所以我很快在paint.net上画了一个草图来演示

灰球是那个运动员。黄色光标是播放器在触摸屏上触摸的位置。黑色的球就是子弹

在示例1和2中,玩家朝着光标移动,子弹在相反方向的快照后面。我想说的是,在例3中,有不止一颗子弹从后面射出来,它们也像散弹枪一样散开

图片:


我的目标是允许玩家升级,一次可以射出多颗子弹。我所希望的是球员能够一次射门5次。提前谢谢

其他项目符号的角度将使用与您使用的公式相同的公式,但角度将是相对于中心项目符号的某个恒定偏移量。例如,如果对中心项目符号使用以下公式:

x += Math.cos(angle * Math.PI/180) * Status.bulletSpeed; 
y += Math.sin(angle * Math.PI/180) * Status.bulletSpeed;
那么你的其他子弹是:

x1 += Math.cos((angle + 10) * Math.PI/180) * Status.bulletSpeed; 
y1 += Math.sin((angle + 10) * Math.PI/180) * Status.bulletSpeed;


x2 += Math.cos((angle - 10) * Math.PI/180) * Status.bulletSpeed; 
y2 += Math.sin((angle - 10) * Math.PI/180) * Status.bulletSpeed;
如果选择的话,可以选择10以外的其他值。如果您想一次拍摄5张照片,您还可以使用:

x3 += Math.cos((angle + 20) * Math.PI/180) * Status.bulletSpeed; 
y3 += Math.sin((angle + 20) * Math.PI/180) * Status.bulletSpeed;


x4 += Math.cos((angle - 20) * Math.PI/180) * Status.bulletSpeed; 
y4 += Math.sin((angle - 20) * Math.PI/180) * Status.bulletSpeed;

在这里,您使用的数字应该是您为第一组选择的值的两倍。

您使用的是某种发动机吗?在任何情况下,球是如何移动的?通过X和Y的步骤?按角度和距离/速度?其他?你为这个应用程序写了代码吗?我在android上用java制作。这就是我在射击单个子弹时如何管理子弹移动的方式:
x+=Math.cos(angle*Math.PI/180)*Status.bulletSpeed;y+=数学sin(角度*数学PI/180)*状态速度是的,我已经写了代码。另外,我公式中的角度是玩家的角度。如果你需要更多的帮助来理解我想要什么,我曾经玩过一个flash游戏,它使用了相同的概念:你也可以用随机的数量来抵消角度,而不是用一组偏移量来抵消很多!我一有机会就试试,我会告诉你是怎么回事。现在我看了看,解决方案看起来很明显。我在中学四年级,我在学校里只学了几个月的三角,所以这些概念对我来说还是新的,但感谢你简化了它,让我能理解。这对你有用吗?如果是这样的话,请把这个答案标记为正确。它起作用了,我不知道如何设置为正确,我也不能投票