07.自動で動くボットタンクの追加
自動で動くボットタンクを追加します。
デモ
デモ(Google App Engine):https://online-battle-tanks.an.r.appspot.com/index07.html
デモ(Heroku):https://online-battle-tanks-22-cf6589d25849.herokuapp.com/index07.html
解説
自動で動くボットタンクを追加するための、変更は以下です。
(サーバー側)ボットタンククラスの追加
- ボットタンククラスは、自動で動くボットタンクのクラスです。
- ボットタンククラスは、タンククラスを継承します。
- ひたすら前進します。
- 前進できなかった場合は、方向転換します。
(サーバー側)ワールドクラスの変更
- コンストラクタに、ボットタンクの生成処理を追加します。
- メンバー関数の新たな行動関数に、ボットタンクからの弾丸の生成処理を追加します。
- メンバー関数に、ボットタンクの生成関数を追加します。
- タンクの破棄関数に、ボットタンクが削除される際は、一定時間後に新たなボットタンクを生成する処理を追加します。
(サーバー側)ゲーム設定クラスの変更
- ボットタンクに関する設定を追加します。
(クライアント側)
- クライアント側のスクリプトの変更はありません。
準備
06.を実施していない場合は、まず、06.を実施します。
サーバー側スクリプトファイル追加
ボットタンククラスの追加
サーバー側スクリプトフォルダにボットタンククラス定義ファイルを追加します。
「libs」フォルダに、「BotTank.js」というスクリプトファイルを追加し、内容を以下のようにします。
コード解説
- ボットタンククラスは、コンピュータープレーヤーの操作で移動するタンクのクラスです。
- ボットタンククラスは、タンククラスを継承します。( extends Tank )
- ひたすら前進します。( this.objMovement['forward'] = true; )
- 前進できなかった場合は、方向転換します。( update関数 )
サーバー側スクリプトの変更
ワールドクラスの変更
「libs/World.js」 の内容を以下のようにします。
コード解説
- コンストラクタに、ボットタンクの生成処理を追加します。( コンストラクタ )
- メンバー関数の新たな行動関数に、ボットタンクからの弾丸の生成処理を追加します。( doNewActions関数 )
- メンバー関数に、ボットタンクの生成関数を追加します。( createBotTank関数 )
- タンクの破棄関数に、ボットタンクが削除される際は、一定時間後に新たなボットタンクを生成する処理を追加します。( destroyTank関数 )
ゲーム設定クラスの変更
「libs/GameSettings.html」 の内容を以下のようにします。
コード解説
- ボットタンクに関する設定を追加します。
動作確認
サーバーを起動します。
「OnlineBattleTanks」フォルダで、以下のコマンドを実行します。
ブラウザから、「localhost:1337」にアクセスします。
自動で動くボットタンクが3機います。
起動したサーバーは、「Ctrl + C」で終了します。
ダウンロード
デモ
デモ(Google App Engine):https://online-battle-tanks.an.r.appspot.com/index07.html
デモ(Heroku):https://online-battle-tanks-22-cf6589d25849.herokuapp.com/index07.html
関連ページ
前項目:06.ニックネームを入力するスタート画面の追加
次項目:08.自タンクを常に画面中央に表示