我有一个由矩形制成的播放器。我目前拥有它,所以它总是针对鼠标。我希望玩家可以直接向鼠标发射子弹,但我不确定用什么方程式使子弹沿x和y移动正确的数量,以便它符合它所针对的点。
这就是我目前对玩家的看法。
public void playerImage(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
theta = Math.atan2(playerY - InputHandler.mouseY + playerHeight / 2,
playerX - InputHandler.mouseX + playerWidth / 2) - Math.PI / 2;
g2d.rotate(theta, playerX + playerWidth / 2, playerY + playerHeight / 2);
g2d.setColor(Color.blue.darker());
// Main body
g2d.drawRect(playerX, playerY, playerWidth, playerHeight);
// Left arm
g2d.drawRect(playerX - playerWidth / 2, playerY, playerWidth / 2,
playerHeight);
g2d.fillRect(playerX - playerWidth / 2, playerY, playerWidth / 2,
playerHeight);
// Right arm
g2d.drawRect(playerX + playerWidth, playerY, playerWidth / 2,
playerHeight);
g2d.fillRect(playerX + playerWidth, playerY, playerWidth / 2,
playerHeight);
g2d.setColor(Color.red);
g2d.fillRect(playerX, playerY, playerWidth, playerHeight);
}
答案 0 :(得分:0)
使用玩家所在的位置以及子弹应该移动的位置,您可以定义穿过它们的线。这将为您提供类似f(x)= a * x + b的等式,然后您可以使用它来计算路径的坐标。
同时检查wiki page。