9-2 インベーダーを手動で動かそう

現段階のプログラムでは、インベーダーを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;

ここまでのプログラムをダウンロード(D)

【基礎課題 9-2】

最初にスピンエディットで x, y に好きな値を設定した後、「左右移動」ボタンと「下移動」ボタンを使ってインベーダーを次のように動かしてください。なお、速さを示すスピンエディットの値は適宜変えても構いません。

インベーダーの動き方