Java でトップダウン シューター クローンの作成に取り組んでいます。約 1 時間後、船のスプライトの方向に対して、レーザーである船の発射体を配置する方法を理解することができました。問題は、船を動かすと、船を動かしたときに発射体が船の方向に対して追従することです。ご覧のとおり、これは問題です。なぜなら、発射時に船がどこにいても、レーザーは独立して移動する必要があるからです。
私の問題を示すコードは次のとおりです。
private Image ship;
private int ship_dx = 500;
private int ship_dy = 400;
private int ship_velocity = 5;
private boolean isLaser = false;
private static final int laser_DyOffSetOfBall = 48;
private static final int laser_DxOffSetOfBall = 23;
private Image laser;
private int laser_dx = ship_dx+laser_DxOffSetOfBall;
private int laser_dy = ship_dy-laser_DyOffSetOfBall;
private int laser_velocity= 10;
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(ship, ship_dx, ship_dy, this);
if(isLaser){
laser_dy -= laser_velocity;
laser_dx = ship_dx+laser_DxOffSetOfBall;
g.drawImage(laser,laser_dx,laser_dy,this);
if(laser_dy < 50)
{
isLaser = false;
laser_dy = ship_dy-laser_DyOffSetOfBall;
}
}
Toolkit.getDefaultToolkit().sync();
}
ここにゲームがあります!: