- 「C言語:シューティングゲームの作り方/自作:当たり判定処理」のご紹介
- 「C言語:シューティングゲームの作り方/自作:当たり判定処理」のご紹介
- 「シューティングゲームの作り方/自作」関連ページのご紹介
- シューティングゲーム・関連ページのご紹介
- 歴代名作シューティングゲームのご紹介|まとめ
- 歴代シューティングゲーム全ゲームタイトル一覧のご紹介|まとめ
- シューティングゲームの人気シリーズのご紹介
- シューティングゲーム関連ページのご紹介|まとめ
- シューティングゲーム解説ページのご紹介|まとめ
- シューティングゲーム・ハード関連(周辺機器)のご紹介|まとめ
- シューティングゲーム雑誌/書籍関連のご紹介|まとめ
- 【TPS名作・傑作・まとめ】TPS傑作・名作・全ゲームタイトルのご紹介│まとめ│~トゥームレイダー│バイオハザード│アンチャーテッドなど~
- 【名作RPG】RPGのご紹介│まとめ│
- 【TOP:SLG】おすすめ名作シミュレーションゲームのご紹介
- 【TOP】レースゲーム関連(おすすめ名作・評価ランキン)のご紹介
- TOP【おすすめスポーツゲーム】のご紹介~MLB,NBA,NFL,FIFAなど~
- 【TOP】パズルゲームのご紹介
- 【ゲームランキング】世界・国内で最も売れたゲームランキングのご紹介
- 名作ゲームのご紹介│まとめ│家庭用ゲーム・PC・アーケードなど
- 【機種別ゲームTOP】PC・家庭用・アーケードゲーム・周辺機器のご紹介
- ジャンル別ゲームタイトルのご紹介│まとめ│
- 【ゲームTOP】ゲーム関連ページのご紹介
- 【書籍・雑誌TOP】書籍・雑誌サイトマップ関連ページのご紹介
- 【ホビーTOP】ホビーサイトマップ関連ページのご紹介
「C言語:シューティングゲームの作り方/自作:当たり判定処理」のご紹介
「シューティングゲームの作り方/自作」関連サイトマップのご紹介
「シューティングゲームの作り方/自作」関連をご紹介します。
シューティングゲーム | ゲーム | 中古・新品通販の駿河屋
「C言語:シューティングゲームの作り方/自作:当たり判定処理」のご紹介
当たり判定処理とは
キャラクター同士が接触したかどうかを判定する処理のことを「当たり判定処理」と呼びます。シューティングゲームでは、自機と敵、あるいは自機と弾が接触すると、自機はダメージを受けます。敵と武器が接触したときには、敵を破壊することができます。
「当たり判定処理」によってキャラクター同士が接触したかどうかを判定し、その結果に応じて自機や敵を破壊するというわけです。
ゲームにおいて非常に重要な要素「当たり判定処理」
シューティングゲームにかぎらず、あらゆるジャンルのゲームにおいて「当たり判定処理」は非常に重要な要素です。格闘ゲームでパンチが当たったかどうかを判断するのも、スポーツゲームでボールを打ったかどうかを判断するのも、すべて当たり判定処理です。
ゲームに大切な見えない仕組み「当たり判定処理/破壊の処理/スコアを加算する処理」
先ほどキャラクターが動く仕組みについて説明しましたが、ただキャラクターが動くだけではゲームにはなりません。「キャラクターを動かす処理」に対して、「当たり判定処理」や「破壊の処理」「スコアを加算する処理」などを加えることによって、初めてゲームになるのです。
当たり判定処理の例
スタンダードな「矩形を使った判定方法」
当たり判定処理にはいろいろな方法があります。オーソドックスなのは矩形を使った判定方法「図.1-3:当たり判定処理」です。ゲームによっては矩形ではなく、円などを使って当たり判定処理を行う場合もあります。
▼「図.1-3:当たり判定処理」
自機の当たり判定 | (ML,MT)(MR,MB) |
弾の当たり判定 | (BL,BT)~(BR,BB) |
自機と弾とが接触する条件 |
ML < BR&&BL < MR&&MT < BB&&BT < MB
|
「2D」も「3D」も当たり判定処理も考え方は同じ
尚、今回は主に2Dの当たり判定処理を扱いますが、3Dの当たり判定処理も考え方は似ています。3Dでは直方体や球を使った当たり判定処理や、ポリゴン同士の当たり判定処理を行います。
「当たり判定」と「当たり判定処理」
シューティングゲームでは、一般に当たり判定処理を行うための座標情報を「当たり判定」と呼び、この情報を使用して実際に判定を行う処理を「当たり判定処理」と呼びます。
▼「当たり判定処理」のご紹介
自機の当たり判定を(ML,MT)(MR,MB)、弾の当たり判定を(BL,BT)(BR,BB)としまし。このとき、自機と弾とが接触する条件は次のとおりです。
自機と弾とが接触する条件:ML < BR&&BL < MR&&MT < BB&&BT < MB
「複雑な形に対する当たり判定処理」について
複数の矩形を組み合わせた当たり判定
多くの場合、キャラクターの当たり判定は1個の「矩形」で大丈夫です。しかし、複雑な形をしたキャラクターの場合は、1個の矩形ではうまく当たり判定を表現できないことがあります。
その場合は、複数の矩形を組み合わせて当たり判定を構成します「図.1-4複雑な形に対する当たり判定処理」。
▼「図.1-4複雑な形に対する当たり判定処理」
▼「図.1-4複雑な形に対する当たり判定処理」 | |
敵の当たり判定#0 | (EL[0]ET[0])~(ER[0],EB[0]) |
敵の当たり判定#1 | (EL[1],ET[1])~(ER[1],EB[1]) |
敵の当たり判定#2 | (EL[2]ET[2])~(ER[2]EB[2]) |
ショットの当たり判定 | (SL,ST)~(SR,SB) |
ショットと敵が接触する条件
|
(SL<ER[0]&&EL[0]<SR&&ST<EB[0]&&ET[0]<SB)|| |
(SL<ER[1]&&EL[1]<SR&&ST<EB[1]&&ET[1]<SB)|| | |
(SL<ER[2]&&EL[2]<SR&&ST<EB[2]&&ET[2]<SB) |
当たり判定処理を行うには、次のように各矩形に対する条件式を論理和(II)で結びます。つまり、矩形のいずれかの組み合わせが重なり合っていたら、接触したと見なすわけです。
ショットと敵が接触する条件
(SL < ER[0]&&EL[0] < SR&&ST < EB[0]&&ET[0] < SB) || (SL < ER[1]&&EL[1] < SR&&ST < EB[1]&&ET[1] < SB)|| (SL < ER[2]&&EL[2] < SR&&ST < EB[2]&&ET[2]<SB)
「forループ」文を使った当たり判定プログラム
なお、ここでは説明のために「||:演算子」を使いましたが、実際のプログラムでは「forループ」などを使います。矩形の数だけ「for」でループして、いずれかの組み合わせに関して条件が成立したら、接触したと見なすような処理にします。
例えば以下のようなプログラムです。
▼「forループ」文を使った当たり判定プログラム
int i ; for (i=0;i<3;i++) { if (SL < ER[i] && EL[i] < SR && ST < EB[i] && ET[i] < SB) break ; } if (i<3) { //※接触したときの処理※ }
「シューティングゲームの作り方/自作」関連サイトマップのご紹介
「シューティングゲームの作り方/自作」関連をご紹介します。
シューティングゲーム | ゲーム | 中古・新品通販の駿河屋
「シューティングゲームの作り方/自作」関連ページのご紹介
「シューティングゲームの作り方/自作」関連ページをご紹介します。
【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 > ゲーム│ホビー│書籍・マンガ│■■ |
||||
サイトマップ一覧 |
懐かしの名作から最新作までの豊富な品揃え!通販ショップの駿河屋
コペンギンサイトマップ関連ページのご紹介
コペンギン関連ページをご紹介します。