gpt4 book ai didi

Javascript Canvas 如何从旋转物体进行 360* 拍摄

转载 作者:行者123 更新时间:2023-12-03 05:45:47 29 4
gpt4 key购买 nike

我所有的搜索都涉及更一般的 arc/sin/cos 用法或射击到鼠标位置。我希望用键盘瞄准并发射射弹,并且作为网络类(class)中的菜鸟做一个项目,我已经从头开始做了很多工作,但我陷入了困境。我当前的数学让我在沿着线当前指向的方向射击时陷入了困境......(为了可读性而清理的代码名称):

this.x = x + len * Math.cos(angle);
this.y = y + len * Math.sin(angle);
this.xmov = -((x + len * Math.cos(angle)) - x) / ((y + len * Math.sin(angle)) - y);
this.ymov = ((y + len * Math.sin(angle)) - y) / ((x + len * Math.cos(angle)) - x);

if (Math.abs(this.xmov) > Math.abs(this.ymov)) {
this.xmove = (this.xmov * Math.abs(this.ymov));
} else {
this.xmove = this.xmov;
}
if (Math.abs(this.ymov) > Math.abs(this.xmov)) {
this.ymove = (this.xmov * this.ymov);
} else {
this.ymove = this.ymov;
}

(这是完整的内容http://jsbin.com/ximatoq/edit。A和D转动,S开火(释放时)。转动时也可以按住S。)

...但是,您会发现它只适用于其中的 3/8。从一个完整的圆圈中生出这堆火的数学是什么?

最佳答案

将此用作拍摄功能:

this.shoot = function() {
if (this.fire > 0) {
this.x = P1gun.x2;
this.y = P1gun.y2;
this.xmove = (P1gun.x2 - P1gun.x)/100;
this.ymove = (P1gun.y2 - P1gun.y)/100;
this.fire = 0;
this.firetravel = 1;
}
}

/100可以移除,但你必须降低射弹速度。
如果你想射击gun2,请将P1gun更改为P2gun。

关于Javascript Canvas 如何从旋转物体进行 360* 拍摄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40335896/

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