- 「シューティングゲームの作り方/自作:自機のメインルーチン/必要な機能」のご紹介
- 「シューティングゲームの作り方/自作」関連ページのご紹介
- シューティングゲーム・関連ページのご紹介
- 歴代名作シューティングゲームのご紹介|まとめ
- 歴代シューティングゲーム全ゲームタイトル一覧のご紹介|まとめ
- シューティングゲームの人気シリーズのご紹介
- シューティングゲーム関連ページのご紹介|まとめ
- シューティングゲーム解説ページのご紹介|まとめ
- シューティングゲーム・ハード関連(周辺機器)のご紹介|まとめ
- シューティングゲーム雑誌/書籍関連のご紹介|まとめ
- 【TPS名作・傑作・まとめ】TPS傑作・名作・全ゲームタイトルのご紹介│まとめ│~トゥームレイダー│バイオハザード│アンチャーテッドなど~
- 【名作RPG】RPGのご紹介│まとめ│
- 【TOP:SLG】おすすめ名作シミュレーションゲームのご紹介
- 【TOP】レースゲーム関連(おすすめ名作・評価ランキン)のご紹介
- TOP【おすすめスポーツゲーム】のご紹介~MLB,NBA,NFL,FIFAなど~
- 【TOP】パズルゲームのご紹介
- 【ゲームランキング】世界・国内で最も売れたゲームランキングのご紹介
- 名作ゲームのご紹介│まとめ│家庭用ゲーム・PC・アーケードなど
- 【機種別ゲームTOP】PC・家庭用・アーケードゲーム・周辺機器のご紹介
- ジャンル別ゲームタイトルのご紹介│まとめ│
- 【ゲームTOP】ゲーム関連ページのご紹介
- 【書籍・雑誌TOP】書籍・雑誌サイトマップ関連ページのご紹介
- 【ホビーTOP】ホビーサイトマップ関連ページのご紹介
「シューティングゲームの作り方/自作:自機のメインルーチン/必要な機能」のご紹介
「シューティングゲームの作り方/自作」関連サイトマップのご紹介
「シューティングゲームの作り方/自作」関連をご紹介します。
シューティングゲーム | ゲーム | 中古・新品通販の駿河屋
まずはメインルーチンから
どのようなプログラムにもメインルーチンが欠かせません。アプリケーションが起動した直後に、まず実行されるのがメインルーチンです。一般的なWindowsアプリケーションでは、「WinMain関数」がメインルーチンになります。
ゲームプログラムメインルーチンは「初期化/実行/進行管理/終了」
ゲームプログラムの場合、メインルーチンでは、
- ゲームの初期化
- 実行
- 進行管理
- 終了
などの処理を行います。
Windows上でゲームプログラムを作る場合には、ウィンドウの初期化やWindowsのメッセージ処理なども必要です。
単純なプログラムの場合には、メインルーチンのなかにゲームの詳細な処理を直接書いてもかまいません。ある程度複雑なプログラムの場合には、詳細な処理については別の関数か、あるいはクラスにまとめるとよいでしょう。
メインルーチンではそれらの関数を呼び出すか、あるいはクラスのインスタンスを作成して利用すると、プログラムの見通しがよくなります。
「ゲームプログラム:メインルーチンのサンプル」のご紹介
「プログラム:4-1」は、メインルーチンの例です。この例では、ゲーム本体の詳細な処理をCShtGameクラスにまとめました。一方、自機の移動や描画の処理はCMyShipクラスにまとめました。メインルーチンでは「CShtGame」や「CMyShip」のインスタンスを作成して利用します。
▼「プログラム:4-1」メインルーチン(Main.cpp)
//ゲーム本体 CShtGame*Game; //メインルーチン INTWINAPIWinMain(HINSTANCEhinst,HINSTANCE,LPSTR,INT){ //ゲーム本体の生成 //CShtGameクラスはChapter2のCGameクラスの派生クラス Game=newCShtGame(); Game->FPS=60; Game->PauseInTheBackground=true; Game->DropFrames=false; //自機の生成 newCMyShip(0,30); //ゲームの実行 //Run関数はWindowsのメッセージ処理とゲームの進行管理を行うGame->Run(); //ゲームが終了するとRun関数から戻るので、 //CShtGameインスタンスを削除してプログラムを終了する deleteGame; return0; }
「ゲーム本体に必要な機能」にういて
ゲーム本体には、
- ゲームに使うデータを保持する機能
- ゲームを進行する機能
- ゲーム画面の描画を行う機能
などが必要です。
これらの機能を「構造体関数・クラス」などを使ってまとめます。例えば「3Dモデルをファイルからロードする関数」「Direct3Dを設定する関数」「ゲームの動作を行う関数」、「ゲーム画面の描画を行う関数」などを用意します。また自機や弾のようなキャラクターも 管理する必要があります。
ゲームの進行を管理できる「タスクシステム」
こういった管理には、「タスクシステム」が使えます。タスクを使うときには、自機や弾といった種類別にタスクを分類し、それぞれ別々のタスクリストで管理すると、当たり判定処理や重ね合わせ処理などの効率化が図れます。
自機は独立した専用のタスクリストで管理
ゲームに登場する自機は1機だけのこともありますが、これも独立した専用のタスクリストで管理します。
タスクリスト単位/全タスクを実行できる関数も用意
また、タスクリスト単位で、全タスクを動かしたり描画したりする関数を用意しておくとよいでしょう。これは、例えば、タスクリスト上にあるすべての弾(のタスク)を動かしたいとか、自機だけを描画したいといった場合に便利です。 「プログラム:4-2」は、ゲーム本体の機能をまとめたクラスの例です。3Dモデルにはメ ッシュクラス(CMesh)を使います。 変数名は「MeshSauce」、自機の管理にはCTaskListクラスを使っています。
▼「プログラム:4-2」ゲーム本体のクラス(Main.h)
classCShtGame : publicCGame{ protected: //3Dモデルのロード CMesh*NewMesh(stringfile); public: //コンストラクタ、デストラクタ CShtGame(); ~CShtGame(); //デバイスの初期化、移動、描画 virtualvoidOnResetDevice(); virtualvoidMove(); virtualvoidDraw(); //3Dモデル CMesh*MeshSauce; //自機のタスクを管理するタスクリスト CTaskList*MyShipList; //タスクを動かす関数 voidMoveTask(CTaskList*list); //タスクを描画する関数 voidDrawTask(CTaskList*list); };
ゲームの初期化と必要なデータのロード
ゲームプログラムが最初に行う仕事は、ゲームに必要な3Dモデルなどのデータをメモリ上にロードすることです。また、例えばタスクリストなどのクラスを使う場合には、インスタンスを生成しておきます。
「プログラム:4-3」は、ゲームの初期化とデータのロードに関するプログラムの例です。
「プログラム:4-3」初期化とデータのロード(Main.cpp)
//コンストラクタ CShtGame::CShtGame() CGame("ゲーム名を記載)",true,false,true) { //ヘルプ、終了、カーソルに関する設定 HelpURL=ExePath+"..¥¥Help¥¥index.html"; ConfirmExit=false; ShowCursor(FALSE); //3Dモデルの初期化 //ファイルから3Dモデルのメッシュ(形状データ)を読み込む LPDIRECT3DDEVICE9device=Graphics->GetDevice(); MeshSauce=NewMesh("sauce"); //タスクリストの初期化 MyShipList=newCTaskList(sizeof(CMyShip),10); } //3Dモデルのロード //CMeshクラスを用いる CMesh* CShtGame::NewMesh(stringfile){ strin gpath=ExePath+"..¥¥Model¥¥"; CMesh* p=new CMesh(Graphics->GetDevice()); p->LoadFromFile(path+file+".x"); returnp; }
「シューティングゲームの作り方/自作」関連サイトマップのご紹介
「シューティングゲームの作り方/自作」関連をご紹介します。
シューティングゲーム | ゲーム | 中古・新品通販の駿河屋
「シューティングゲームの作り方/自作」関連ページのご紹介
「シューティングゲームの作り方/自作」関連ページをご紹介します。
【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 > ゲーム│ホビー│書籍・マンガ│■■ |
||||
サイトマップ一覧 |
懐かしの名作から最新作までの豊富な品揃え!通販ショップの駿河屋
コペンギンサイトマップ関連ページのご紹介
コペンギン関連ページをご紹介します。