現段階のプログラムでは、インベーダーを1回動かすだけで
「消す」→x 座標増加 (または減少)→「描く」
という面倒な3手順を人間が行わなくてはなりません。これでは不便なので、以下のように「左右移動」ボタンを押すと自動的に右に (または左に) 移動するようにしましょう。
注 : 右に行くか左に行くかは、SpinEditSpeed で決まることにします。つまり、SpinEditSpeed が正 (プラス) なら右へ、負 (マイナス) なら左へ動かします。
// 「左右移動」ボタン procedure TFormInvader.ButtonGoHorizontalClick(Sender: TObject); begin ButtonEraseClick(Sender); // 今いる場所で消して SpinEditX.Value := SpinEditX.Value + SpinEditSpeed.Value; // 座標を変えて ButtonDrawClick(Sender); // 新しい場所に描き込む end;
同様に、「下移動」ボタンもプログラミングしましょう。
//「下移動」ボタン procedure TFormInvader.ButtonGoDownClick(Sender: TObject); begin ButtonEraseClick(Sender); // 今いる場所で消して SpinEditY.Value := SpinEditY.Value + 10; // 座標を変えて ButtonDrawClick(Sender); // 新しい場所に描き込む end;
最初にスピンエディットで x, y に好きな値を設定した後、「左右移動」ボタンと「下移動」ボタンを使ってインベーダーを次のように動かしてください。なお、速さを示すスピンエディットの値は適宜変えても構いません。