嗨,我陷入了一个问题。我的旧弹丸系统只能向4个方向射击,所以当找到一个新的偏移量时,这很容易,我只需要对某些数字求逆
case "down":
xOffset = hitbox.xOffset;
yOffset = hitbox.yOffset;
width = hitbox.width;
height = hitbox.height;
break;
case "up":
xOffset = hitbox.xOffset;
yOffset = -hitbox.yOffset - hitbox.height;
width = hitbox.width;
height = hitbox.height;
break;
case "right":
xOffset = hitbox.yOffset;
yOffset = hitbox.xOffset;
width = hitbox.height;
height = hitbox.width;
break;
case "left":
xOffset = -hitbox.yOffset - hitbox.height;
yOffset = hitbox.xOffset;
width = hitbox.height;
height = hitbox.width;
break;
这很好用,但是现在的问题是我不再将rects用作我的Hitbox和圆圈,并且现在还实现了360度射击。
我有一个函数可以根据单击的位置获得x和y速度,但是我没有基于该位置获得新命中框的功能。
newSpeed.x += speed * Math.cos(angle * Math.PI / 180);
newSpeed.y += speed * Math.sin(angle * Math.PI / 180);
如何做类似的事情来获得新的补偿?