(57)【要約】【構成】      ゲーム装置（１０）のＣＰＵコア（３４）は、第１フィールドでのゲーム中に回転指示があったとき（Ｓ５１）、ステップＳ５３およびＳ５５で、回転後の第２フィールドの中心座標やプレイヤオブジェクトおよびＢＧオブジェクトの座標（中心座標）を取得する。そして、ステップＳ５７-Ｓ６１で回転処理を、たとえばハードウェア計算回路で実行する。ステップＳ６３で回転終了を検知すると、ＣＰＵコア（３４）はステップＳ６５で、マップ切り換え処理を実行する。そのマップ切り換え処理では、図１７に示すように第２エリアデータに従って、第２フィールドを生成する。そして、第２フィールドが生成された後には、たとえば図１０のステップＳ７では、第２エリアデータに従って当たり判定を行う。【効果】  複雑な処理なしに、フィールドを回転させた後の当たり判定を正しく行なえる。【選択図】  図１６
2007301020.tif 000002
【特許請求の範囲】
【請求項１】
プレイヤによって操作可能なプレイヤキャラクタが配置されたフィールドが回転する様子を表示装置に表示させるゲーム装置のコンピュータにおいて実行されるゲームプログラムであって、
複数のオブジェクトによって構成される第１フィールド内に前記プレイヤキャラクタを配置し、少なくとも当該プレイヤオブジェクト含む第１フィールド内の様子を前記表示装置に表示させる第１表示ステップ、
所定の条件を満たしたときに、前記第１フィールドを所定角度まで回転させ、この回転する様子を前記表示装置に表示させる回転表示処理ステップ、および
前記回転表示処理ステップで前記第１フィールドの回転処理が終了したとき、前記第１フィールドに配置されているプレイヤキャラクタを、前記所定角度まで回転させた第１フィールドと同じ表示態様となるように複数のオブジェクトで予め構成された第２フィールド内に配置し直し、少なくとも当該プレイヤオブジェクトを含む第２フィールド内の様子を前記表示装置に表示させる第２表示ステップ、
を前記コンピュータに実行させるゲームプログラム。
【請求項２】
前記ゲームプログラムは、
前記第１表示ステップにて前記第１フィールドが表示されているときには、当該第１フィールドを構成するオブジェクトと前記プレイヤオブジェクトとで接触判定を行う第１接触判定ステップ、を前記コンピュータに実行させ
前記第２表示ステップにて前記第２フィールドが表示されているときには、当該第２フィールドを構成するオブジェクトと前記プレイヤオブジェクトとで接触判定を行う第２接触判定ステップ、を前記コンピュータに実行させる、請求項１記載のゲームプログラム。
【請求項３】
前記オブジェクトには予め、前記プレイヤオブジェクトと接触した際に行う処理の定義が設定されており、
前記第１接触判定ステップおよび前記第２接触判定ステップで、前記プレイヤオブジェクトと前記オブジェクトの接触が判定されたときに、当該オブジェクトに予め設定された定義に基づいて接触処理を行う第１接触処理ステップ、をさらに前記コンピュータに実行させる、請求項２記載のゲームプログラム。
【請求項４】
前記プレイヤオブジェクトには予め複数の接触判定点が設定されており、
前記第１接触判定ステップおよび前記第２接触判定ステップは、前記複数の接触判定点と前記オブジェクトとの接触状態によって、前記プレイヤオブジェクトがどの方向から当該オブジェクトに接触したかを算出する接触方向算出ステップを含む、請求項２記載のゲームプログラム。
【請求項５】
前記オブジェクトには予め、前記プレイヤオブジェクトと接触した際に行う処理の定義が接触方向ごとに設定されており、
前記第１接触判定ステップおよび前記第２接触判定ステップで、前記プレイヤオブジェクトと前記オブジェクトの接触が判定されたときに、当該オブジェクトに予め設定された前記接触方向算出ステップで算出された接触方向に対する定義に基づいて接触処理を行う第２接触処理ステップ、をさらに前記コンピュータに実行させる、請求項４記載のゲームプログラム。
【請求項６】
前記所定の条件とは、前記第１フィールドで前記プレイヤオブジェクトが所定の位置へ移動したときである、請求項１記載のゲームプログラム。
【請求項７】
前記所定の条件とは、前記第１フィールドで前記プレイヤオブジェクトが所定のオブジェクトに接触したときである、請求項１記載のゲームプログラム。
【請求項８】
前記所定の条件とは、前記第１表示ステップにて前記第１フィールド内の様子を前記表示装置に表示させてから所定の時間が経過したときである、請求項１記載のゲームプログラム。
【請求項９】
前記回転表示処理ステップでは、前記プレイヤオブジェクトも前記オブジェクトと同様に回転表示される、請求項１記載のゲームプログラム。
【請求項１０】
前記回転表示処理ステップでは、前記プレイヤオブジェクトの表示方向は変更せず、前記オブジェクトと同様に回転表示される、請求項１記載のゲームプログラム。
【請求項１１】
前記回転表示処理ステップでは、前記プレイヤオブジェクトは前記オブジェクトと同様に回転表示されない、請求項１記載のゲームプログラム。
【請求項１２】
プレイヤによって操作可能なプレイヤキャラクタが配置されたフィールドが回転する様子を表示装置に表示させるゲーム装置であって、
複数のオブジェクトによって構成される第１フィールド内に前記プレイヤキャラクタを配置し、少なくとも当該プレイヤオブジェクト含む第１フィールド内の様子を前記表示装置に表示させる第１表示手段、
所定の条件を満たしたときに、前記第１フィールドを所定角度まで回転させ、この回転する様子を前記表示装置に表示させる回転表示処理手段、および
前記回転表示処理手段にる前記第１フィールドの回転処理が終了したとき、前記第１フィールドに配置されているプレイヤキャラクタを、前記所定角度まで回転させた第１フィールドと同じ表示態様となるように複数のオブジェクトで予め構成された第２フィールド内に配置し直し、少なくとも当該プレイヤオブジェクトを含む第２フィールド内の様子を前記表示装置に表示させる第２表示手段を備える、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はゲームプログラムおよびゲーム装置に関し、より特定的には、表示装置上のゲーム画面（フィールド）を回転させることができる、ゲームプログラムおよびゲーム装置に関する。
【背景技術】
【０００２】
従来、表示装置上のゲーム画面（フィールド）を回転して表示させるゲームとして非特許文献１のようなものがある。非特許文献１では、所定の位置へプレイヤオブジェクトを移動させるとフィールド全体が回転する。このフィールドの回転により、今まで進むことができなかった次フィールドに進むことを可能にしていた。具体的には、次フィールドへの入口が現フィールドの上側に設けられている。プレイヤオブジェクトがある地点に来たとき、現フィールドが時計回り、もしくは反時計回りに９０度回転し、次フィールドへの入口が現フィールドの右側、もしくは左側にくる。その後、プレイヤオブジェクトを現フィールドの右側、もしくは左側まで導くことによって次フィールドへ進めていた。
【非特許文献１】ゲームソフト  「超魔界村Ｒ」（ゲームボーイアドバンス用カートリッジ、株式会社カプコン、２００２年７月１９日発売）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来はフィールド全体を単に回転させただけだったので、そのフィールド内に配置された或るオブジェクトに複雑な当たり判定をさせることができないという問題があった。たとえば、プレイヤオブジェクトが或るオブジェクトに下から当たったときにはその或るオブジェクトを貫通し、上から当たった場合にはその或るオブジェクトに乗ることができるように定義されたオブジェクトが設定されている場合に、フィールド全体が１８０度回転した後には、プレイヤオブジェクトがその或るオブジェクトに下から当たったときにはその或るオブジェクトにぶつかり、上から当たった場合にはその或るオブジェクトを貫通するといったように、オブジェクトに対するプレイヤオブジェクトの作用が逆になってしまうという問題があった。
【０００４】
この問題を回避するためには、回転前後でオブジェクト毎に当たり判定を変えればよいが、この場合、オブジェクト毎に回転前後を区別して当たり判定を行なわなければならず、その判定処理が複雑になるという別の問題を生じる。
【０００５】
それゆえに、この発明の主たる目的は、ゲーム画面（フィールド）を回転させる、新規なゲーム装置およびゲームプログラムを提供することである。
【０００６】
この発明の他の目的は、複雑な処理なしに、フィールドを回転させた後の当たり判定を正しく行なえる、ゲーム装置およびゲームプログラムを提供することである。
【課題を解決するための手段】
【０００７】
請求項１の発明は、プレイヤによって操作可能なプレイヤキャラクタが配置されたフィールドが回転する様子を表示装置に表示させるゲーム装置のコンピュータにおいて実行されるゲームプログラムであって、複数のオブジェクトによって構成される第１フィールド内にプレイヤキャラクタを配置し、少なくとも当該プレイヤオブジェクト含む第１フィールド内の様子を表示装置に表示させる第１表示ステップ、所定の条件を満たしたときに、第１フィールドを所定角度まで回転させ、この回転する様子を表示装置に表示させる回転表示処理ステップ、および回転表示処理ステップで第１フィールドの回転処理が終了したとき、第１フィールドに配置されているプレイヤキャラクタを、所定角度まで回転させた第１フィールドと同じ表示態様となるように複数のオブジェクトで予め構成された第２フィールド内に配置し直し、少なくとも当該プレイヤオブジェクトを含む第２フィールド内の様子を表示装置に表示させる第２表示ステップ、をコンピュータに実行させるゲームプログラムである。
【０００８】
請求項１の発明では、ゲーム装置（１０：実施例で相当する部分を例示したとえばゲーム機の参照番号。以下同じ。）では、オブジェクト（実施例に示すＢＧオブジェクト）プレイヤオブジェクトが存在するフィールドを回転させることができる。オブジェクトは、第１属性を有する第１オブジェクト（実施例で示すＢＧオブジェクト３および５）および第１オブジェクトを回転させた後の属性と同じ属性の第２属性を有する第２オブジェクト（実施例で示すＢＧオブジェクト４および６）を含む。ゲーム装置は、記憶手段（４２）を含み、この記憶手段には、第１エリアデータ、第２エリアデータ、プレイヤオブジェクトの属性、および第１オブジェクトと第１属性および第２オブジェクトと第２属性を含むオブジェクトデータを記憶する。
【０００９】
そして、コンピュータまたはＣＰＵコア（３４）は、第１表示ステップを形成するたとえばステップＳ１およびＳ１１（図１０）において、第１エリアデータ（ＡＤ１）に基づいて第１フィールド（Ｆ１）を生成し、表示する。
【００１０】
たとえば、プレイヤオブジェクトが所定の位置に移動したり、特定のオブジェクトに作用したりすることによって、所定の条件が充足される。そのとき、回転処理ステップ（Ｓ１３）では第１フィールドを回転させる。
【００１１】
ＣＰＵコア（３４）は、第２表示ステップを形成するたとえばＳ８３およびＳ８５で、第２エリアデータに基づいて第２フィールドを生成し、表示する。
【００１２】
請求項１の発明によれば、ゲームフィールドが回転した後にはエリアデータを差し替えて、第２フィールドを生成して表示したり、当たり判定を行うので、ゲームフィールドを回転させた後の当たり判定などが簡単に行なえる。
【００１３】
請求項２の発明は、ゲームプログラムは、第１表示ステップにて第１フィールドが表示されているときには、当該第１フィールドを構成するオブジェクトとプレイヤオブジェクトとで接触判定を行う第１接触判定ステップ、をコンピュータに実行させ、第２表示ステップにて第２フィールドが表示されているときには、当該第２フィールドを構成するオブジェクトとプレイヤオブジェクトとで接触判定を行う第２接触判定ステップ、をコンピュータに実行させる、請求項１記載のゲームプログラムである。
【００１４】
請求項２の発明では、第１接触判定ステップを形成するたとえばステップＳ７（図１０）において、コンピュータまたはＣＰＵコア（３４）は、第１エリアデータに基づいて第１フィールドでプレイヤオブジェクトの第１オブジェクトに対する当たり判定を行う。そして、第２接触判定ステップを形成するたとえばステップＳ７（図１０）で、ＣＰＵコア（３４）は、第２エリアデータに基づいて第２フィールドでプレイヤオブジェクトの第２オブジェクトに対する当たり判定を行う。したがって、接触判定が簡単に行なえる。
【００１５】
請求項３の発明は、オブジェクトには予め、プレイヤオブジェクトと接触した際に行う処理の定義が設定されており、第１接触判定ステップおよび第２接触判定ステップで、プレイヤオブジェクトとオブジェクトの接触が判定されたときに、当該オブジェクトに予め設定された定義に基づいて接触処理を行う第１接触処理ステップ、をさらにコンピュータに実行させる、請求項２記載のゲームプログラムである。
【００１６】
請求項３の発明では、ＣＰＵコア（３４）は、第１接触判定ステップおよび第２接触判定ステップで、プレイヤオブジェクトとオブジェクトの接触が判定されたときには、その予め設定された定義に基づいて接触処理を実行する。したがって、接触後の処理が簡単に行なえる。
【００１７】
請求項４の発明は、プレイヤオブジェクトには予め複数の接触判定点が設定されており、第１接触判定ステップおよび第２接触判定ステップは、複数の接触判定点とオブジェクトとの接触状態によって、プレイヤオブジェクトがどの方向から当該オブジェクトに接触したかを算出する接触方向算出ステップを含む、請求項２記載のゲームプログラムである。
【００１８】
請求項４の発明では、プレイヤオブジェクトには実施例では５つの接触判定点が設定されていて、接触判定ステップでは、ＣＰＵコア（３４）は、それらの判定点とオブジェクトとの接触（当たり）状態によって、接触方向を判別する。したがって、接触方向の判定が簡単に行なえる。
【００１９】
請求項５の発明は、オブジェクトには予め、プレイヤオブジェクトと接触した際に行う処理の定義が接触方向ごとに設定されており、第１接触判定ステップおよび第２接触判定ステップで、プレイヤオブジェクトとオブジェクトの接触が判定されたときに、当該オブジェクトに予め設定された接触方向算出ステップで算出された接触方向に対する定義に基づいて接触処理を行う第２接触処理ステップ、をさらにコンピュータに実行させる、請求項４記載のゲームプログラムである。
【００２０】
請求項５の発明では、ＣＰＵコア（３４）は、プレイヤオブジェクトとオブジェクトの接触を判定したときに、そのオブジェクトに予め設定された接触方向に対する定義に基づいて接触処理を行う。したがって、第１属性および第２属性としてそれぞれ接触方向定義が設定されているので、ゲームフィールドを回転した後も接触方向処理が複雑になることはない。
【００２１】
請求項６の発明は、所定の条件とは、第１フィールドでプレイヤオブジェクトが所定の位置へ移動したときである、請求項１記載のゲームプログラムである。
【００２２】
請求項７の発明は、所定の条件とは、第１フィールドでプレイヤオブジェクトが所定のオブジェクトに接触したときである、請求項１記載のゲームプログラムである。
【００２３】
請求項８の発明は、所定の条件とは、第１表示ステップにて第１フィールド内の様子を表示装置に表示させてから所定の時間が経過したときである、請求項１記載のゲームプログラムである。
【００２４】
請求項６−８のそれぞれの発明では、プレイヤオブジェクトが規定される条件を充足したとき、ＣＰＵコア（３４）は第２表示ステップを実行する。
【００２５】
請求項９の発明は、回転表示処理ステップでは、プレイヤオブジェクトもオブジェクトと同様に回転表示される、請求項１記載のゲームプログラムである。
【００２６】
請求項１０の発明は、回転表示処理ステップでは、プレイヤオブジェクトの表示方向は変更せず、オブジェクトと同様に回転表示される、請求項１記載のゲームプログラムである。
【００２７】
請求項１１の発明は、回転表示処理ステップでは、プレイヤオブジェクトはオブジェクトと同様に回転表示されない、請求項１記載のゲームプログラムである。
【００２８】
回転表示処理ステップにおいては、ＣＰＵコア（３４）は、プレイヤオブジェクトをオブジェクトと同様に回転させ（請求項９）、またはプレイヤオブジェクトの表示方向は変更せずにオブジェクトと同様に回転され（請求項１０）、あるいはプレイヤオブジェクトはオブジェクトと同様に回転表示されない（請求項１１）のような回転態様で回転表示させることが可能である。
【００２９】
請求項１２の発明は、プレイヤによって操作可能なプレイヤキャラクタが配置されたフィールドが回転する様子を表示装置に表示させるゲーム装置であって、複数のオブジェクトによって構成される第１フィールド内にプレイヤキャラクタを配置し、少なくとも当該プレイヤオブジェクト含む第１フィールド内の様子を表示装置に表示させる第１表示手段、所定の条件を満たしたときに、第１フィールドを所定角度まで回転させ、この回転する様子を表示装置に表示させる回転表示処理手段、および回転表示処理手段にる第１フィールドの回転処理が終了したとき、第１フィールドに配置されているプレイヤキャラクタを、所定角度まで回転させた第１フィールドと同じ表示態様となるように複数のオブジェクトで予め構成された第２フィールド内に配置し直し、少なくとも当該プレイヤオブジェクトを含む第２フィールド内の様子を表示装置に表示させる第２表示手段を備える、ゲーム装置である。
【００３０】
請求項１２の発明でも請求項１の発明と同様の効果が期待できる。
【発明の効果】
【００３１】
この発明によれば、フィールドの回転前後でマップ（エリアデータ）を差し替え、回転前なら第１エリアデータに基づいて第１フィールドを生成し表示するとともに、回転後は第２エリアデータに基づいて第２フィールドを生成して表示する。したがって、回転前後のフィールド生成処理が簡単である。そして、第１フィールドの第１エリアデータまたは第２フィールドの第２エリアデータに基づいてプレイヤオブジェクトのオブジェクトへの当たり（接触）判定を行うようにすれば、複雑な処理なしに、オブジェクトに対するプレイヤオブジェクトの当たり判定が行なえる。
【００３２】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００３３】
図１を参照して、この発明の実施例であるゲーム装置１０は、第１の液晶表示器（ＬＣＤ）１２および第２のＬＣＤ１４を含む。ＬＣＤ１２およびＬＣＤ１４は、所定の配置位置となるようにハウジング1６に収納される。この実施例では、ハウジング１６は、上側ハウジング１６ａと下側ハウジング１６ｂとによって構成され、ＬＣＤ１２は上側ハウジング１６ａに収納され、ＬＣＤ１４は下側ハウジング１６ｂに収納される。したがって、ＬＣＤ１２とＬＣＤ１４とは縦（上下）に並ぶように近接して配置される。
【００３４】
なお、この実施例では、表示器としてＬＣＤを用いるようにしてあるが、ＬＣＤに代えて、ＥＬ(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【００３５】
図１からも分かるように、上側ハウジング１６ａは、ＬＣＤ１２の平面形状よりも少し大きな平面形状を有し、一方主面からＬＣＤ１２の表示面を露出するように開口部が形成される。一方、下側ハウジング１６ｂは、その平面形状が上側ハウジング１６ａよりも横長に選ばれ、横方向の略中央部にＬＣＤ１４の表示面を露出するように開口部が形成される。下側ハウジング１６ｂのＬＣＤ１４の左方には電源スイッチ１８が設けられる。
【００３６】
また、上側ハウジング１６ａには、ＬＣＤ１２を挟んで左右に、スピーカ３６ａおよび３６ｂ（図２）のための音抜き孔２０ａおよび２０ｂが形成される。そして、下側ハウジング１６ｂには、マイク（図示せず）のためのマイク孔２０ｃが形成されるとともに、操作スイッチ２２（２２ａ，２２ｂ，２２ｃ，２２ｄ，２２ｅ，２２Ｌおよび２２Ｒ）が設けられる。
【００３７】
また、上側ハウジング１６ａと下側ハウジング１６ｂとは、上側ハウジング１６ａの下辺（下端）と下側ハウジング１６ｂの上辺（上端）の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、ＬＣＤ１２の表示面とＬＣＤ１４の表示面とが対面するように、上側ハウジング１６ａを回動させて折りたたんでおけば、ＬＣＤ１２の表示面およびＬＣＤ１４の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング１６ａと下側ハウジング１６ｂとは、回動可能に連結せずに、それらを一体的（固定的）に設けたハウジング１６を形成するようにしてもよい。
【００３８】
操作スイッチ２２は、方向指示スイッチ（十字スイッチ）２２ａ，スタートスイッチ２２ｂ、セレクトスイッチ２２ｃ、動作スイッチ（Ａボタン）２２ｄ、動作スイッチ（Ｂボタン）２２ｅ、動作スイッチ（Ｘボタン）２２ｆ、動作スイッチ（Ｙボタン）２２ｇ、動作スイッチ（Ｌボタン）２２Ｌおよび動作スイッチ（Ｒボタン）２２Ｒを含む。スイッチ２２ａは、下側ハウジング１６ｂの一方主面であり、ＬＣＤ１４の左側に配置される。その他のスイッチ２２ｂ−２２ｇは、下側ハウジング１６ｂの一方主面であり、ＬＣＤ１４の右側に配置される。さらに、スイッチ２２Ｌおよびスイッチ２２Ｒは、それぞれ、上側ハウジング１６ａとの連結部を挟む下側ハウジング１６ｂの上側面の左右角部に配置される。
【００３９】
方向指示スイッチ２２ａは、ディジタルジョイスティックとして機能し、４つの押圧部の１つを操作することによって、ユーザないしプレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。また、各押圧部には、特定の役割（この実施例では、ギターのコード）を割り当てることができ、４つの押圧部の１つを操作することによって、割り当てられた役割を指示（指定）することができる。
【００４０】
スタートスイッチ２２ｂは、プッシュボタンで構成され、ゲームを開始（再開）したり、一時停止(Pause)したりする等に用いられる。また、セレクトスイッチ２２ｃは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【００４１】
動作スイッチ２２ｄすなわちＡボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(ＲＰＧ)やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ２２ｅすなわちＢボタンは、プッシュボタンで構成され、セレクトスイッチ２２ｃで選択したゲームモードの変更やＡボタン２２ｄで決定したアクションの取り消し等のために用いられる。
【００４２】
動作スイッチ２２ｆすなわちＸボタン、および動作スイッチ２２ｇすなわちＹボタンは、プッシュボタンで構成され、Ａボタン２２ｄとＢボタン２２ｅだけでは、ゲーム進行ができないときに、補助的な操作に用いられる。ただし、Ｘボタン２２ｆおよびＹボタン２２ｇは、Ａボタン２２ｄおよびＢボタン２２ｅと同様の操作に用いることも可能である。もちろん、ゲームプレイにおいてＸボタン２２ｆとＹボタン２２ｇとを必ずしも使用しなくてよい。
【００４３】
動作スイッチ２２Ｌ（左押しボタン）および動作スイッチ２２Ｒ（右押しボタン）は、プッシュボタンで構成され、左押しボタン（Ｌボタン）２２Ｌおよび右押しボタン（Ｒボタン）２２Ｒは、Ａボタン２２ｄおよびＢボタン２２ｅと同様の操作に用いることができ、また、Ａボタン２２ｄおよびＢボタン２２ｅの補助的な操作に用いることができる。さらに、Ｌボタン２２ＬおよびＲボタン２２Ｒは、方向スイッチ２２ａ、Ａボタン２２ｄ，Ｂボタン２２ｅ，Ｘボタン２２ｆ，Ｙボタン２２ｇに割り当てられた役割を、他の役割に変更することができる。この実施例では、Ｌボタン２２Ｌを押すと、方向スイッチ２２ａに割り当てられたコードが他のコードに変更される。
【００４４】
また、ＬＣＤ１４の上面には、タッチパネル２４が装着される。タッチパネル２４としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル２４は、その上面をスティック２６ないしはペン（スタイラスペン）或いは指（以下、これらを「スティック２６等」という場合がある。）で、押圧したり、撫でたり、触れたりすることにより操作（タッチ入力）すると、スティック２６等の操作位置の座標を検出して、検出した座標（検出座標）に対応する座標データを出力する。
【００４５】
なお、この実施例では、ＬＣＤ１４（ＬＣＤ１２も同じ、または略同じ。）の表示面の解像度は２５６ｄｏｔ×１９２ｄｏｔであり、タッチパネル２４の検出精度も表示画面に対応して２５６ｄｏｔ×１９２ｄｏｔとしてあるが、タッチパネル２４の検出精度は表示画面の解像度よりも低くてもよく、高くてもよい。
【００４６】
ＬＣＤ１２およびＬＣＤ１４には異なるゲーム画面が表示される。たとえば、レースゲームでは一方のＬＣＤに運転席からの視点による画面を表示し、他方のＬＣＤにレース（コース）全体の画面を表示することができる。また、ＲＰＧでは、一方のＬＣＤにマップやプレイヤキャラクタ等のキャラクタを表示し、他方のＬＣＤにプレイヤキャラクタが所有するアイテムを表示することができる。さらに、一方のＬＣＤ（この実施例では、ＬＣＤ１２）にゲームのプレイ画面を表示し、他方のＬＣＤ（この実施例では、ＬＣＤ１４）に当該ゲームを操作するための線や図形（アイコンを含む。）などの操作オブジェクトを含むゲーム画面（操作画面）を表示することができる。さらには、２つのＬＣＤ１２およびＬＣＤ１４を合わせて１つの画面として用いることにより、プレイヤキャラクタが倒さなければならない巨大な怪物（敵キャラクタ）を表示することもできる。
【００４７】
したがって、プレイヤはスティック２６等でタッチパネル２４を操作することにより、ＬＣＤ１４の画面に表示されるプレイヤキャラクタ、敵キャラクタ、アイテムキャラクタ、操作オブジェクトなどの画像を指示（操作）したり、コマンドを選択（入力）したりすることができる。また、３次元ゲーム空間に設けられる仮想カメラ（視点）の方向を変化させたり、ゲーム画面（マップ）のスクロール(徐々に移動表示)方向を指示したりすることもできる。
【００４８】
なお、ゲームの種類によっては、タッチパネル２４を用いることにより、その他の入力指示も可能である。たとえば、座標入力指示を入力したり、ＬＣＤ１４において文字，数字，記号等を手書き入力したりすることができる。
【００４９】
このように、ゲーム装置１０は、２画面分の表示部となるＬＣＤ１２およびＬＣＤ１４を有し、いずれか一方（この実施例では、ＬＣＤ１４）の上面にタッチパネル２４が設けられるので、２画面（１２，１４）と２系統の操作部（２２，２４）とを有する構成になっている。
【００５０】
また、この実施例では、スティック２６は、たとえば下側ハウジング１６ｂに設けられる収納部（図１では点線で示す）に収納することができ、必要に応じて取り出される。ただし、スティック２６を設けない場合には、その収納部も設ける必要はない。
【００５１】
さらに、ゲーム装置１０はメモリカード（またはカートリッジ）２８を含み、このメモリカード２８は着脱自在であり、下側ハウジング１６ｂの裏面ないしは下端（底面）に設けられる挿入口３０（図１では点線で示す）に挿入される。図１では省略するが、挿入部３０の奥部には、メモリカード２８の挿入方向先端部に設けられるコネクタ（図示せず）と接合するためのコネクタ３２（図２参照）が設けられており、したがって、メモリカード２８が挿入部３０に挿入されると、コネクタ同士が接合され、ゲーム装置１０のＣＰＵコア３４（図２参照）がメモリカード２８にアクセス可能となる。
【００５２】
なお、図１では表現できないが、上側ハウジング１６ａの音抜き孔２０ａおよび２０ｂと対応する位置であり、この上側ハウジング１６ａの内部にはスピーカ３６ａおよび３６ｂ（図２参照）が設けられる。
【００５３】
また、図１では省略するが、たとえば、下側ハウジング１６ｂの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング１６ｂの底面側には、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【００５４】
図２はゲーム装置１０の電気的な構成を示すブロック図である。図２を参照して、ゲーム装置１０は電子回路基板３８を含み、この電子回路基板３８には上述のＣＰＵコア３４等の回路コンポーネントが実装される。ＣＰＵコア３４は、バス４０を介して前述のコネクタ３２に接続されるととともに、ＲＡＭ４２、第１のグラフィック処理ユニット（ＧＰＵ）４４、第２のＧＰＵ４６、入出カインターフエース回路（以下、「Ｉ／Ｆ回路」という。）４８およびＬＣＤコントローラ５０が接続される。
【００５５】
コネクタ３２には、上述したように、メモリカード２８が着脱自在に接続される。メモリカード２８は、ＲＯＭ２８ａおよびＲＡＭ２８ｂを含み、図示は省略するが、ＲＯＭ２８ａおよびＲＡＭ２８ｂは、互いにバスで接続され、さらに、コネクタ３２と接合されるコネクタ（図示せず）に接続される。したがって、上述したように、ＣＰＵコア３４は、ＲＯＭ２８ａおよびＲＡＭ２８ｂにアクセスすることができるのである。
【００５６】
ＲＯＭ２８ａは、ゲーム装置１０で実行すべきゲームのためのゲームプログラム、画像データ（文字やキャラクタの画像、背景（ＢＧ）画像、アイテム画像、アイコン（ボタン）画像、メッセージ画像など）およびゲームに必要な音（音楽）のデータ（音データ）等を予め記憶する。ＲＡＭ（バックアップＲＡＭ）２８ｂは、そのゲームの途中データやゲームの結果データなどを記憶（セーブ）する。
【００５７】
ＲＡＭ４２は、バッファメモリないしはワーキングメモリとして使用される。つまり、ＣＰＵコア３４は、メモリカード２８のＲＯＭ２８ａに記憶されたプログラム、画像データおよび音データ等をＲＡＭ４２にロードし、ロードしたプログラムを実行する。また、ＣＰＵコア３４は、ゲームの進行に応じて一時的に発生するデータ（ゲームデータやフラグデータ）をＲＡＭ４２に記憶しつつゲーム処理を実行する。
【００５８】
なお、ゲームプログラム、画像データおよび音データ等は、ＲＯＭ２８ａから一度に全部、または部分的かつ順次的に読み出され、ＲＡＭ４２に記憶（ロード）される。
【００５９】
ただし、メモリカード２８のＲＯＭ２８ａには、ゲーム以外の他のアプリケーションについてのプログラムおよび当該アプリケーションの実行に必要な画像データが記憶される。また、必要に応じて、音（音楽）データが記憶されてもよい。かかる場合には、ゲーム装置１０では、当該アプリケーションが実行される。
【００６０】
ＧＰＵ４４およびＧＰＵ４６は、それぞれ、描画手段の一部を形成し、たとえばシングルチップＡＳＩＣで構成され、ＣＰＵコア３４からのグラフィックスコマンド（graphics command ：作画命令）を受け、そのグラフィックスコマンドに従って画像データを生成する。ただし、ＣＰＵコア３４は、グラフィックスコマンドに加えて、画像データの生成に必要な画像生成プログラム（ゲームプログラムに含まれる。）をＧＰＵ４４およびＧＰＵ４６のそれぞれに与える。
【００６１】
また、ＧＰＵ４４には、第１のビデオＲＡＭ（以下、「ＶＲＡＭ」という。）５２が接続され、ＧＰＵ４６には、第２のＶＲＡＭ５４が接続される。ＧＰＵ４４およびＧＰＵ４６が作画コマンドを実行するにあたって必要なデータ（画像データ：キャラクタデータやテクスチャ等のデータ）は、ＧＰＵ４４およびＧＰＵ４６が、それぞれ、第１のＶＲＡＭ５２および第２のＶＲＡＭ５４にアクセスして取得する。
【００６２】
なお、ＣＰＵコア３４は、描画に必要な画像データをＧＰＵ４４およびＧＰＵ４６を介して第１のＶＲＡＭ５２および第２のＶＲＡＭ５４に書き込む。ＧＰＵ４４はＶＲＡＭ５２にアクセスして描画のための画像データを作成し、ＧＰＵ４６はＶＲＡＭ５４にアクセスして描画のための画像データを作成する。
【００６３】
ＶＲＡＭ５２およびＶＲＡＭ５４は、ＬＣＤコントローラ５０に接続される。ＬＣＤコントローラ５０はレジスタ５６を含み、レジスタ５６はたとえば１ビットで構成され、ＣＰＵコア３４の指示によって「０」または「１」の値（データ値）を記憶する。ＬＣＤコントローラ５０は、レジスタ５６のデータ値が「０」である場合には、ＧＰＵ４４によって作成された画像データをＬＣＤ１２に出力し、ＧＰＵ４６によって作成された画像データをＬＣＤ１４に出力する。また、ＬＣＤコントローラ５０は、レジスタ５６のデータ値が「１」である場合には、ＧＰＵ４４によって作成された画像データをＬＣＤ１４に出力し、ＧＰＵ４６によって作成された画像データをＬＣＤ１２に出力する。
【００６４】
なお、ＬＣＤコントローラ５０は、ＶＲＡＭ５２およびＶＲＡＭ５４から直接画像データを読み出したり、ＧＰＵ４４およびＧＰＵ４６を介してＶＲＡＭ５２およびＶＲＡＭ５４から画像データを読み出したりする。
【００６５】
Ｉ／Ｆ回路４８には、操作スイッチ２２，タッチパネル２４およびスピーカ３６ａ，３６ｂが接続される。ここで、操作スイッチ２２は、上述したスイッチ２２ａ，２２ｂ，２２ｃ，２２ｄ，２２ｅ，２２ｇ，２２Ｌおよび２２Ｒであり、操作スイッチ２２が操作されると、対応する操作信号（操作データ）がＩ／Ｆ回路４８を介してＣＰＵコア３４に入力される。また、タッチパネル２４からの座標データがＩ／Ｆ回路４８を介してＣＰＵコア３４に入力される。さらに、ＣＰＵコア３４は、ゲーム音楽（ＢＧＭ）、効果音またはゲームキャラクタの音声（擬制音）などのゲームに必要な音データをＲＡＭ４２から読み出し、Ｉ／Ｆ回路４８を介してスピーカ３６ａ，３６ｂから出力する。
【００６６】
図３を参照して、ＲＡＭ４２にはプログラム記憶領域５８が形成されていて、このプログラム記憶領域５８にはゲームプログラム６０が記憶される。このゲームプログラム６０は、前述のＲＯＭ２８ａから一度に全部読み出されて、もしくは必要な部分が部分的に読み出されて、このプログラム記憶領域５８に記憶される。
【００６７】
ゲームプログラム６０には、典型的には、初期設定プログラム６２，オブジェクト操作プログラム６４，当たり判定プログラム６６，スクロールプログラム６８，回転処理プログラム７０などを含む。
【００６８】
初期設定プログラム６２は、具体的には後述の図１１に示すが、指定されたフィールド番号（これは、後述のエリアフラグ８０に設定される）のフィールドにプレイヤオブジェクトやＢＧオブジェクトを描画するためのプログラムである。
【００６９】
オブジェクト操作プログラム６４は、プレイヤによるコントローラ２２の操作手段２６の操作に応じて入力される操作信号に従ってプレイヤオブジェクトの移動や動作（ジャンプ、歩行、格闘など）を制御する。
【００７０】
当たり判定プログラム６６は、具体的には後述の図１２に示されるが、プレイヤオブジェクトのＢＧオブジェクトに対する当たり（接触、衝突）の有無を判断するとともに、両者が当たり状態にあるときには、プレイヤオブジェクトのＢＧオブジェクトに対する接触方向（どの方向からＢＧオブジェクトに接触したか）を判定し、さらにその接触方向に応じて予め設定されている処理をプレイヤオブジェクトおよび／またはＢＧオブジェクトに施す。
【００７１】
スクロールプログラム６８は、具体的には後述の図１５に示されるが、スクロール指示に応じてゲーム画面またはフィールドをスクロールさせるプログラムである。
【００７２】
回転処理プログラム７０は、具体的には後述の図１６に示されるが、回転指示に応答してゲーム画面すなわちフィールドを回転させるプログラムである。
【００７３】
ＲＡＭ４２にはさらに、データ記憶領域７２が設定されていて、このデータ記憶領域７２には、オブジェクトデータ記憶領域７４が設けられる。オブジェクトデータ記憶領域７４には、プレイヤオブジェクトデータとＢＧオブジェクトデータとが記憶される。
【００７４】
プレイヤオブジェクトは上述のように、ゲームプレイヤがコントローラ２２の操作によってそれぞれの移動や動作を制御できるオブジェクトであり、プレイヤオブジェクトデータには、そのようなプレイヤオブジェクトの画像データ、および図４に示す、そのプレイヤオブジェクトに予め決められている複数（実施例では５つ）の当たり判定点Ａ１−Ａ５や基準点Ｂを含む属性データが含まれる。
【００７５】
ＢＧオブジェクトは、ゲームプレイヤが操作または制御できないオブジェクトであり、たとえば静止画である背景（ＢＧ）画像を構成する。そのようなＢＧオブジェクトの一例が図５に示される。ただし、この図５に示すＢＧオブジェクトは単なる例示に過ぎないことはいうまでもない。なお、このようなＢＧオブジェクトは、場合によっては、ＢＧデータと呼ばれることがある。
【００７６】
図５に示すＢＧオブジェクト１は、壁ブロックであり、この壁ブロックはプレイヤオブジェクトに対して何もダメージを与えるものではなく、プレイヤオブジェクトは壁ブロックに当たるとそれ以上は進めないので、プレイヤオブジェクトの移動可能範囲を制限する。また、プレイヤオブジェクトが下方向より接触することにより壁ブロックへ振動を与えることができ、壁ブロックにアイテム等が隠されている場合には、そのアイテム等を出現させることができる。図５に示すＢＧオブジェクト２は、固定ブロックであり、この固定ブロックはプレイヤオブジェクトに対して何もダメージを与えるものではなく、プレイヤオブジェクトは固定ブロックに当たるとそれ以上は進めなという点で、プレイヤオブジェクトの移動可能範囲を制限する点では壁ブロックと同様である。ただし、壁ブロックのようにプレイヤオブジェクトが下方向より振動を与えることはできず、アイテム等が隠されていることもない。
【００７７】
これに対して、図５に示すＢＧオブジェクト３（４）および５（６）については、ＢＧオブジェクト３が回転するとＢＧオブジェクト４となり、またはその逆となる。ＢＧオブジェクト５が回転するとＢＧオブジェクト６となり、またはその逆となる。ＢＧオブジェクト３は実施例では「とげ」と呼び、ＢＧオブジェクト４は「つらら」と呼ぶ。ＢＧオブジェクト５は実施例では「坂道」と呼び、ＢＧオブジェクト６は「天井」と呼ぶ。
【００７８】
例えばＢＧオブジェクト３（４）および５（６）の属性が、次表１−４に示すように具体的に決められている。
【００７９】
表１を実施例に上げて属性を説明すると、このＢＧオブジェクト３である「とげ」は、それにプレイヤオブジェクトが上方向から接触したときは、その上面には「とげ」が形成されているため、プレイヤオブジェクトにダメージを与えるが、それ以外の方向、下方向、左方向、右方向から当たてもダメージは受けず、その面に引っかかるだけである。そして、このＢＧオブジェクト１は、自身は移動できるものではなく、固定物として表現される。
【００８０】
ＢＧオブジェクト４は、図５からよく分るように、画像としては、ＢＧオブジェクト３の「とげ」を１８０°回転させた画像と同じである。したがって、その或るＢＧオブジェクトの回転後の画像は、たとえば、ビットマップ画像（ＶＲＡＭに展開した）の各ドットを計算によって回転させることによって表示できる。そのため、従来は、或るＢＧオブジェクトの回転画像と同一の画像を有するＢＧオブジェクトについては、回転後のＢＧオブジェクトとして特別に準備することはしていなかった。したがって、ＢＧオブジェクトにプレイヤオブジェクトが接触したときには、その都度、そのときのＢＧオブジェクトが回転している状態なのかどうかを判断するとともに、もし回転後の状態にあるなら、どの方向からの接触がプレイヤオブジェクトにダメージを与えるのかなどを計算して、当たり属性を変換しなければならず、コンピュータないしＣＰＵの負荷が大きかった。
【００８１】
これに対して、この実施例では、ＢＧオブジェクトの回転後と同じ画像となるＢＧオブジェクト４についてもオブジェクトデータを準備しておき、そのオブジェクトデータの中に、ＢＧオブジェクト４に固有の当たり属性を回転前の状態であるＢＧオブジェクト３の当たり属性に対応するように予め設定されている。たとえば、ＢＧオブジェクト３では「とげ」が上面に形成されているので、プレイヤオブジェクトがＢＧオブジェクト３の上面に接触すると、プレイヤオブジェクトはダメージを受けた。これに対して、ＢＧオブジェクト４では「とげ」は下面に形成されることになるので、その属性も、表２に示すように、下方向から接触したときプレイヤオブジェクトにダメージを与えるように設定している。
【００８２】
ただし、この実施例では、ＢＧオブジェクト３は「とげ」であり固定表示されるものとし、ＢＧオブジェクト４は「つらら」として落下もできるものとしているが、これは当たり属性ではなく、動作属性に該当するので、必ずしも、回転後のＢＧオブジェクト４の動作属性を回転前の状態であるＢＧオブジェクト３の動作属性と同じに、もしくは対応するように設定する必要はない。
【００８３】
このように、回転後のＢＧオブジェクトであるＢＧオブジェクト４の当たり属性は、回転前の同じＢＧオブジェクトであるＢＧオブジェクト３の当たり属性に対応するように予め設定されているので、ゲームフィールドが回転された後には、プレイヤオブジェクトの当たり判定はＢＧオブジェクト４の当たり属性をそのまま用いて行えばよく、従来技術ではＣＰＵの負担を増大させていた回転処理がより簡単に行える。
【００８４】
表３に示すＢＧオブジェクト５「坂道」と表４に示すＢＧオブジェクト６「天井」との間にも同じことがいえる。ＢＧオブジェクト５が回転前の画像と当たり属性を有し、ＢＧオブジェクト６が、回転後の画像と当たり属性を有する。簡単にいえば、ＢＧオブジェクト５は「坂道」であるので、それにプレイヤオブジェクトが左方向から接触したとき、プレイヤオブジェクトには斜面を登るような当たり処理が施され、上方向からプレイヤオブジェクトが接触すると、プレイヤオブジェクトが面で引っかかる（４５°の斜面に対する判定）ような当たり処理を施される。これに対して、ＢＧオブジェクト６は「天井」であるので、それにプレイヤオブジェクトが右方向または下方向のいずれの方向から接触したときでも、プレイヤオブジェクトが面で引っかかる（４５°の斜面に対する判定）ような当たり処理を施される。
【００８５】
【表１】
2007301020.tif 000003
【００８６】
【表２】
2007301020.tif 000004
【００８７】
【表３】
2007301020.tif 000005
【００８８】
【表４】
2007301020.tif 000006
【００８９】
図３に戻って、データ記憶領域７２にはさらに、フィールドメモリ領域７６が設定される。フィールドメモリ領域７６は、スクリーンメモリ領域とも呼ばれ、ゲームフィールド内のＢＧオブジェクトの配置を示すエリアデータを記憶または設定しておくための領域であり、回転前の配置である第１エリアデータと、回転後の配置である第２エリアデータとを有する。
【００９０】
図６は第１エリアデータＡＤ１の一例を図解している。この図６では、ゲーム画面（フィールド）全体に、たとえば８（縦）×１１（横）のＢＧオブジェクトを配置、表示できると想定されている。そして、この図６の左上角を原点として、第１行（横方向）には全列ＢＧオブジェクト１すなわち壁ブロックが配置される。同じ壁ブックが、第２行の第５列および第６列、第３行第２列、第５行の第６列および第８列、第７行の第３列および第４列、そして第２列、第７列、第８列を除く第８行の各列にも配置される。ただし、第２行第７列にはＢＧオブジェクト6である「天井」が配置され、第５行第７列および第８行第２列にはＢＧオブジェクト２すなわち固定ブロックが配置される。また、第７行第２列、第８行第７列および第８列にそれぞれＢＧオブジェクト３すなわち「とげ」が配置される。ＢＧオブジェクト５である「坂道」は第７行第１１列に設定される。このように、ゲーム画面のどの位置にどのようなＢＧオブジェクトを表示させるかを示すデータをエリアデータ（ＡＤ）と呼び、そのようなエリアデータを記憶しておく場所がフィールドメモリ領域７６である。
【００９１】
図６のエリアデータは、回転前のフィールドを現しているので、第１エリアデータであるが、この第１エリアデータＡＤ１に従ったゲーム画面、すなわち第１フィールド描画イメージＦ１は、たとえば図７に示すようなものとなる。図７のゲーム画像Ｆ１では、図６において第１エリアデータとして「１」が設定されている場所にはＢＧオブジェクト１（壁ブロック）が、第１エリアデータとして「２」が設定されている場所にはＢＧオブジェクト２（固定ブロック）が、第１エリアデータとして「３」が設定されている場所にはＢＧオブジェクト３（とげ）が、第１エリアデータとして「５」が設定されている場所にはＢＧオブジェクト５（坂道）が、そして第１エリアデータとして「６」が設定されている場所にはＢＧオブジェクト６（天井）が、それぞれ描画され表示される。
【００９２】
第２エリアデータＡＤ２の一例が図８に図解される。この図８でも同じ８（縦）×１１（横）の場所にＢＧオブジェクトを配置、表示できる。図６ではその左上角が原点であったが、図８では、図６での原点位置は右下角に相当する。つまり、第１フィールドを回転させた第２フィールドとは、第１フィールドを１８０°回転されたフィールドである。
【００９３】
したがって、この第２エリアデータＡＤ２では、参考までに図８に付記している丸付き数字で示す図６の行列番号を反転した行列番号が各表示場所に設定される。つまり、図８のフィールドメモリの右下角を原点として、そこから上に順に大きくなる行番号が設定され、左に順に大きくなる列番号が設定される。たとえば、図６の第１行が、図８の第８行として表わされ、図６の第１１列が図８では第１列として表わされる。
【００９４】
図６の第１フィールドを回転したものが図８の第２フィールドであるので、図８では、図６と同じ行列番号で示される場所に図６と同様のＢＧオブジェクトが配置されるように、第２エリアデータＡＤ２が設定される。
【００９５】
図８の第１行には全列ＢＧオブジェクト１（壁ブロック）が配置される。同じ壁ブックが、図８の第２行の第５列および第６列、第３行第２列、第５行の第６列および第８列、第７行の第３列および第４列、そして第２列、第７列、第８列を除く第８行の各列にも配置される。ただし、第２行第７列にはＢＧオブジェクト５である「坂道」が配置される。図６の第１エリアデータではこの場所にはＢＧオブジェクト６「天井」が配置されていたが、図８は図６を回転した後のフィールドであるので、回転可能ＢＧオブジェクトであるＢＧオブジェクト６は、回転後のＢＧオブジェクトであるＢＧオブジェクト５（坂道）に置き換えられる。
【００９６】
また、図８の第５行第７列および第８行第２列には固定ブロックであるＢＧオブジェクト２が配置される。
【００９７】
さらに、図８の第７行第２列、第８行第７列および第８列にそれぞれＢＧオブジェクト４すなわち「つらら」が配置される。図６の第１エリアデータではこれらの場所にはＢＧオブジェクト３「とげ」が配置されていたが、図８の第２エリアデータは図６を回転した後のフィールドの配置であるので、回転可能ＢＧオブジェクトであるＢＧオブジェクト３は、回転後のＢＧオブジェクトであるＢＧオブジェクト４に置き換えられる。
【００９８】
図８の第７行第１１列にはＢＧオブジェクト６である「天井」が配置される。図６の第１エリアデータではこの場所にはＢＧオブジェクト５「坂道」が配置されていたが、図８は図６を回転した後のフィールドであるので、回転可能ＢＧオブジェクトであるＢＧオブジェクト５は、回転後のＢＧオブジェクトであるＢＧオブジェクト６に置き換えられる。
【００９９】
図８のエリアデータは、回転後のフィールドを現しているので、第２エリアデータであるが、この第２エリアデータＡＤ２に従ったゲーム画面、すなわち第２フィールド描画イメージＦ２は、たとえば図９に示すようなものとなる。図9のゲーム画像Ｆ２では、図８において第２エリアデータとして「１」が設定されている場所にはＢＧオブジェクト１（壁ブロック）が、第２エリアデータとして「２」が設定されている場所にはＢＧオブジェクト２（固定ブロック）が、第２エリアデータとして「４」が設定されている場所にはＢＧオブジェクト４（つらら）が、第２エリアデータとして「５」が設定されている場所にはＢＧオブジェクト５（坂道）が、そして第１エリアデータとして「６」が設定されている場所にはＢＧオブジェクト６（天井）が、それぞれ表示されることになるが、図８の第２エリアデータＡＤ２は、回転後の第２フィールドの生成に使用されるとともに、当たり判定にも利用される。
【０１００】
ただし、図７のゲーム画像Ｆ１を回転した図９のゲーム画像Ｆ２を表示するためには、専用のハードウェアを用いた回転計算によって、回転後のドットまたはピクセルの位置を求め、そのドット位置に図７の該当するドット表示を行うだけである。ただし、そのような回転描画の手法としては任意の手法が用いられ得る。
【０１０１】
図３に再び戻って、データ記憶領域７２にはフラグ領域７８が形成され、このフラグ領域７８には、エリアフラグ８０が設定される。エリアフラグ８０は、現在描画中のエリア番号を設定するレジスタである。
【０１０２】
図１０はこの実施例の動作を示すメインフローチャートであり、このメインフローチャートは、ゲーム機１２の１フレーム毎、もしくは数フレーム毎に繰り返し実行される、ということに予め留意されたい。
【０１０３】
図１０の最初のステップＳ１では、ＣＰＵコア３４は、初期設定処理を実行する。この初期設定処理は具体的には図１１に示される。図１１のステップＳ２１では、ＣＰＵコア３４は、エリアフラグ８０（図３）に初期値、つまり描画するエリア番号を設定する。続くステップＳ２３において、ＣＰＵコア３４は、そのエリアフラグ８０に設定されたエリア番号に対応するフィールドのエリアデータ（たとえば図６に示すＡＤ１）を図３のフィールドメモリ領域７６に読み込む。そして、ステップＳ２５で、ＣＰＵコア３４は、ＧＰＵ４４に描画指示を送り、フィールドの描画領域に、そのエリアデータに従ってＢＧオブジェクトを描画させる。その結果、たとえば図７に示すゲーム画像Ｆ１が表示される。続くステップＳ２７で、ＣＰＵコア３４は、同様にＧＰＵ４４に描画指示を与え、上述のようにしてステップＳ２５でＢＧオブジェクトを描画した同じゲームフィールドに、プレイヤオブジェクトをそのプレイヤオブジェクト初期位置へ描画させる。したがって、この初期設定処理によって、第１ゲームフィールドＦ１が生成され、図１０の次のステップＳ３にリターンする。
【０１０４】
図１０のステップＳ３では、ＣＰＵコア３４は、Ｉ／Ｆ回路４８から入力される操作スイッチ２２の操作信号を取り込み、ステップＳ５で、その操作信号に従って、第１ゲームフィールドＦ１に表示されているプレイヤオブジェクトを移動または制御する。
【０１０５】
その後、ＣＰＵコア３４は、図１０のステップＳ７において、当たり判定処理を実行する。この当たり判定処理ステップは、具体的には、図１２に詳細に示される。この図１２の最初のステップＳ３１で、ＣＰＵコア３４は、プレイヤオブジェクトの各当たり判定点と接触しているＢＧオブジェクトを判定する。先に図４を参照して説明したように、プレイヤオブジェクトにはたとえば５つの当たり判定点Ａ１-Ａ５が設定されているが、このステップＳ３１では、これらの当たり判定点Ａ１-Ａ５のどれかと接触しているＢＧオブジェクトを検出する。この接触判定すなわち当たり判定は、たとえば図１３に示すように、当たり判定点Ａ１-Ａ５とＢＧオブジェクトとの重なりを監視することによって行う。当たり判定点Ａ１-Ａ５とＢＧオブジェクトとの重なりは、図１３の点線で示すように、ＢＧオブジェクトの形状自体とではなく、ブロック形状のＢＧオブジェクトの描画領域とで判定する。ＢＧオブジェクトには様々な形状のものがあり、それらの形状に応じて重なり判定の部位を設定するとすれば、プログラムが複雑になり、ＣＰＵコア３４の負担が過大になるからである。
【０１０６】
続くステップＳ３３で、ＣＰＵコア３４は、プレイヤオブジェクトの当たり判定点Ａ１-Ａ５とＢＧオブジェクトとの接触方向を判定する。この接触方向は、プレイヤオブジェクトのどの当たり判定点がＢＧオブジェクトと重なったかを検出することによって、判定する。図１４は、プレイヤオブジェクトの当たり判定点Ａ１がＢＧオブジェクトと重なった例を示し、この実施例の場合、ＣＰＵコア３４はプレイヤオブジェクトが、ＢＧオブジェクト４に対して下方向から接触したと判定する。なぜなら、判定点Ａ１は図４からよく分かるように、プレイヤオブジェクトの頭部に相当していて、頭部が接触できるのはＢＧオブジェクトの下面しかないという理由による。この実施例の場合も含めて、表５に接触方向の判定手法が具体的に示される。
【０１０７】
【表５】
2007301020.tif 000007
【０１０８】
そして、次のステップＳ３５では、ＣＰＵコア３４は、ステップＳ３３で判定した接触方向に応じた処理を実行する。図３のオブジェクトデータ領域７４には、先に表１-表４を用いて例示的に説明したように、ＢＧオブジェクト毎に、プレイヤオブジェクトの接触方向によってプレイヤオブジェクトにどのような制御をなすべきかが定義されているので、ＣＰＵコア３４はその定義に従って、プレイヤオブジェクトを制御する。たとえば、図１４の例では、プレイヤオブジェクトはＢＧオブジェクト４に下方向から接触したのであり、表２を参照すれば、この場合、ＣＰＵコア３４はプレイヤオブジェクトにダメージを与える処理を実行することになる。
【０１０９】
このようにして、ステップＳ７でプレイヤオブジェクトとＢＧオブジェクトとの当たり判定が終了すると、次のステップＳ９で、スクロール処理を実行する。このスクロール処理は具体的には図１５に示される。すなわち、スクロール処理では、まず、図１５のステップＳ４１ではＣＰＵコア３４はスクロール指示があったかどうか判断し、“ＹＥＳ”なら、ステップＳ４３で、フィールドの移動先に設定されたＢＧオブジェクトを描画し、“ＮＯ”なら、ステップＳ４５で、現在設定されているＢＧオブジェクトを再描画する。
【０１１０】
図１０の次のステップＳ１１では、先のステップＳ５で移動制御し、ステップＳ７で当たり判定した結果に基づいて、プレイヤオブジェクトを描画する。したがって、たとえば、プレイヤオブジェクトがＢＧオブジェクトに接触したことによってダメージを受けるなどの画像表示がこのステップＳ１１でなされる。
【０１１１】
図１０の次のステップＳ１３では、ＣＰＵコア３４は、回転処理を実行する。そして、その後ステップＳ１５でゲームが終了したかどうか判断し、“ＹＥＳ”なら終了して、“ＮＯ”なら、先のステップＳ３に戻って処理を続行する。
【０１１２】
ステップＳ１３の回転処理ステップは具体的には、図１６に詳細に示される。図１６の最初に、ステップＳ５１で、ＣＰＵコア３４は、回転指示があったかどうか判断する。実施例においてゲームフィールドを回転させるには、たとえば所定のアイテムに接触させる。プレイヤオブジェクトが壁ブロックに下方向より接触することにより壁ブロックへ振動を与えることができ、壁ブロックに隠されているアイテムを出現させることができる。プレイヤオブジェクトがそのアイテムに接触するとその接触に応じて回転指示をＣＰＵコア３４に与えると、回転指示が入力され、ステップＳ５１で“ＹＥＳ”が判断される。
【０１１３】
ただし、回転指示は、これ以外に、プレイヤが操作スイッチ２２を操作することによって入力することもできる。また、プレイヤオブジェクトを所定の位置へ移動させることにより回転指示を与えることもできる。また、プレイヤオブジェクトをアイテムだけではなく、所定のオブジェクトと接触させることにより回転指示を与えることもできる。さらに、プレイヤオブジェクトが所定時間以上継続して第１ゲームフィールドに存在したことを条件として回転指示を与えるようにすることも考えられる。いずれの条件で回転指示を出すかは、ゲームの仕様に依る。
【０１１４】
ステップＳ５１で“ＹＥＳ”が判断されると、ＣＰＵコア３４は、次のステップＳ５３で、エリアフラグに対応するフィールド（回転前フィールド）の描画領域の中心座標を取得する。図１８がフィールド回転の一例を図解しているが、第１エリアデータとあるのが回転前のフィールド（第１フィールド）であり、第２エリアデータとしているのが回転後のフィールド（第２フィールド）である。この図１８の実施例の場合、マップの左上が絶対座標の原点として設定され、その原点からｘ1，ｙ1の座標値が第１フィールドの中心座標として設定される。したがって、ステップＳ５３では、この中心座標ｘ1，ｙ1を取得する。
【０１１５】
続くステップＳ５５で、ＣＰＵコア３４は、上記絶対座標における第１フィールドのプレイヤオブジェクトの座標値（中心座標）を取得する。図１８でエリアフラグ＝１と設定されている第１フィールドでプレイヤオブジェクトの位置（中心座標）をみると、原点からｘ２，ｙ２の座標値で示されている。ステップＳ５５では、たとえばこのようなプレイヤオブジェクトの中心座標の座標値データを取得する。このような中心座標の座標値データは、ビットマップデータから容易に取得できる。
【０１１６】
その後、ステップＳ５７で、ＣＰＵコア３４によってではなく、別途設けたハードウェアの計算回路（たとえば、ＤＳＰ）によって、描画領域の中心座標を中心にして、第１フィールドを指定角度（例えばフレーム単位に回転指示された回転角度）ずつ回転させて描画を行う。ステップＳ５９では、プレイヤオブジェクトをステップＳ５７での指定角度の位置に、表示の向きは回転させずに表示する。プレイヤオブジェクトの表示の向きも回転させると、プレイヤオブジェクトの回転に対する描画もハードウェアの計算回路で行うことができ処理負荷を軽減できるが、回転処理終了後にプレイヤオブジェクトの表示の向きが異なっている状態から急に元の表示の向きへ切り替えると不自然な表示になってしまう為に当該処理を行っている。
【０１１７】
そして、ＣＰＵコア３４がその計算回路から計算終了信号を受けると、次のステップＳ６３において、“ＹＥＳ”が判断される。ＣＰＵコア３４がステップＳ６３で回転終了を検知するまで、ステップＳ５７-Ｓ５９が計算回路によって繰り返し実行されることにより、第２フィールド（回転後のフィールド）に対応する角度に達するまで回転処理を繰り返す。
【０１１８】
なお、図１８の例では、回転前後で対応する第１ゲームフィールドおよび第２ゲームフィールドの中心座標は、他とフィールドメモリ８６（図３）に予め定義されているものとし、また、ゲームフィールドの中心座標からゲームフィールドの左上の座標までのオフセット値は固定的に設定されているものとする。
【０１１９】
また、ゲームフィールドの中心座標からプレイヤキャラクタまでのオフセット値を利用することにより、プレイヤキャラクタのみをゲームフィールド内での表示座標を変更せずに回転処理を行うこともできる。
【０１２０】
回転計算は他の計算方法としては、図１８の場合のように描画領域の中心座標と絶対座標とを利用して計算する方法の他、描画領域の中心座標と原点からのオフセット値とを利用して計算する方法、そして、プレイヤオブジェクトの座標（回転中心座標）を絶対座標で保持し、そこからのオフセット値を利用して計算する方法などがある。ただし、この発明の要部ではないので、これ以上の説明はしない。
【０１２１】
図１６のステップＳ６３で“ＹＥＳ”を判断すると、ＣＰＵコア３４は、次のステップＳ６５で、マップ切り換え処理を実行する。このマップ切り換え処理とは、ステップＳ５７-Ｓ５９での回転計算の終了に伴って、回転後のフィールドでの当たり判定に備えて、マップデータすなわちエリアデータを切り換えるための処理である。
【０１２２】
図１７を参照して、最初のステップＳ７１でＣＰＵコア３４は、そのときのエリアフラグ（エリア番号）を旧エリアフラグとして待避させた後、図３のエリアフラグ８０に新しいエリア番号（回転後のエリア番号）を設定することによって、エリアフラグを更新する（ステップＳ７３）。
【０１２３】
その後、ステップＳ７５で、ＣＰＵコア３４は、図１８のようにして、旧エリアフラグに対応するフィールド（第１フィールド（回転前フィールド））における描画領域の中心座標よりエリアフラグに対応するフィールド（第２フィールド（回転後フィールド））における描画領域の中心座標を数１に従って算出する。
【０１２４】
［数１］
第２フィールドの中心座標＝ｘ＿ｍａｘ-ｘ１、ｙ＿ｍａｘ-ｙ１
ただし、ｘ＿ｍａｘ：マップデータＸ座標最大値、ｙ＿ｍａｘ：マップデータＹ座標最大値である。
【０１２５】
そして、続くステップＳ７７で、ＣＰＵコア３４は、第１フィールドにおけるプレイヤオブジェクトの座標より第２フィールドのプレイヤオブジェクト座標位置を数２に従って算出する。
【０１２６】
［数２］
プレイヤオブジェクトの中心座標＝ｘ＿ｍａｘ-ｘ２、ｙ＿ｍａｘ-ｙ２
ただし、ｘ＿ｍａｘ：マップデータＸ座標最大値、ｙ＿ｍａｘ：マップデータＹ座標最大値である。
【０１２７】
このようなプレイヤオブジェクトの座標位置とは中心座標のことであり、図１８のような絶対座標でも、その他の相対座標でもどちらでもよい。
【０１２８】
そして、続くステップＳ８１で、先に説明した図８に示すような、回転後の第２フィールドのための第２エリアデータＡＤ２を図３のフィールドメモリ領域７６に読み込む。これでマップ切り換えが行なわれたことになり、それ以後回転後のゲームフィールドすなわち第２フィールドを表示するためには、この第２エリアデータを用いる。つまり、ＣＰＵコア３４は、ステップＳ８３およびＳ８５で、ＧＰＵ４４に指令を与え、第２エリアデータに従ってＢＧオブジェクトを描画し、ステップＳ７７で検出した座標位置にプレイヤオブジェクトを描画させる。
【０１２９】
回転後のゲームフィールドでゲームする限り、それ以後、ゲームフィールドは第２エリアデータによって描画（ステップＳ１１）されるとともに、第２エリアデータに従って当たり判定（ステップＳ７）やスクロール処理（ステップＳ９）される。つまり、一旦ゲームフィールドが回転された後は、回転前の第１エリアデータが回転後の第２エリアデータに切り換えられてゲーム処理が実行される。
【０１３０】
なお、上述の実施例では、第１フィールドが時計方向に１８０°回転されて第２フィールドに第２なるように説明したが、この回転角度または回転の程度や方向は適宜決めることができ、たとえば第１フィールドを時計回り、もしくは反時計回りに９０°回転させたものを第２フィールドとするようにしてもよい。
【図面の簡単な説明】
【０１３１】
【図１】図１はこの発明の一実施例のゲームシステムを示す図解図である。
【図２】図２は図１実施例のゲーム装置を詳細に示すブロック図である。
【図３】図３は図２におけるＲＡＭのメモリマップの一例を示す図解図である。
【図４】図４は図１実施例のプレイヤオブジェクトとそれの属性（当たり判定点）を示す図解図である。
【図５】図５は図１実施例における異なる種類のＢＧオブジェクトを例示する図解図である。
【図６】図６は図１実施例における回転前の第１フィールドのための第１エリアデータの一例を示す図解図である。
【図７】図７は図６の第１エリアデータに従った第１フィールド描画イメージの一例を示す図解図である。
【図８】図８は図１実施例における回転後の第２フィールドのための第２エリアデータの一例を示す図解図である。
【図９】図９は図８の第２エリアデータに従った第２フィールド描画イメージの一例を示す図解図である。
【図１０】図１０は図１実施例の動作を示すメインフロー図である。
【図１１】図１０に示す初期設定処理を詳細に示すフロー図である。
【図１２】図１０に示す当たり判定処理を詳細に示すフロー図である。
【図１３】図１２に示す当たり判定の一例を示す図解図である。
【図１４】図１２に示す接触方向判定の一例を示す図解図である。
【図１５】図１０に示すスクロール処理を詳細に示すフロー図である。
【図１６】図１０に示す回転処理を詳細に示すフロー図である。
【図１７】図１６に示すマップ切り換え処理を詳細に示すフロー図である。
【図１８】図１６における回転計算の一例を示す図解図である。
【符号の説明】
【０１３２】
１０  …ゲーム装置
２２  …操作スイッチ
３４  …ＣＰＵコア
４２  …ＲＡＭ
５８  …プログラム記憶領域
７２  …データ記憶領域
７４  …オブジェクトデータ記憶領域
７６  …フィールドメモリ領域
【図１】
2007301020.tif 000008
【図２】
2007301020.tif 000009
【図３】
2007301020.tif 000010
【図４】
2007301020.tif 000011
【図５】
2007301020.tif 000012
【図６】
2007301020.tif 000013
【図７】
2007301020.tif 000014
【図８】
2007301020.tif 000015
【図９】
2007301020.tif 000016
【図１０】
2007301020.tif 000017
【図１１】
2007301020.tif 000018
【図１２】
2007301020.tif 000019
【図１３】
2007301020.tif 000020
【図１４】
2007301020.tif 000021
【図１５】
2007301020.tif 000022
【図１６】
2007301020.tif 000023
【図１７】
2007301020.tif 000024
【図１８】
2007301020.tif 000025