SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

C++Builder XE2+FireMonkeyで昔のラケットゲームを再構築してみる(4)

15年前の入門書の課題を、最新の開発環境を使って再挑戦

START/STOPボタンの設定

 最後にStartButtonとStopButtonのOnClickイベントハンドラを設定します。StartButtonのイベントハンドラは、ボールの移動テストを行うために記述しましたが、スコアやラケット数の初期化をするためのコードを追加します。また、有効なボタンの変更も行います(太字部分)。

 それぞれのOnClickイベントに設定するコードです。

void __fastcall TGameForm::StartButtonClick(TObject *Sender)
{
    // 乱数の初期化
    randomize();

    // ボールの最初の角度を設定
    Ang = random(45) + 90;

    // スコアとラケット数の初期化
    Score = 0;
    RacketCount = 5;

    // ボールの初速
    Speed = 8.0;

    // ボールの最初の位置
    Ball->Position->X = Court->Width / 2;
    Ball->Position->Y = Court->Height / 3;

    // 移動量を計算
    CalcNewDelta();

    // ボールを表示
    Ball->Visible = true;

    // タイマーを動作させる
    Timer1->Enabled = true;

    // ボタンの状態変更
    StartButton->Enabled = false;
    StopButton->Enabled = true;
}

void __fastcall TGameForm::StopButtonClick(TObject *Sender)
{
    // タイマーの停止
    Timer1->Enabled = false;

    // ボタンの状態変更
    StartButton->Enabled = true;
    StopButton->Enabled = false;
}

 これでこのプログラムは完成です。実際にプレイしてみましょう。

図2 完成したラケットゲーム

次のページ
プログラムの改良

この記事は参考になりましたか?

特集記事連載記事一覧

もっと読む

この記事の著者

EDN編集部(イーディーエヌ編集部)

エンバカデロ・デベロッパーネットワーク(EDN)は、ソフトウェア開発者とデータベース技術者のための技術情報サイトです。Delphi、C++Builderをはじめとする開発ツールやER/Studioなどのデータベースツールに関連する技術記事、ビデオなどを提供しています。EDN編集部は、EDN記事と連携...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/6651 2012/07/12 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー