我正在制作一个游戏,玩家跟随鼠标,子弹被射出玩家后端,朝向鼠标移动的相反方向。有点难以用语言解释,所以我很快在paint.net上做了一个粗略的草稿来演示。
灰球是球员。黄色光标是玩家在触摸屏上触摸的位置。黑球是子弹。
在示例1和2中,玩家朝向光标移动,子弹在相反方向后面射击。我想要的就是在例子3中,背面有不止一颗子弹,它们也像霰弹枪一样展开。
图像: http://i.stack.imgur.com/Q3Q18.png
我的目标是允许玩家升级,以便一次能够射击多个子弹。我想要的只是让玩家一次最多可以拍摄5张。提前谢谢!
答案 0 :(得分:1)
其他子弹的角度将使用您使用的相同公式,但角度相对于中心子弹将是一些恒定的偏移。例如,如果您使用以下公式作为中心项目符号:
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;
此处,您使用的数字应该是您为第一组选择的值的两倍。