- 「シューティングゲームの作り方/自作:様々な敵を作るには」のご紹介
- 様々な敵を作るには
- 3-way弾を発射する敵を作るの場合
- 狙い撃ち弾を発射する敵を作る
- 「シューティングゲームの作り方/自作」関連ページのご紹介
- シューティングゲーム・関連ページのご紹介
- 歴代名作シューティングゲームのご紹介|まとめ
- 歴代シューティングゲーム全ゲームタイトル一覧のご紹介|まとめ
- シューティングゲームの人気シリーズのご紹介
- シューティングゲーム関連ページのご紹介|まとめ
- シューティングゲーム解説ページのご紹介|まとめ
- シューティングゲーム・ハード関連(周辺機器)のご紹介|まとめ
- シューティングゲーム雑誌/書籍関連のご紹介|まとめ
- 【TPS名作・傑作・まとめ】TPS傑作・名作・全ゲームタイトルのご紹介│まとめ│~トゥームレイダー│バイオハザード│アンチャーテッドなど~
- 【名作RPG】RPGのご紹介│まとめ│
- 【TOP:SLG】おすすめ名作シミュレーションゲームのご紹介
- 【TOP】レースゲーム関連(おすすめ名作・評価ランキン)のご紹介
- TOP【おすすめスポーツゲーム】のご紹介~MLB,NBA,NFL,FIFAなど~
- 【TOP】パズルゲームのご紹介
- 【ゲームランキング】世界・国内で最も売れたゲームランキングのご紹介
- 名作ゲームのご紹介│まとめ│家庭用ゲーム・PC・アーケードなど
- 【機種別ゲームTOP】PC・家庭用・アーケードゲーム・周辺機器のご紹介
- ジャンル別ゲームタイトルのご紹介│まとめ│
- 【ゲームTOP】ゲーム関連ページのご紹介
- 【書籍・雑誌TOP】書籍・雑誌サイトマップ関連ページのご紹介
- 【ホビーTOP】ホビーサイトマップ関連ページのご紹介
「シューティングゲームの作り方/自作:様々な敵を作るには」のご紹介
「シューティングゲームの作り方/自作」関連サイトマップのご紹介
「シューティングゲームの作り方/自作」関連をご紹介します。
シューティングゲーム | ゲーム | 中古・新品通販の駿河屋
様々な敵を作るには
ここでは赤身・玉子・海老といった敵を例に、小さな敵の作り方を解説します。より大きな敵を作る方法、ボスを作る方法については別ページでご紹介します。
3-way弾を発射する敵を作るの場合
最初は敵の1つである赤身を例に、敵の作り方を解説します。赤身は、画面上方から下方に向かって回転しながら直進し、ときどき3-way弾(3方向に広がる方向弾)を発射する敵です「図.6-4:赤身」。
▼「図.6-4:赤身」
移動は、座標と回転角度を更新することによって実現しています。また、一定時間ごとに方向弾のタスクを生成します。発射方向を少しずつずらして3つの方向弾を発射すると「3-way弾」になります。
敵の移動処理
赤身の移動処理では、小さな敵に共通の移動処理(CSmallEnemy::Move関数)も実行します。共通の移動処理では、耐久力が0以下になったときの処理と、画面外に出たときの処理を行います。
「3-way弾を発射する敵プログラム」
「プログラム6-3:赤身のクラス(Enemy.h、Enemy.cpp)」は、赤身に関する処理をまとめたクラス(CAkami)です。このクラスは、敵の共通処理をまとめた敵クラス(CEnemy)や小さな敵クラス(CSmallEnemy)から派生しています。
これらのクラスから継承した変数や関数が利用できるので、赤身クラスに記述しなければならない処理は多くありません。
▼「プログラム6-3:赤身のクラス(Enemy.h、Enemy.cpp)」
//赤身のクラス class CAkami : public CSmallEnemy{ public: CAkami(float x); virtual bool Move(); }; //コンストラクタ CAkami::CAkami(float x) : CSmallEnemy(Game->MeshAkami, x) {} //移動 //小さな敵クラスの移動処理をオーバーライドして //赤身独特の動きを記述する //この移動処理はフレーム(約1/60秒)ごとに繰り返し呼び出される bool CAkami::Move() { //移動と回転 Y+=0.4f; Yaw+=0.01f; //一定時間ごとに弾を撃つ CMyShip* myship=Game->GetMyShip(); if (myship && Time%10==0 && Time%100<20) { for (int i=-1;i<= 1; i++) { new CDirBullet( Game->MeshBullet, Color, X, Y, 0.25f+i*0.04f, 1.0f, 0); } } Time++; //小さな敵の共通処理を呼び出す return CSmallEnemy::Move(); }
狙い撃ち弾を発射する敵を作る
玉子は左右に曲がりながら飛来し、一定時間ごとに狙い撃ち弾を発射します(図.6-5)。移動の処理は赤身クラス(CAkami)とは異なりますが、プログラムの基本的な構成は同じです。
▼「図.6-5:玉子」
「狙い撃ち弾を発射する敵」のプログラム
プログラム6-4は、玉子の処理をまとめたクラス(CTamago)です。
▼「プログラム6-4:玉子のクラス(Enemy.h、Enemy.cpp)」
//玉子のクラス class CTamago : public CSmallEnemy { public: CTamago(float x); virtual bool Move(); }; //コンストラクタ CTamago::CTamago(float x) CSmallEnemy(Game->MeshTamago, x) {} //移動 bool CTamago::Move() { //移動と回転 X+=sinf(Time*0.05f)*0.8f; Y+=0.3f; Yaw=-sinf(Time*0.03f)*0.1f; //弾の発射 CMyShip* myship=Game->GetMyShip(); if (myship && Time%6==0 && Time%100<=20) { new CAimBullet ( Game->MeshBullet, Color, X, Y, myship->X, myship->Y, 0, 1. 0f, 0); } Time++; //小さな敵の共通処理 return CSmallEnemy::Move(); }
進行方向がランダムな敵を作る
海老の場合には、生成時に乱数を使って進行方向をランダムに決め、速度を計算します。そして一定方向に直進し、ときどき分裂弾を発射します(zy.6-6)。プログラムの構成は赤身や玉子と同様です。
▼「図.6-6:海老」
「進行方向がランダムな敵」のプログラム
「プログラム6-5:海老のクラス(Enemy.h、Enemy.cpp)」は、海老の処理をまとめたクラス(CEbi)です。
▼「プログラム6-5:海老のクラス(Enemy.h、Enemy.cpp)」
//海老のクラス class CEbi: public CSmallEnemy{ float VX, VY; public: CEbi(float x); virtual bool Move(); }; //コンストラクタ CEbi::CEbi(float x) : CSmallEnemy(Game->MeshEbi, x) { //進行方向をランダムに決める Yaw=Game->Rand05()*0.2f+0.25f; float rad=Yaw*D3DX_PI*2; VX=0.5f*cosf(rad); VY=0.5f*sinf(rad); } //移動 bool CEbi::Move() { //移動 X+=VX; Y+=VY; //弾の発射 if(Game->Rand1()<0.04f) { new CSplitBullet( Game->MeshBullet,Color, X, Y, Yaw+0.5f, 0.4f); } //小さな敵の共通処理 return CSmallEnemy::Move(); }
「シューティングゲームの作り方/自作」関連サイトマップのご紹介
「シューティングゲームの作り方/自作」関連をご紹介します。
シューティングゲーム | ゲーム | 中古・新品通販の駿河屋
「シューティングゲームの作り方/自作」関連ページのご紹介
「シューティングゲームの作り方/自作」関連ページをご紹介します。
【STG】シューティングゲーム・サイトマップのご紹介
80年から2000年代のシューティングゲームについてご紹介します。
シューティングゲーム | ゲーム | 中古・新品通販の駿河屋
シューティングゲーム・関連ページのご紹介
シューティングゲーム・関連ページをご紹介します。
歴代名作シューティングゲームのご紹介|まとめ
歴代シューティングゲーム全ゲームタイトル一覧のご紹介|まとめ
シューティングゲームの人気シリーズのご紹介
シューティングゲーム関連ページのご紹介|まとめ
シューティングゲーム解説ページのご紹介|まとめ
シューティングゲーム・ハード関連(周辺機器)のご紹介|まとめ
シューティングゲーム雑誌/書籍関連のご紹介|まとめ
【ゲームジャンル別】サイトマップのご紹介
【ゲームジャンル別】サイトマップをご紹介します。
ゲームジャンル別サイトマップ | ||||
ゲームTOP > ランキング│傑作・名作│機種別│ジャンル別 |
||||
ゲームジャンル別TOP >関連ページ│名作│ランキング | ||||
【ジャンル別関連ページ】 アクション系(プラットフォーム│対戦アクション│FPS│TPS│STG│フライト)|AVG│RPG│SLG│レース│スポーツ│パズル│テーブル |
||||
【アクション】プラットフォーム│対戦アクション│FPS│TPS│STG│フライト 【アドベンチャー】AVG│ 【RPG】RPG│SRPG│ARPG 【SLG】SLG│ストラテジー│ターン制SLG│RTS 【レース】レース 【スポーツ系】スポーツ│プロレス 【パズル】 【テーブル】麻雀 |
||||
【ジャンル別】おすすめ評価ランキング アクション│AVG│RPG│SLG│レース│スポーツ│パズル│テーブル |
||||
【歴代傑作・神ゲー(2021~1996年)】99~94点│93~92点│91点│90点 ■【アクション系ゲーム】■ アクション│プラットフォーム│対戦アクション│FPS│TPS│フライト│ 【対戦アクション】一覧│98~80点│79~70点 【FPS】まとめ│90点以上│89~86点│85~83点│82~80点 【アドベンチャーゲーム】 ■【RPG系】■ RPG│SRPG│ARPG 【RPG】一覧│傑作(96~90点)│89~85点│84~82点│81~80点│ ■【シミュレーション系ゲーム】■ SLG│ストラテジー│ターン制SLG│RTS│街づくりSLG ■【レース】■ ■【スポーツ系ゲーム】■スポーツ│プロレス ■【パズル】 |
||||
シリーズ・テーマ | ||||
■■│コペンギンTOP > ゲーム│ホビー│書籍・マンガ│■■ |
||||
サイトマップ一覧 |
ゲームジャンル別・関連ページのご紹介
ゲームジャンル別・関連ページをご紹介します。
【TPS名作・傑作・まとめ】TPS傑作・名作・全ゲームタイトルのご紹介│まとめ│~トゥームレイダー│バイオハザード│アンチャーテッドなど~
【格ゲー・名作】アーケード・家庭用・格闘ゲームのご紹介~名作(173 本)・全タイトル(1462本)のご紹介
【名作STG】シューティングゲームのご紹介
【AVG】アドベンチャーゲームのご紹介│まとめ│
【名作RPG】RPGのご紹介│まとめ│
【TOP:SLG】おすすめ名作シミュレーションゲームのご紹介
【TOP】レースゲーム関連(おすすめ名作・評価ランキン)のご紹介
TOP【おすすめスポーツゲーム】のご紹介~MLB,NBA,NFL,FIFAなど~
【TOP】パズルゲームのご紹介
ゲームTOPサイトマップ
ゲームTOPのサイトマップをご紹介します。
【ゲームTOP】サイトマップ | ||||
ゲームTOP > ランキング│傑作・名作│機種別│ジャンル別 | ||||
■ランキングTOP > ハード│ソフト(売上(世界│国内)│海外評価) ■傑作・名作ゲームTOP > ■ゲーム機種別TOP > 据置│携帯│AC│PC│周辺機器 ■ジャンル別TOP > アクション系(プラットフォーム│対戦アクション│FPS│TPS│STG│フライト)|AVG│RPG│SLG│レース│スポーツ│パズル│テーブル |
||||
■■│コペンギンTOP > ゲーム│ホビー│書籍・マンガ│■■ |
||||
サイトマップ一覧 |
ゲーム関連ページのご紹介
ゲーム関連ページをご紹介します。
【ゲームランキング】世界・国内で最も売れたゲームランキングのご紹介
名作ゲームのご紹介│まとめ│家庭用ゲーム・PC・アーケードなど
【機種別ゲームTOP】PC・家庭用・アーケードゲーム・周辺機器のご紹介
ジャンル別ゲームタイトルのご紹介│まとめ│
コペンギン・サイトマップ
コペンギンのサイトマップをご紹介します。
【コペンギンTOP】サイトマップ | ||||
コペンギンTOP > ゲーム│ホビー│書籍・マンガ│ | ||||
■■│コペンギンTOP > ゲーム│ホビー│書籍・マンガ│■■ |
||||
サイトマップ一覧 |
懐かしの名作から最新作までの豊富な品揃え!通販ショップの駿河屋
コペンギンサイトマップ関連ページのご紹介
コペンギン関連ページをご紹介します。