アーケード ビデオ ゲームに取り組んでいますが、弾丸の向きについて助けが必要です。現在、動かない弾丸が1つしかありません。それは、開始する場所に描画されているだけです(すべてを段階的に実行しています)。問題は、弾丸が右に行くか左に行くか分からないことです。弾丸が発射されたとき (X キーが離されたとき) に true になる bullet というブール変数があります。
public void pistol( boolean right ) {
if( right ) {
dbg.fillRect( barrelRightX, barrelY, barrelWidth, barrelHeight );
dbg.fillRect( handleRightX, handleY, handleWidth, handleHeight );
}
else {
dbg.fillRect( barrelLeftX, barrelY, barrelWidth, barrelHeight );
dbg.fillRect( handleLeftX, handleY, handleWidth, handleHeight );
}
if( bullet ) {
if( right )
dbg.drawOval( barrelRightX + barrelWidth, barrelY, 5, 5 );
else
dbg.drawOval( barrelLeftX - 5, barrelY, 5, 5 );
}
}
if( bullet ) の前の最初のコード ブロックは、ピストルを描画するだけです。right がブール値のパラメーターであることがわかるように、そこに配置しました。基本的にこれは、弾丸が発射され、ピストルが右を向いている場合、銃弾が銃身から直接出ているように見えるように弾丸を描くことを意味し、弾丸が発射され、右を向いていない場合 (明らかに左を向いていることを意味します) 次に、通常のように出てくるように描画します。問題は、プログラム全体を実行する巨大なアニメーション ループがあるため、弾丸を発射してピストルの方向 (右から左または左から右) を変更すると、弾丸の位置が変わることです。バレットファイナルにしてみましたが、Xキーを離したときにtrueになるように変更する必要があります。そう、