gpt4 book ai didi

java - 如何将子弹对准枪?

转载 作者:行者123 更新时间:2023-11-29 05:57:00 24 4
gpt4 key购买 nike

我有我的播放器的图像(自上而下的 2D)。玩家转身面对镜头,并拿着枪。创建子弹时,它们会在玩家的 x 和 y 坐标处创建。这在玩家面向正确的方向时有效,但当玩家旋转并射击时,子弹会朝正确的方向移动,但不会从枪中射出。我该如何解决这个问题?

public void fire() {
angle = sprite.getRotation();
System.out.println(angle);
x = sprite.getX();
y = sprite.getY();

Bullet b = new Bullet(x, y, angle);
Utils.world.addBullet(b);
}

最佳答案

您必须确定枪支的偏移量(在 Paint 中打开图像,或反复试验),然后旋转该偏移量以获得子弹的初始位置。

像下面这样的东西应该可以工作:注意 - 我没有测试这个,它可能有拼写错误

public void fire() {
angle = sprite.getRotation();
System.out.println(angle);
x = sprite.getX();
y = sprite.getY();

double bulletX = x + (gunOffsetX * Math.cos(angle) - gunOffsetY * Math.sin(angle));
double bulletY = y + (gunOffsetX * Math.sin(angle) + gunOffsetY * Math.cos(angle));

Bullet b = new Bullet(bulletX , bulletY , angle);
Utils.world.addBullet(b);
}

来源:http://en.wikipedia.org/wiki/Rotation_(mathematics)

关于java - 如何将子弹对准枪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11697364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com