(57)【要約】    【構成】  ゲーム装置１０はＬＣＤ１４を含み、このＬＣＤ１４上にはタッチパネル２４が設けられる。ＬＣＤ１４には、種類の異なるオブジェクトが格子状に並んで配置されるゲーム画面が表示される。プレイヤが所望のオブジェクトをタッチすると、当該オブジェクトの３次元位置が仮想カメラの注視点に設定される。続けて、プレイヤがタッチ位置を移動させると、それに従って仮想カメラ（視点）の位置が変更される。仮想空間では、オブジェクトの種類毎に異なるレイヤーが設けられ、各オブジェクトは、他のレイヤーに配置されたオブジェクトとは重ならない位置に配置される。視点が確定され、種類の異なるオブジェクトが視線やこれに平行な線と交差する複数のオブジェクトが所定の条件を満たすとき、当該オブジェクトは消去される。    【効果】  今までにないパズルゲームを提供することができる。【選択図】  図１
2008113762.tif 000002
【特許請求の範囲】
【請求項１】
表示手段と、操作手段と、記憶手段とを備えたゲーム装置で実行されるゲームプログラムであって、
前記ゲーム装置のコンピュータに、
所定数の属性のうちのいずれか１つを有する複数のオブジェクトを前記記憶手段に記憶されたオブジェクトデータに基づいて３次元空間に配置する、オブジェクト配置ステップ、
前記操作手段の入力に基づいて注視点を設定する、注視点設定ステップ、
前記注視点設定ステップによって注視点が設定された後、前記操作手段の入力に基づいて前記３次元仮想空間内における視点を設定する、視点設定ステップ、
前記注視点設定ステップによって設定された注視点と前記視点設定ステップによって設定された視点とに基づいて前記表示手段にゲーム画像を表示する、ゲーム画像表示ステップ、
前記注視点設定ステップによって設定された注視点と前記視点設定ステップによって設定された視点とに基づいて視線および当該視線に平行な直線を算出する、視線算出ステップ、
前記視線算出ステップによって算出された視線または当該視線に平行な直線と交差する前記複数のオブジェクトの属性が所定の条件を満たすかどうかを判断する、判断ステップ、および
前記判断ステップによって所定の条件を満たすことが判断されたとき、当該所定の条件を満たすオブジェクトを消去する、消去ステップを実行させる、ゲームプログラム。
【請求項２】
前記オブジェクト配置ステップは、所定数の互いに平行な層上に、それぞれの層に固有のオブジェクトを、互いに他の層のオブジェクトと重ならない位置に配置する、請求項１記載のゲームプログラム。
【請求項３】
前記ゲーム画像表示ステップは、少なくとも前記注視点設定ステップによって注視点が設定されるまで、前記所定数の互いに平行な層を垂直方向から俯瞰した画像をゲーム画像として表示する、請求項２記載のゲームプログラム。
【請求項４】
前記それぞれの層に固有のオブジェクトは、前記俯瞰した画像をゲーム画像として表示するときの、最上層において大きさの最も大きい属性であり、最下層において大きさの最も小さい属性である、請求項２または３記載のゲームプログラム。
【請求項５】
前記消去ステップは、隣接する前記層において、前記視線または前記直線と交差するオブジェクトの大きさが、前記視点側から前記注視点側に向かうに従って小さくなり、かつ所定数並んでいるとき、当該オブジェクトを消去する、請求項２ないし４のいずれかに記載のゲームプログラム。
【請求項６】
前記オブジェクト配置ステップは、前記記憶手段に記憶された、前記層に垂直な方向について内部が中空で外縁を有するオブジェクトを前記オブジェクトデータに基づいて配置する、請求項２ないし５のいずれかに従属するゲームプログラム。
【請求項７】
表示手段と、操作手段と、記憶手段とを備えたゲーム装置であって、
所定数の属性のうちのいずれか１つを有する複数のオブジェクトを前記記憶手段に記憶されたオブジェクトデータに基づいて３次元空間に配置する、オブジェクト配置手段、
前記操作手段の入力に基づいて注視点を設定する、注視点設定手段、
前記注視点設定手段によって注視点が設定された後、前記操作手段の入力に基づいて前記３次元仮想空間内における視点を設定する、視点設定手段、
前記注視点設定手段によって設定された注視点と前記視点設定手段によって設定された視点とに基づいて前記表示手段にゲーム画像を表示する、ゲーム画像表示手段、
前記注視点設定手段によって設定された注視点と前記視点設定手段によって設定された視点とに基づいて視線および当該視線に平行な直線を算出する、視線算出手段、
前記視線算出手段によって算出された視線または当該視線に平行な直線と交差する前記複数のオブジェクトの属性が所定の条件を満たすかどうかを判断する、判断手段、および
前記判断手段によって所定の条件を満たすことが判断されたとき、当該所定の条件を満たすオブジェクトを消去する、消去手段を備える、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はゲームプログラムおよびゲーム装置に関し、特にたとえば、パズルゲームをプレイするための、ゲームプログラムおよびゲーム装置に関する。
【背景技術】
【０００２】
一般的に落ちものゲームとして良く知られているパズルゲームでは、複数の隣り合うオブジェクトの属性が所定条件を満たしたとき、これらのオブジェクトが消去される。たとえば、特許文献１に開示される３次元パズルゲーム装置では、円筒状のゲームフィールド上に種類の異なる複数のパネルが配置され、プレイヤは、円筒状の所望の面を表示させながら、隣り合うパネルを入れ替えて、ゲームをプレイする。そして、同一種類のパネルを縦または横方向に所定数以上揃えると、種類の揃ったパネルが消去される。
【０００３】
また、３次元仮想空間で展開されるゲームを、プレイヤの操作に従って、プレイヤが当該３次元仮想空間のどの視点から見るかを定めて、２次元のゲーム画面として表示することは既に周知となっている。たとえば、特許文献２によれば、遊戯者はゲーム装置本体に対するコントロールパッドを操作して、仮想空間内に配置されたプレイヤキャラクタを所望の方向に向けて移動させる。また、プレイヤキャラクタを停止させると、仮想カメラの視点が遊戯者の操作に従って移動可能となる。その仮想カメラの視点の挙動を改良した技術が開示される。
【特許文献１】特開２００１−３８０４７
【特許文献２】特開平１１−１３７８４２
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に開示されるような落ちものゲームは、既にアイデアが出尽くした感があり、新しい落ちものゲームが登場しても、プレイヤにとっては新鮮味に欠ける状況になっていると言える。また、特許文献２の技術では、画面中に見えていないオブジェクトを見つけるなど、専らゲームの操作のために仮想カメラの視点を移動させるのであって、仮想カメラの視点の移動そのものをゲームの操作として楽しむものではない。
【０００５】
また、これらの背景技術を組み合わせたとしても、たとえば、落ちものゲームにおいて、ゲーム画面を見易くするか、見えていないオブジェクトを見えるようにするために視点を移動させるに留まり、新しいゲームを提供することはできない。
【０００６】
それゆえに、この発明の主たる目的は、新規な、ゲームプログラムおよびゲーム装置を提供することである。
【０００７】
また、この発明の他の目的は、新規なパズルゲームをプレイできる、ゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００９】
請求項１の発明は、表示手段と、操作手段と、記憶手段とを備えたゲーム装置で実行されるゲームプログラムであって、ゲーム装置のコンピュータに、オブジェクト配置ステップ、注視点設定ステップ、視点設定ステップ、ゲーム画像表示ステップ、視線算出ステップ、判断ステップ、および消去ステップを実行させる。オブジェクト配置ステップは、所定数の属性のうちのいずれか１つを有する複数のオブジェクトを記憶手段に記憶されたオブジェクトデータに基づいて３次元空間に配置する。注視点設定ステップは、操作手段の入力に基づいて注視点を設定する。視点設定ステップは、注視点設定ステップによって注視点が設定された後、操作手段の入力に基づいて３次元仮想空間内における視点を設定する。ゲーム画像表示ステップは、注視点設定ステップによって設定された注視点と視点設定ステップによって設定された視点とに基づいて表示手段にゲーム画像を表示する。視線算出ステップは、注視点設定ステップによって設定された注視点と視点設定ステップによって設定された視点とに基づいて視線および当該視線に平行な直線を算出する。判断ステップは、視線算出ステップによって算出された視線または当該視線に平行な直線と交差する複数のオブジェクトの属性が所定の条件を満たすかどうかを判断する。そして、消去ステップは、判断ステップによって所定の条件を満たすことが判断されたとき、当該所定の条件を満たすオブジェクトを消去する。
【００１０】
請求項１の発明では、ゲーム装置（１０）は、表示手段（１４）と、操作手段（２２，２４）と、記憶手段（７２）とを備える。ゲームプログラムは、ゲーム装置のコンピュータ（３４を含む。）に、オブジェクト配置ステップ（Ｓ１）、注視点設定ステップ（Ｓ１１）、視点設定ステップ（Ｓ１３）、ゲーム画像表示ステップ（Ｓ３，Ｓ１５）、視線算出ステップ（Ｓ１９）、判断ステップ（Ｓ５５）、および消去ステップ（Ｓ５７）を実行させる。オブジェクト配置ステップは、所定数の属性のうちのいずれか１つを有する複数のオブジェクトを記憶手段に記憶されたオブジェクトデータ（７２ｄ，７３０〜７３ｎ）に基づいて３次元空間（ゲーム空間）に配置する。注視点設定ステップは、操作手段の入力に基づいて注視点を設定する。たとえば、プレイヤが指示したオブジェクトの位置座標が注視点に設定される。視点設定ステップは、注視点設定ステップによって注視点が設定された後、操作手段の入力に基づいて３次元仮想空間内における視点を設定する。つまり、３次元仮想空間における仮想カメラの位置が移動（設定）される。ゲーム画像表示ステップは、注視点設定ステップによって設定された注視点と視点設定ステップによって設定された視点とに基づいて表示手段にゲーム画像を表示する。ここでは、仮想カメラ（視点）から注視点の方向を見た場合の３次元のゲーム画像が仮想スクリーンに投影され、したがって、２次元のゲーム画像が表示手段に表示される。視線算出ステップは、注視点設定ステップによって設定された注視点と視点設定ステップによって設定された視点とに基づいて視線（Ｖ）および当該視線に平行な直線（Ｌ）を算出する。判断ステップは、視線算出ステップによって算出された視線または当該視線に平行な直線と交差する複数のオブジェクトの属性が所定の条件を満たすかどうかを判断する。消去ステップは、判断ステップによって所定の条件を満たすことが判断されたとき（Ｓ５５で“ＹＥＳ”）、当該所定の条件を満たすオブジェクトを消去する。
【００１１】
請求項１の発明によれば、視点および視線をプレイヤが設定することにより、視線およびそれに平行な直線と交差する複数のオブジェクトが所定の条件を満たすとき、当該オブジェクトを消去するので、オブジェクトの配列と視線またはこれに平行な直線との関係を解くような、今までにないパズルゲームを提供することができる。
【００１２】
請求項２の発明は請求項１に従属し、オブジェクト配置ステップは、所定数の互いに平行な層上に、それぞれの層に固有のオブジェクトを、互いに他の層のオブジェクトと重ならない位置に配置する。
【００１３】
請求項２の発明では、オブジェクト配置ステップは、所定数の互いに３次元空間における平行な層上に、それぞれの層に固有のオブジェクトを配置する。このとき、各オブジェクトは、互いに他の層のオブジェクトと重ならない位置に配置する。たとえば、各層は、同じ分割の仕方により所定数の領域に分割されており、同じ位置に対応する他の層における描画領域に複数のオブジェクトが配置されないようにするのである。
【００１４】
請求項２の発明によれば、オブジェクトの３次元空間における配置に規則性を持たせるので、プレイヤがオブジェクトの配置を想像するときの指標を与えることができる。
【００１５】
請求項３の発明は請求項２に従属し、ゲーム画像表示ステップは、少なくとも注視点設定ステップによって注視点が設定されるまで、所定数の互いに平行な層を垂直方向から俯瞰した画像をゲーム画像として表示する。
【００１６】
請求項３の発明では、少なくとも注視点設定ステップによって３次元空間における注視点が設定されるまでは、たとえば、デフォルト設定の位置および方向に視点は設定される。このとき、所定数の互いに平行な層を垂直方向から俯瞰した画像がゲーム画像として表示手段に表示される。つまり、視点の設定を行う前では、各オブジェクトが格子状に配列された状態の２次元のゲーム画像が表示される。
【００１７】
請求項３の発明によれば、視点の設定を行う前では、２次元のゲーム画像が表示されるため、プレイヤは、オブジェクトの２次元の配列を見て、その３次元仮想空間における配列を想像することができる。
【００１８】
請求項４の発明は請求項２または３に従属し、それぞれの層に固有のオブジェクトは、３次元空間を俯瞰した画像をゲーム画像として表示するときの、最上層において大きさの最も大きい属性であり、最下層において大きさの最も小さい属性である。
【００１９】
請求項４の発明では、それぞれの層に固有のオブジェクトは、大きさの異なる属性である。大きさのみが異なる場合や相似形である場合が含まれる。３次元空間を俯瞰した画像をゲーム画像として表示するときの、つまり視点側から注視点側を見るときの、最上層においてオブジェクトは大きさが最も大きい属性であり、最下層においてオブジェクトは大きさが最も小さい属性である。
【００２０】
請求項４の発明によれば、３次元仮想空間における配置に更なる規則性を持たせるので、３次元空間におけるオブジェクトの配列を把握し易くすることができる。
【００２１】
請求項５の発明は請求項２ないし４のいずれかに従属し、消去ステップは、隣接する層において、視線または直線と交差するオブジェクトの大きさが、視点側から注視点側に向かうに従って小さくなり、かつ所定数並んでいるとき、当該オブジェクトを消去する。
【００２２】
請求項５の発明では、隣接する層において、視線または直線と交差するオブジェクトの大きさが、視点側から注視点側に向かうに従って小さくなり、かつ所定数並んでいるとき、つまり複数のオブジェクトが所定の順番で並ぶとき、所定の条件を満たすことが判断される。そして、消去ステップは、所定の条件を満たすオブジェクトを消去する。
【００２３】
請求項５の発明によれば、オブジェクトの配列が、３次元空間において視点側から注視点側に向かうに従ってオブジェクトの大きさが小さくなるような場合に、当該オブジェクトを消去するので、プレイヤに３次元空間におけるオブジェクトの配列を想像させることができる。新しいゲームの面白さを提供することができる。
【００２４】
請求項６の発明は請求項２ないし５のいずれかに従属し、オブジェクト配置ステップは、記憶手段に記憶された、層に垂直な方向について内部が中空で外縁を有するオブジェクトをオブジェクトデータに基づいて配置する。
【００２５】
請求項６の発明では、オブジェクトは、３次元空間においてオブジェクトが配置される各層に垂直な方向について内部が中空で外縁を有するオブジェクトである。したがって、各層で大きさの異なる複数のオブジェクトが視点側から注視点側に向かう順番で並ぶとき、当該複数のオブジェクトによってトンネルが形成されるようなゲーム画像が表示される。
【００２６】
請求項６の発明によれば、プレイヤは複数のオブジェクトによってトンネルが形成されるように、視点を移動させるので、プレイヤにパズルが解けたときの達成感を味わわせることができる。
【００２７】
請求項７の発明は、表示手段と、操作手段と、記憶手段とを備えたゲーム装置であって、オブジェクト配置手段、注視点設定手段、視点設定手段、ゲーム画像表示手段、視線算出手段、判断手段、および消去手段を備える。オブジェクト配置手段は、所定数の属性のうちのいずれか１つを有する複数のオブジェクトを記憶手段に記憶されたオブジェクトデータに基づいて３次元空間に配置する。注視点設定手段は、操作手段の入力に基づいて注視点を設定する。視点設定手段は、注視点設定手段によって注視点が設定された後、操作手段の入力に基づいて３次元仮想空間内における視点を設定する。ゲーム画像表示手段は、注視点設定手段によって設定された注視点と視点設定手段によって設定された視点とに基づいて表示手段にゲーム画像を表示する。視線算出手段は、注視点設定手段によって設定された注視点と視点設定手段によって設定された視点とに基づいて視線および当該視線に平行な直線を算出する。判断手段は、視線算出手段によって算出された視線または当該視線に平行な直線と交差する複数のオブジェクトの属性が所定の条件を満たすかどうかを判断する。そして、消去手段は、判断手段によって所定の条件を満たすことが判断されたとき、当該所定の条件を満たすオブジェクトを消去する。
【００２８】
請求項７の発明においても、請求項１の発明と同様に、今までにないパズルゲームを提供することができる。
【発明の効果】
【００２９】
この発明によれば、３次元仮想空間におけるオブジェクトの配置をプレイヤに想像させ、その視線やそれに平行な直線との関係を解くことにより、ゲームを進行させるような新しいパズルゲームをプレイすることができる。
【００３０】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００３１】
図１を参照して、この発明の実施例であるゲーム装置１０は、第１の液晶表示器（ＬＣＤ）１２および第２のＬＣＤ１４を含む。ＬＣＤ１２およびＬＣＤ１４は、所定の配置位置となるようにハウジング1６に収納される。この実施例では、ハウジング１６は、上側ハウジング１６ａと下側ハウジング１６ｂとによって構成され、ＬＣＤ１２は上側ハウジング１６ａに収納され、ＬＣＤ１４は下側ハウジング１６ｂに収納される。したがって、ＬＣＤ１２とＬＣＤ１４とは縦（上下）に並ぶように近接して配置される。
【００３２】
なお、この実施例では、表示器としてＬＣＤを用いるようにしてあるが、ＬＣＤに代えて、ＥＬ(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【００３３】
図１からも分かるように、上側ハウジング１６ａは、ＬＣＤ１２の平面形状よりも少し大きな平面形状を有し、一方主面からＬＣＤ１２の表示面を露出するように開口部が形成される。一方、下側ハウジング１６ｂは、その平面形状が上側ハウジング１６ａよりも横長に選ばれ、横方向の略中央部にＬＣＤ１４の表示面を露出するように開口部が形成される。下側ハウジング１６ｂのＬＣＤ１４の左方には電源スイッチ１８が設けられる。
【００３４】
また、上側ハウジング１６ａには、ＬＣＤ１２を挟んで左右に、スピーカ３６ａおよび３６ｂ（図２）のための音抜き孔２０ａおよび２０ｂが形成される。そして、下側ハウジング１６ｂには、マイク（図示せず）のためのマイク孔２０ｃが形成されるとともに、操作スイッチ２２（２２ａ，２２ｂ，２２ｃ，２２ｄ，２２ｅ，２２Ｌおよび２２Ｒ）が設けられる。
【００３５】
また、上側ハウジング１６ａと下側ハウジング１６ｂとは、上側ハウジング１６ａの下辺（下端）と下側ハウジング１６ｂの上辺（上端）の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、ＬＣＤ１２の表示面とＬＣＤ１４の表示面とが対面するように、上側ハウジング１６ａを回動させて折りたたんでおけば、ＬＣＤ１２の表示面およびＬＣＤ１４の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング１６ａと下側ハウジング１６ｂとは、回動可能に連結せずに、それらを一体的（固定的）に設けたハウジング１６を形成するようにしてもよい。
【００３６】
操作スイッチ２２は、方向指示スイッチ（十字スイッチ）２２ａ，スタートスイッチ２２ｂ、セレクトスイッチ２２ｃ、動作スイッチ（Ａボタン）２２ｄ、動作スイッチ（Ｂボタン）２２ｅ、動作スイッチ（Ｘボタン）２２ｆ、動作スイッチ（Ｙボタン）２２ｇ、動作スイッチ（Ｌボタン）２２Ｌおよび動作スイッチ（Ｒボタン）２２Ｒを含む。スイッチ２２ａは、下側ハウジング１６ｂの一方主面であり、ＬＣＤ１４の左側に配置される。その他のスイッチ２２ｂ−２２ｇは、下側ハウジング１６ｂの一方主面であり、ＬＣＤ１４の右側に配置される。さらに、スイッチ２２Ｌおよびスイッチ２２Ｒは、それぞれ、上側ハウジング１６ａとの連結部を挟む下側ハウジング１６ｂの上側面の左右角部に配置される。
【００３７】
方向指示スイッチ２２ａは、ディジタルジョイスティックとして機能し、４つの押圧部の１つを操作することによって、ユーザないしプレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。また、各押圧部には、特定の役割を割り当てることができ、４つの押圧部の１つを操作することによって、割り当てられた役割を指示（指定）することができる。
【００３８】
スタートスイッチ２２ｂは、プッシュボタンで構成され、ゲームを開始（再開）したり、一時停止(Pause)したりする等に用いられる。また、セレクトスイッチ２２ｃは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【００３９】
動作スイッチ２２ｄすなわちＡボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(ＲＰＧ)やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ２２ｅすなわちＢボタンは、プッシュボタンで構成され、セレクトスイッチ２２ｃで選択したゲームモードの変更やＡボタン２２ｄで決定したアクションの取り消し等のために用いられる。
【００４０】
動作スイッチ２２ｆすなわちＸボタン、および動作スイッチ２２ｇすなわちＹボタンは、プッシュボタンで構成され、Ａボタン２２ｄとＢボタン２２ｅだけでは、ゲーム進行ができないときに、補助的な操作に用いられる。ただし、Ｘボタン２２ｆおよびＹボタン２２ｇは、Ａボタン２２ｄおよびＢボタン２２ｅと同様の操作に用いることも可能である。もちろん、ゲームプレイにおいてＸボタン２２ｆとＹボタン２２ｇとを必ずしも使用しなくてよい。
【００４１】
動作スイッチ２２Ｌ（左押しボタン）および動作スイッチ２２Ｒ（右押しボタン）は、プッシュボタンで構成され、左押しボタン（Ｌボタン）２２Ｌおよび右押しボタン（Ｒボタン）２２Ｒは、Ａボタン２２ｄおよびＢボタン２２ｅと同様の操作に用いることができ、また、Ａボタン２２ｄおよびＢボタン２２ｅの補助的な操作に用いることができる。さらに、Ｌボタン２２ＬおよびＲボタン２２Ｒは、方向スイッチ２２ａ、Ａボタン２２ｄ，Ｂボタン２２ｅ，Ｘボタン２２ｆ，Ｙボタン２２ｇに割り当てられた役割を、他の役割に変更することができる。この実施例では、Ｌボタン２２Ｌを押すと、方向スイッチ２２ａに割り当てられたコードが他のコードに変更される。
【００４２】
また、ＬＣＤ１４の上面には、タッチパネル２４が装着される。タッチパネル２４としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル２４は、その上面をスティック２６ないしはペン（スタイラスペン）或いは指（以下、これらを「スティック２６等」という場合がある。）で、押圧したり、撫でたり、触れたりすることにより操作（タッチ入力）すると、スティック２６等の操作位置の座標を検出して、検出した座標（検出座標）に対応する座標データを出力する。
【００４３】
なお、この実施例では、ＬＣＤ１４（ＬＣＤ１２も同じ、または略同じ。）の表示面の解像度は２５６ｄｏｔ×１９２ｄｏｔであり、タッチパネル２４の検出精度も表示画面に対応して２５６ｄｏｔ×１９２ｄｏｔとしてあるが、タッチパネル２４の検出精度は表示画面の解像度よりも低くてもよく、高くてもよい。
【００４４】
ＬＣＤ１２およびＬＣＤ１４には異なるゲーム画面が表示されてもよい。たとえば、レースゲームでは一方のＬＣＤに運転席からの視点による画面を表示し、他方のＬＣＤにレース（コース）全体の画面を表示することができる。また、ＲＰＧでは、一方のＬＣＤにマップやプレイヤキャラクタ等のキャラクタを表示し、他方のＬＣＤにプレイヤキャラクタが所有するアイテムを表示することができる。さらに、一方のＬＣＤ（この実施例では、ＬＣＤ１４）にゲームの操作画面（ゲーム画面）を表示し、他方のＬＣＤ（この実施例では、ＬＣＤ１２）に当該ゲームに関する情報（得点やレベルなど）を含む他のゲーム画面を表示することができる。さらには、２つのＬＣＤ１２およびＬＣＤ１４を合わせて１つの画面として用いることにより、プレイヤキャラクタが倒さなければならない巨大な怪物（敵キャラクタ）を表示することもできる。
【００４５】
したがって、プレイヤはスティック２６等でタッチパネル２４を操作することにより、ＬＣＤ１４の画面に表示されるプレイヤキャラクタ、敵キャラクタ、アイテムキャラクタ、操作オブジェクトなどの画像を指示（操作）したり、コマンドを選択（入力）したりすることができる。また、３次元ゲーム空間に設けられる仮想カメラ（視点）の方向（視線の向き）を変化させたり、ゲーム画面（マップ）のスクロール(徐々に移動表示)方向を指示したりすることもできる。
【００４６】
なお、ゲームの種類によっては、タッチパネル２４を用いることにより、その他の入力指示も可能である。たとえば、座標入力指示を入力したり、ＬＣＤ１４において文字，数字，記号等を手書き入力したりすることができる。
【００４７】
このように、ゲーム装置１０は、２画面分の表示部となるＬＣＤ１２およびＬＣＤ１４を有し、いずれか一方（この実施例では、ＬＣＤ１４）の上面にタッチパネル２４が設けられるので、２画面（１２，１４）と２系統の操作部（２２，２４）とを有する構成になっている。
【００４８】
また、この実施例では、スティック２６は、たとえば下側ハウジング１６ｂに設けられる収納部（図１では点線で示す）に収納することができ、必要に応じて取り出される。ただし、スティック２６を設けない場合には、その収納部も設ける必要はない。
【００４９】
さらに、ゲーム装置１０はメモリカード（またはカートリッジ）２８を含み、このメモリカード２８は着脱自在であり、下側ハウジング１６ｂの裏面ないしは下端（底面）に設けられる挿入部３０（図１では点線で示す）に挿入される。図１では省略するが、挿入部３０の奥部には、メモリカード２８の挿入方向先端部に設けられるコネクタ（図示せず）と接合するためのコネクタ３２（図２参照）が設けられており、したがって、メモリカード２８が挿入部３０に挿入されると、コネクタ同士が接合され、ゲーム装置１０のＣＰＵコア３４（図２参照）がメモリカード２８にアクセス可能となる。
【００５０】
なお、図１では表現できないが、上側ハウジング１６ａの音抜き孔２０ａおよび２０ｂと対応する位置であり、この上側ハウジング１６ａの内部にはスピーカ３６ａおよび３６ｂ（図２参照）が設けられる。
【００５１】
また、図１では省略するが、たとえば、下側ハウジング１６ｂの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング１６ｂの底面側には、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【００５２】
図２はゲーム装置１０の電気的な構成を示すブロック図である。図２を参照して、ゲーム装置１０は電子回路基板３８を含み、この電子回路基板３８には上述のＣＰＵコア３４等の回路コンポーネントが実装される。ＣＰＵコア３４は、バス４０を介して前述のコネクタ３２に接続されるととともに、ＲＡＭ４２、第１のグラフィック処理ユニット（ＧＰＵ）４４、第２のＧＰＵ４６、入出カインターフエース回路（以下、「Ｉ／Ｆ回路」という。）４８およびＬＣＤコントローラ５０が接続される。
【００５３】
コネクタ３２には、上述したように、メモリカード２８が着脱自在に接続される。メモリカード２８は、ＲＯＭ２８ａおよびＲＡＭ２８ｂを含み、図示は省略するが、ＲＯＭ２８ａおよびＲＡＭ２８ｂは、互いにバスで接続され、さらに、コネクタ３２と接合されるコネクタ（図示せず）に接続される。したがって、上述したように、ＣＰＵコア３４は、ＲＯＭ２８ａおよびＲＡＭ２８ｂにアクセスすることができるのである。
【００５４】
ＲＯＭ２８ａは、ゲーム装置１０で実行すべきゲームのためのゲームプログラム、画像データ（文字やオブジェクトの画像、背景画像、アイテム画像、アイコン（ボタン）画像、メッセージ画像など）およびゲームに必要な音（音楽）のデータ（音データ）等を予め記憶する。ＲＡＭ（バックアップＲＡＭ）２８ｂは、そのゲームの途中データやゲームの結果データなどを記憶（セーブ）する。
【００５５】
ＲＡＭ４２は、バッファメモリないしはワーキングメモリとして使用される。つまり、ＣＰＵコア３４は、メモリカード２８のＲＯＭ２８ａに記憶されたプログラム、画像データおよび音データ等をＲＡＭ４２にロードし、ロードしたプログラムを実行する。また、ＣＰＵコア３４は、ゲームの進行に応じて一時的に発生するデータ（ゲームデータやフラグデータ）をＲＡＭ４２に記憶しつつゲーム処理を実行する。
【００５６】
なお、ゲームプログラム、画像データおよび音データ等は、ＲＯＭ２８ａから一度に全部、または部分的かつ順次的に読み出され、ＲＡＭ４２に記憶（ロード）される。
【００５７】
ただし、メモリカード２８のＲＯＭ２８ａには、ゲーム以外の他のアプリケーションについてのプログラムおよび当該アプリケーションの実行に必要な画像データが記憶される。また、必要に応じて、音（音楽）データが記憶されてもよい。かかる場合には、ゲーム装置１０では、当該アプリケーションが実行される。
【００５８】
ＧＰＵ４４およびＧＰＵ４６は、それぞれ、描画手段の一部を形成し、たとえばシングルチップＡＳＩＣで構成され、ＣＰＵコア３４からのグラフィックスコマンド（作画命令）を受け、そのグラフィックスコマンドに従って画像データを生成する。ただし、ＣＰＵコア３４は、グラフィックスコマンドに加えて、画像データの生成に必要な画像生成プログラム（ゲームプログラムに含まれる。）をＧＰＵ４４およびＧＰＵ４６のそれぞれに与える。
【００５９】
また、ＧＰＵ４４には、第１のビデオＲＡＭ（以下、「ＶＲＡＭ」という。）５２が接続され、ＧＰＵ４６には、第２のＶＲＡＭ５４が接続される。ＧＰＵ４４およびＧＰＵ４６が作画コマンドを実行するにあたって必要なデータ（画像データ：ポリゴンやテクスチャ等のデータ）は、ＧＰＵ４４およびＧＰＵ４６が、それぞれ、第１のＶＲＡＭ５２および第２のＶＲＡＭ５４にアクセスして取得する。
【００６０】
なお、ＣＰＵコア３４は、描画に必要な画像データをＧＰＵ４４およびＧＰＵ４６を介して第１のＶＲＡＭ５２および第２のＶＲＡＭ５４に書き込む。ＧＰＵ４４はＶＲＡＭ５２にアクセスして描画のための画像データを作成し、ＧＰＵ４６はＶＲＡＭ５４にアクセスして描画のための画像データを作成する。
【００６１】
ＶＲＡＭ５２およびＶＲＡＭ５４は、ＬＣＤコントローラ５０に接続される。ＬＣＤコントローラ５０はレジスタ５６を含み、レジスタ５６はたとえば１ビットで構成され、ＣＰＵコア３４の指示によって「０」または「１」の値（データ値）を記憶する。ＬＣＤコントローラ５０は、レジスタ５６のデータ値が「０」である場合には、ＧＰＵ４４によって作成された画像データをＬＣＤ１２に出力し、ＧＰＵ４６によって作成された画像データをＬＣＤ１４に出力する。また、ＬＣＤコントローラ５０は、レジスタ５６のデータ値が「１」である場合には、ＧＰＵ４４によって作成された画像データをＬＣＤ１４に出力し、ＧＰＵ４６によって作成された画像データをＬＣＤ１２に出力する。
【００６２】
なお、ＬＣＤコントローラ５０は、ＶＲＡＭ５２およびＶＲＡＭ５４から直接画像データを読み出したり、ＧＰＵ４４およびＧＰＵ４６を介してＶＲＡＭ５２およびＶＲＡＭ５４から画像データを読み出したりする。
【００６３】
Ｉ／Ｆ回路４８には、操作スイッチ２２，タッチパネル２４およびスピーカ３６ａ，３６ｂが接続される。ここで、操作スイッチ２２は、上述したスイッチ２２ａ，２２ｂ，２２ｃ，２２ｄ，２２ｅ，２２ｇ，２２Ｌおよび２２Ｒであり、操作スイッチ２２が操作されると、対応する操作信号（操作データ）がＩ／Ｆ回路４８を介してＣＰＵコア３４に入力される。また、タッチパネル２４からの座標データがＩ／Ｆ回路４８を介してＣＰＵコア３４に入力される。さらに、ＣＰＵコア３４は、ゲーム音楽（ＢＧＭ）、効果音またはゲームキャラクタの音声（擬制音）などのゲームに必要な音データをＲＡＭ４２から読み出し、Ｉ／Ｆ回路４８を介してスピーカ３６ａ，３６ｂから出力する。
【００６４】
図３は、図１および図２に示すゲーム装置１０を用いて、この実施例の仮想ゲーム（パズルゲーム）をプレイする場合に、ＬＣＤ１４に表示されるゲーム画面１００の一例を示す。このゲーム画面１００は、ゲームの開始時または画面更新時に表示される初期画面である。初期画面１００には、種類（属性）の異なる複数のオブジェクトが格子状に隙間無く並んで表示される。具体的には、大リングオブジェクト１０２、中リングオブジェクト１０４および小リングオブジェクト１０６が、不規則（ランダム）に、それらの中心が縦方向および横方向のそれぞれで一直線上に並ぶように、表示される。この実施例では、大リングオブジェクト１０２、中リングオブジェクト１０４および小リングオブジェクト１０６は、それぞれ、中空で外縁を有するリング状のオブジェクトである。つまり、大リングオブジェクト１０２、中リングオブジェクト１０４および小リングオブジェクト１０６は、相似形である。また、この実施例では、オブジェクトの属性は、リングの種類（大リングオブジェクト１０２，中リングオブジェクト１０４，小リングオブジェクト１０６の別、または、大きさ（半径））、描画（配置）されるレイヤー（層）の種類（後述する、最上層２００ａ，中間層２００ｂ，最下層２００ｃ）および層における描画領域の番号（インデックス番号）を意味する。
【００６５】
図４（Ａ），（Ｂ），（Ｃ）に示すように、大リングオブジェクト１０２は最上層２００ａに配置され、中リングオブジェクト１０４は中間層２００ｂに配置され、小リングオブジェクト１０６は最下層２００ｃに配置される。各層は、同じ大きさ（面積）を有し、互いに平行であり、各層の基準点（たとえば、層の中心点や左上頂点）のワールド座標（３次元のゲーム空間の座標）のＸ座標およびＹ座標が一致するように配置される。ここで、図４（Ａ）〜図４（Ｃ）に示すように、各層の横方向がワールド座標のＸ軸方向であり、各層の縦方向がワールド座標のＹ軸方向であり、そして、ワールド座標のＸ軸およびＹ軸に垂直な方向がワールド座標のＺ軸に相当する。また、図４（Ａ）〜図４（Ｃ）に示すように、右方向がワールド座標のＸ軸のプラス方向であり、上方向がワールド座標のＹ軸のプラス方向であり、そして、図面（紙面）に対して垂直上方向がワールド座標のＺ軸のプラス方向である。ただし、最上層２００ａの配置されるワールド座標のＺ座標が最大であり、最下層２００ｃの配置されるワールド座標のＺ座標が最小であり、中間層２００ｂはそれらの間に配置される（図６参照）。
【００６６】
また、図４（Ａ）〜図４（Ｃ）を参照して分かるように、各層では、他の層に配置されたオブジェクト（１０２，１０４，１０６）と重ならないように、各オブジェクト（１０２，１０４，１０６）が配置される。つまり、ＸＹ平面において、同じ位置（Ｘ座標およびＹ座標）に複数のオブジェクト（１０２，１０４，１０６）が配置されることはない。一方で、ＸＹ平面に着目したとき、必ずいずれかの層にオブジェクトが配置される。具体的には、図５に示すように、各層には、複数の正方形の描画領域（４×５）が設定されており、異なる層で同じ位置（インデックス番号）の描画領域に、複数のオブジェクト（１０２，１０４，１０６）が配置されることはない。たとえば、最上層２００ａの描画領域［１］に大リングオブジェクト１０２が配置されている場合には、中間層２００ｂおよび最下層２００ｃの描画領域［１］には、中リングオブジェクト１０４および小リングオブジェクト１０６は配置されない。同様に、中間層２００ｂの描画領域［２］に中リングオブジェクト１０４が配置されている場合には、最上層２００ａおよび最下層２００ｃの描画領域［２］には、大リングオブジェクト１０２および小リングオブジェクト１０６は配置されない。さらに、最下層２００ｃの描画領域［４］に小リングオブジェクト１０６が配置されている場合には、最上層２００ａおよび中間層２００ｂの描画領域［４］には、大リングオブジェクト１０２および中リングオブジェクト１０４は配置されない。他の描画領域についても同様である。また、必ずいずれかの層で描画領域にオブジェクトが配置されるので、俯瞰して見たときに、隙間無くオブジェクトが配置されているように見える。
【００６７】
また、図示は省略するが、オブジェクト（１０２，１０４，１０６）は、各層の描画領域の中心座標に、当該オブジェクト（１０２，１０４，１０６）のローカル座標(オブジェクトの形状を定義するための、オブジェクト固有の座標)の中心座標を置くように、配置される。
【００６８】
なお、図５においては、各描画領域にインデックス番号を付して示してあるが、これに限定される必要はない。異なる層で同じ位置の描画領域に同じインデックス番号が付されていれば、層内におけるインデックス番号の並び順はランダムでも構わない。
【００６９】
図示は省略するが、ゲーム１００が表示（更新）された当初では、仮想カメラ（視点）２１０（図６参照）は、最上層２００ａ側に配置され、その視線は各層（２００ａ，２００ｂ，２００ｃ）を正面から見るように、各層（２００ａ，２００ｂ，２００ｃ）の中心を通りＺ軸に平行な直線上に設定される。つまり、図３に示す初期画面１００が表示されるとき、仮想カメラ２１０の位置（視点）のＸ座標およびＹ座標は、各層の中心位置のＸ座標およびＹ座標と一致し、仮想カメラ２１０の注視点のＸ座標およびＹ座標も、各層の中心位置のＸ座標およびＹ座標と一致する。したがって、各層（２００ａ，２００ｂ，２００ｃ）を俯瞰的に見るように、仮想カメラ２１０が設定される。このため、図３に示したような初期画面１００が表示されるのである。以下、視点変更により、斜めから層を見た場合のゲーム画面１００（３次元視点のゲーム画面１００）と区別するために、図３に示すようなゲーム画面１００を「俯瞰視点のゲーム画面１００」ということがある。ただし、俯瞰視点のゲーム画面１００を表示する場合の仮想カメラ２１０の位置（初期位置）および向き（注視点）は予め設定されている。
【００７０】
たとえば、図６（Ａ）に示すように、プレイヤがスティック２６を用いて所望のオブジェクト（１０２，１０４，１０６）をタッチ（指示）すると、当該オブジェクト（１０２，１０４，１０６）が注視点として設定される。厳密に言うと、プレイヤが指示したオブジェクト（１０２，１０４，１０６）のワールド座標系における位置座標（中心座標）が、仮想カメラ２１０の注視点として設定されるのである。この実施例では、小リングオブジェクト１０６をタッチすると、注視点が設定される場合についてのみ説明するが、他のオブジェクト（１０２，１０４）についても同様である。続いて、図６（Ｂ）に示すように、プレイヤがスティック２６をスライドさせると、そのスライド操作に従って仮想カメラ２１０の位置が移動される。つまり、視点が移動される。ただし、仮想カメラ２１０の注視点は、プレイヤが先に指示した小リングオブジェクト１０６の位置座標に固定されている。また、図示は省略するが、仮想カメラ２１０の視線の長さ（視点と注視点との距離）は、仮想カメラ２１０の初期位置と最下層２００ｃとの直線距離（以下、「距離ｑ」という。）に固定されており、したがって、仮想カメラ２１０は当該距離ｑを半径とする球面に沿うように３次元仮想空間内を移動される。
【００７１】
このパズルゲームでは、プレイヤによって仮想カメラ２１０が移動され、その視線または視線に平行な直線と交差する複数のオブジェクト（１０２，１０４，１０６）が所定の条件を満たすとき、当該複数のオブジェクト（１０２，１０４，１０６）を消去する。この実施例では、図７に示すように、仮想カメラ（視点）２１０の視点が決定されたとき、仮想カメラ２１０側（視点側）から注視点側に向かって、大リングオブジェクト１０２，中リングオブジェクト１０４および小リングオブジェクト１０６の順で、オブジェクト（１０２，１０４，１０６）が視線または視線に平行な直線と交差するとき、所定の条件（消去条件）を満たすことが判定される。このとき、大リングオブジェクト１０２，中リングオブジェクト１０４および小リングオブジェクト１０６は、互いに重なる。ただし、この実施例では、大リングオブジェクト１０２の中に中リングオブジェクト１０４が表示され、さらに、中リングオブジェクト１０４の中に小リングオブジェクト１０６が表示されるとき、仮想カメラ２１０側から、大リングオブジェクト１０２，中リングオブジェクト１０４および小リングオブジェクト１０６の順でオブジェクト（１０２，１０４，１０６）が重なることを意味する。したがって、図６（Ｂ）では分かり難いが、オブジェクト（１０２，１０４，１０６）が上述の順番に従って重なるとき、ゲーム画面１００では、点線の丸で囲む箇所のように、大リングオブジェクト１０２，中リングオブジェクト１０４および小リングオブジェクト１０６によってトンネルが形成されるように、表示される。
【００７２】
そして、消去条件を満たしたオブジェクト（１０２，１０４，１０６）は、３次元仮想空間から消去される。したがって、図８（Ａ）に示すように、一部のオブジェクト（１０２，１０４，１０６）が消去されたゲーム画面１００が表示される。その後、渦巻状に（時計周りに）、各オブジェクト（１０２，１０４，１０６）を詰める（移動させる）とともに、消去したオブジェクト（１０２，１０４，１０６）の数（３）と同数の任意の大きさのオブジェクト（１０２，１０４，１０６）が追加される。したがって、図８（Ｂ）に示すように、ゲーム画面１００が更新される。
【００７３】
たとえば、この実施例のパズルゲームでは、第１の一定時間（たとえば、３分）以内に、所定数以上のオブジェクト（１０２，１０４，１０６）が消去された場合には、ゲームクリアとなる。一方、第１の一定時間以内に、所定数のオブジェクト（１０２，１０４，１０６）が消去されていない場合には、ゲームオーバとなる。ただし、ゲームクリアの条件やゲームオーバの条件は、これに限定される必要はなく、ゲームの開発者や設計者が任意に設定できる。
【００７４】
なお、図示は省略するが、オブジェクト（１０２，１０４，１０６）が消去されない場合にも、ゲーム画面１００は更新される。これは、オブジェクト（１０２，１０４，１０６）を消去することができない手詰まり状態を回避するためである。具体的には、ゲームを開始したり、ゲーム画面１００を更新したりしてから、プレイヤが何ら操作せずに、第１の一定時間よりも短い第２の一定時間（たとえば、１分）が経過すると、ゲーム画面１００が更新される。たとえば、ゲーム画面１００の中央およびその近傍（ランダムでもよい。）に表示されている１または複数のオブジェクト（１０２，１０４，１０６）が消去され、消去されていないオブジェクト（１０２，１０４，１０６）が渦巻状に詰められるとともに、消去したオブジェクト（１０２，１０４，１０６）と同数の任意のオブジェクト（１０２，１０４，１０６）が追加される。
【００７５】
ここで、大リングオブジェクト１０２、中リングオブジェクト１０４、小リングオブジェクト１０６の順番で重なっているか否かを判定（重なり判定）する方法について説明する。図９に示すように、重なり判定では、まず、視線のベクトル（視線ベクトル）Ｖが計算され、次に、この視線ベクトルＶに平行であり、着目するオブジェクト（着目オブジェクト）の位置座標Ｐを始点とする半直線Ｌが計算される。ここで、着目オブジェクトは、最上層２００ａの或る描画領域に描画（配置）された大リングオブジェクト１０８を意味する。ただし、視線ベクトルＶは、視点の座標を始点とし、注視点の座標を終点とするベクトルであり、注視点の座標から視点の座標を減算することにより、求められる。また、半直線Ｌ（ベクトル）は、視線ベクトルＶに着目オブジェクトの位置座標Ｐを加算することにより、求められる。
【００７６】
次に、着目するオブジェクトに重なるかどうかを判定する対象のオブジェクト（対象オブジェクト）の位置Ｑと半直線Ｌとの距離ｄを算出する。この実施例では、対象オブジェクトは、中間層２００ｂの或る描画領域に配置された中リングオブジェクト１０４または最下層２００ｃの或る描画領域に描画（配置）された小リングオブジェクト１０６を意味する。図９では、中オブジェクト１０４が対象オブジェクトである場合について示してある。ここで、図１０に示すように、対象オブジェクトが着目オブジェクトに重なるためには、距離ｄに対象オブジェクト（図９では、中リングオブジェクト１０４）の半径ｒを加算した長さ（距離）Ｄが、着目オブジェクト（この実施例では、大リングオブジェクト１０２）の半径Ｒ以下であれば良いことが分かる。したがって、図９に示すような場合には、距離ｄは着目オブジェクトの半径Ｒを超えていることは明らかであり、対象オブジェクトは、着目オブジェクトに重ならないと判定される。
【００７７】
ただし、重なり判定は、描画領域毎に行われる。この実施例では、図５に示したインデックス番号に従って重なり判定の処理（重なり判定処理）が実行される。たとえば、最上層２００ａにおいて、インデックス番号が１番から順に、描画領域に大リングオブジェクト１０２が描画されているかどうかが判断される。最上層２００ａの或る描画領域に、大リングオブジェクト１０２が描画されていない場合には、重なり判定処理を実行せずに、次のインデックス番号の描画領域に大リングオブジェクト１０２が描画されているかどうかが判断される。一方、最上層２００ａの或る描画領域に、大リングオブジェクト１０２が描画されている場合には、当該大リングオブジェクト１０２を着目オブジェクトとして、重なりの判定処理を実行する。重なり判定処理では、着目オブジェクトに、対象オブジェクトとしての中間層２００ｂに描画された中リングオブジェクト１０４または最下層２００ｃに描画された小リングオブジェクト１０６が重なるかどうかが判断される。中間層２００ｂおよび最下層２００ｃでは、インデックス番号の順番に従って、オブジェクト（１０４，１０６）が描画されているかどうかを判断し、描画されているオブジェクト（１０４，１０６）すなわち対象オブジェクトが着目オブジェクトに重なるか否かが判断される。このような重なり判定処理が、中間層２００ｂおよび最下層２００ｃのすべての描画領域（インデックス番号１〜２０）について実行される。１の着目オブジェクトについて重なり判定処理を終えると、次の着目オブジェクトについて重なり判定処理が実行され、最上層２００ａのすべての描画領域（インデックス番号１〜２０）について重なり判定処理が実行される。
【００７８】
ただし、上述したように、異なる層の同じインデックス番号の描画領域には、複数のオブジェクト（１０２，１０４，１０６）は描画されないため、重なり判定処理では、着目オブジェクト（大リングオブジェクト１０２）が描画された描画領域については重なり判定処理を実行しない。また、同様の理由により、中間層２００ｂの描画領域に対象オブジェクト（中リングオブジェクト１０４）が描画されている場合には、最下層２００ｃの当該描画領域については重なり判定処理を実行しない。逆に、最下層２００ｃの描画領域に対象オブジェクト（小リングオブジェクト１０６）が描画されている場合には、中間層２００ｂの当該描画領域については重なり判定処理を実行しない。このように、無駄な処理を省いて、重なり判定処理の負荷が軽減される。
【００７９】
図１１は図２に示したＲＡＭ４２のメモリマップの一例を示す図解図である。この図１１を参照して、ＲＡＭ４２はプログラム記憶領域７０およびデータ記憶領域７２を含む。プログラム記憶領域７０は、ゲームプログラムを記憶し、このゲームプログラムは、ゲームメイン処理プログラム７０ａ，画像生成プログラム７０ｂ，画像表示プログラム７０ｃ，画像更新プログラム７０ｄ，指示位置検出プログラム７０ｅ，注視点設定プログラム７０ｆ，視点設定プログラム７０ｇ，視線計算プログラム７０ｈ、重なり判定プログラム７０ｉおよび消去条件判定プログラム７０ｊなどで構成される。
【００８０】
ゲームメイン処理プログラム７０ａは、この実施例のパズルゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム７０ｂは、後述するオブジェクト配置データ７２ｄおよび画像データ７２ｈを用いて、ゲーム画像を生成するためのプログラムである。具体的には、まず、３次元仮想空間（ワールド座標）にそのＺ軸方向に直交する方向に並べるように、最上層２００ａ，中間層２００ｂ，最下層２００ｃが配置される。次に、異なる層で同じ位置（インデックス番号）の描画領域に複数のオブジェクト（１０２，１０４，１０６）が描画されないように、各層にオブジェクト（１０２，１０４，１０６）が描画される。ただし、描画されるオブジェクト（１０２，１０４，１０６）の総数は、描画領域の総数（この実施例では、２０）と一致する。また、図示は省略するが、ＬＣＤ１２に表示する他のゲーム画面についてのゲーム画像も生成される。たとえば、他のゲーム画面には、プレイヤのスコアやレベルなどの情報が表示される。
【００８１】
画像表示プログラム７０ｃは、画像生成プログラム７０ｂによって生成されたゲーム画像をゲーム画面としてＬＣＤ１２やＬＣＤ１４に表示するためのプログラムである。ただし、ＬＣＤ１４に表示されるゲーム画面１００は、後述する視点位置データ７２ｃが示す視点位置から、後述する注視点位置データ７２ｂが示す注視点を見た場合のゲーム画像である。画像更新プログラム７０ｄは、ゲーム画像を更新するためのプログラムである。上述したように、プレイヤの操作によってオブジェクト（１０２，１０４，１０６）が消去された場合やプレイヤが何ら操作しない時間が第２の一定時間を経過した場合に、ゲーム画像が更新される。したがって、ゲーム画面１００の表示が変更される。
【００８２】
指示位置検出プログラム７０ｅは、タッチパネル２４からの座標データに基づいてＬＣＤ１４上の指示位置を検出するためのプログラムである。この指示位置検出プログラム７０ｅは、プレイヤがタッチパネル２４にタッチを開始（タッチ開始）してからタッチを終了（タッチ終了）するまでに、１フレーム（フレーム：画面更新単位時間（１／６０秒））毎に検出される座標データを、後述する操作データバッファ７２ａに記憶（一時記憶）する。上述したように、この実施例では、ＬＣＤ１４の解像度と、タッチパネル２４の検出精度とを同じにしてあるため、それぞれの座標系を同じに設定しておけば、タッチパネル２４から入力されるタッチ位置の座標データを、そのままＬＣＤ１４上の（ゲーム画面１００における）指示位置の座標データとして使用することができる。
【００８３】
注視点設定プログラム７０ｆは、指示位置検出プログラム７０ｅによって検出されたタッチ開始位置の座標データが示す座標に表示されるオブジェクト（１０２，１０４，１０６）のワールド座標の位置座標を注視点に設定するためのプログラムである。ただし、ゲーム開始時やゲーム画像（ゲーム画面１００）の更新時では、注視点は最下層２００ｃ（最上層２００ａまたは中間層２００ｂでもよい。）の中心位置に設定される。視点設定プログラム７０ｇは、指示位置検出プログラム７０ｅによって検出されるタッチ位置の座標データに従って、仮想カメラ２１０（視点）のワールド座標の位置座標を設定するためのプログラムである。この実施例では、視点設定プログラム７０ｇは、タッチパネル２４から入力される座標データが示す２次元の位置座標（Ｘ座標およびＹ座標）に対応するワールド座標のＸ座標およびＹ座標を求める。たとえば、ＬＣＤ１４の座標系の原点と、タッチパネル２４の座標系の原点と、各層の座標系（ＸＹ平面のみ）の原点とを同じ点（たとえば、左上頂点）に設定しておけば、タッチパネル２４から入力される座標データが示すＸ座標およびＹ座標を、ワールド座標におけるＸ座標およびＹ座標として用いることができる。そして、視線の長さが距離ｑになるように、Ｚ座標を求める。したがって、仮想カメラ２１０の位置座標が決定される。ただし、ゲーム開始時やゲーム画面１００の更新時では、視点は初期位置に設定される。なお、上述したように、このとき、注視点は最下層２００ｃの中心位置である。
【００８４】
視線計算プログラム７０ｈは、視点位置データ７２ｃが示す視点の位置座標を始点とし、注視点位置データ７２ｂが示す注視点の位置座標を終点とする視線ベクトルＶを計算するためのプログラムである。重なり判定プログラム７０ｉは、視線計算プログラム７０ｈに従って算出された視線ベクトルＶを用いて、対象オブジェクト（１０４，１０６）が着目オブジェクト（１０２）に重なるか否かを判定するためのプログラムである。言い換えると、重なり判定プログラム７０ｉは、視線またはそれに平行な直線がオブジェクト（１０２，１０４，１０６）と交差するかどうかを判定するのである。
【００８５】
消去条件判定プログラム７０ｊは、重なり判定プログラム７０ｉに従って重なることが判定されたオブジェクト（１０２，１０４，１０６）が消去条件を満たすかどうかを判定するためのプログラムである。この実施例では、大リングオブジェクト１０２，中リングオブジェクト１０４，小リングオブジェクト１０６が、視点側から注視点側に向かう順番で重なる場合に、消去条件が満たされる。それ以外では、消去条件は満たされない。
【００８６】
なお、図示は省略するが、ゲームプログラムは、音出力プログラムやバックアッププログラムなども含む。音出力プログラムは、ゲームキャラクタの音声、効果音、音楽（ＢＧＭ）のように、ゲームに必要な音を出力するためのプログラムである。バックアッププログラムは、プレイヤの指示やゲームイベントに従って、ゲームデータ（途中データ，結果データ）をメモリカード３０にセーブするためのプログラムである。
【００８７】
図１２は図１１に示したデータ記憶領域７２の内容の一例を示す図解図である。図１２を参照して、データ記憶領域７２には、操作データバッファ７２ａが設けられる。また、データ記憶領域７２には、注視点位置データ７２ｂ，視点位置データ７２ｃ，オブジェクト配置データ７２ｄ，消去候補データ７２ｅ，ゲームクリア条件データ７２ｆ，ゲームオーバ条件データ７２ｇ，画像データ７２ｈおよびオブジェクト消去数データ７２ｉが記憶される。さらに、データ記憶領域７２には、画面更新タイマ７２ｋおよびプレイ時間タイマ７２ｊが設けられる。
【００８８】
操作データバッファ７２ａは、上述したように、指示位置検出プログラム７０ｅに従って検出された座標データを一時記憶するための領域である。注視点位置データ７２ｂは、３次元仮想空間における注視点の位置座標についての座標データである。視点位置データ７２ｃは、３次元仮想空間における視点すなわち仮想カメラ２１０の位置座標についての座標データである。
【００８９】
オブジェクト配置データ７２ｄは、各オブジェクト（１０２，１０４，１０６）を配置するためのデータであり、オブジェクト１データ７３０，オブジェクト２データ７３２，…，オブジェクトｎデータ７３ｎを含む。オブジェクト１データ７３０は、位置データ７３０ａおよび属性データ７３０ｂを含む。位置データ７３０ａは、当該オブジェクト１が配置される層における位置座標（ＸＹ座標）についての座標データである。また、属性データ７３０ｂは、当該オブジェクト１の種類（大リングオブジェクト１０２，中リングオブジェクト１０４，小リングオブジェクト１０６の別、または、大きさ（半径））、配置される層の種類（最上層２００ａ，中間層２００ｂ，最下層２００ｃ）および配置位置（インデックス番号）についてのデータである。ただし、この実施例では、オブジェクト１はインデックス番号「１」に描画されるオブジェクト（１０２，１０４，１０６）を意味する。つまり、図中の数値ｎはインデックス番号（ｎ＝１，２，３，…，２０）を意味する。
【００９０】
なお、詳細な説明は省略するが、他のオブジェクト２データ７３２，…，オブジェクトｎデータ７３ｎについても同様である。
【００９１】
消去候補データ７２ｅは、消去候補のオブジェクト（１０２，１０４，１０６）に関するデータである。この実施例では、着目オブジェクト（１０２）に重なることが判定された対象オブジェクト（１０４，１０６）の識別情報（たとえば、オブジェクト１データ７３０，…，オブジェクトｎデータ７２ｎのポインタ。以下、同じ。）が、当該着目オブジェクトの識別情報に対応づけられたデータが消去候補データ７２ｅとして記憶される。
【００９２】
ゲームクリア条件データ７２ｆは、ゲームクリアを判定するための条件であり、この実施例では、第１の一定時間（３分）内に、一定数以上のオブジェクト（１０２，１０４，１０６）が消去されることがゲームクリアの条件である。ゲームオーバ条件データ７２ｇは、ゲームオーバを判定するための条件であり、この実施例では、第１の一定時間内に、一定数以上のオブジェクト（１０２，１０４，１０６）が消去されていないことがゲームオーバの条件である。画像データ７２ｈは、ゲーム画像を生成するためのポリゴンデータやテクスチャデータなどである。オブジェクト消去数データ７２ｊは、後述するプレイ時間タイマ７２ｊによって第１の一定時間（３分）がカウントされる間に、消去されたオブジェクト（１０２，１０４，１０６）の数（消去数ｋ）を示す数値データである。
【００９３】
なお、ゲームクリアの条件やゲームオーバの条件は、単なる例示であり、これに限定される必要はない。これらは、ゲームの開発者や設計者が適宜設定する条件である。また、これらの条件は固定される必要もなく、ゲームの（プレイヤの）レベル等に応じて適宜変更されてもよい。
【００９４】
プレイ時間タイマ７２ｊは、プレイヤがパズルゲームをプレイしている時間（第１の一定時間）をカウントするためのタイマである。このプレイ時間タイマ７２ｊは、ゲーム開始時にリセットおよびスタートされる。また、画面更新タイマ７２ｋは、画面更新時間（第２の一定時間（１分））をカウントするためのタイマである。この画面更新タイマ７２ｋは、ゲームの開始時またはゲーム画面１００が更新された時に、リセットおよびスタートされる。
【００９５】
なお、図示は省略するが、データ記憶領域７２には、音データやゲームデータなどが記憶されるとともに、ゲーム処理に必要な他のタイマ（カウンタ）或いはレジスタまたはフラグなども設けられる。
【００９６】
具体的には、図２に示したＣＰＵコア３４が図１３ないし図１６に示すフロー図に従ってゲーム全体処理（メインルーチン）を実行する。図１３に示すように、ＣＰＵコア３４はゲーム全体処理を開始すると、ステップＳ１で、初期設定を実行する。ここでは、たとえば、操作データバッファ７２ａなどのバッファをクリアしたり、プレイ時間タイマ７２ｊや画面更新タイマ７２ｋなどのタイマ（カウンタ）或いはレジスタまたはフラグなどをリセットしたりする。図示は省略するが、ここでは、オブジェクト消去数データ７２ｉがリセットされる（消去数ｋ＝０）。また、同様に、図示は省略するが、プレイ時間タイマ７２ｊおよび画面更新タイマ７２ｋはリセットされた後にスタートされる。さらに、ゲーム画面１００（初期画面）を表示するためのオブジェクト配置データ７２ｄの初期値が設定される。ただし、前回の続きからゲームを開始する場合には、レジスタやフラグには、メモリカード３０に記憶されたゲームデータに従う値が設定される。
【００９７】
次のステップＳ３では、図３に示したような、俯瞰視点のゲーム画面１００（初期画面）を表示する。続いて、ステップＳ５では、操作入力が有るかどうかを判断する。つまり、タッチパネル２４から座標データが入力されたかどうかを判断する。ただし、このステップＳ５の処理は、プレイヤがタッチを開始したかどうかの判断である。ステップＳ５で“ＮＯ”であれば、つまり操作入力が無ければ、ステップＳ７で、画面更新タイマ７２ｋのカウント値を参照して、第２の一定時間（１分）が経過したかどうかを判断する。
【００９８】
ステップＳ７で“ＮＯ”であれば、つまり第２の一定時間が経過していなければ、そのままステップＳ３に戻る。一方、ステップＳ７で“ＹＥＳ”であれば、つまり第２の一定時間が経過していれば、ステップＳ９で、オブジェクト（１０２，１０４，１０６）の配置を更新して、ステップＳ５に戻る。つまり、ステップＳ９の処理によって、ゲーム画像（ゲーム画面１００）が更新される。図示は省略するが、ステップＳ９の処理を実行した後、画面更新タイマ７２ｋは、リセットおよびスタートされる。
【００９９】
また、ステップＳ５で“ＹＥＳ”であれば、つまり操作入力があれば、ステップＳ１１で、注視点を検出し、設定する。この実施例では、タッチ開始位置が示すオブジェクト（１０２，１０４，１０６）の位置座標が注視点として設定され、その注視点の位置座標の座標データが注視点位置データ７２ｂとしてデータ記憶領域７２に記憶される。続いて、ステップＳ１３では、操作入力に応じて視点を設定する。ここでは、タッチパネル２４から入力される座標データが操作データバッファ７２ａに順次記憶され、上述したように、この座標データが示すタッチ位置（位置座標）に対応する３次元仮想空間（ゲーム空間）の指示位置を算出し、当該指示位置を視点の位置座標に設定する。つまり、３次元仮想空間の指示位置の位置座標の座標データが視点位置データ７２ｃとしてデータ記憶領域７２に記憶される。したがって、タッチ位置が変化すると、視点（視点位置データ７２ｃ）も更新される。
【０１００】
次のステップＳ１５では、図６（Ｂ）に示したような、３Ｄ視点のゲーム画面１００を表示する。つまり、仮想カメラ２１０は、その向きが注視点位置データ７２ｂの示す注視点の方向に設定されたままで、視点位置データ７２ｃが示す視点（仮想カメラ２１０）の位置に配置（移動）される。そして、仮想カメラ２１０で撮影される３次元仮想空間の様子が２次元のゲーム画面１００で表示される。つまり、仮想カメラ２１０から見た３次元のゲーム画像が投影変換（仮想スクリーンに投影）され、投影変換された２次元のゲーム画像がゲーム画面１００として表示されるのである。
【０１０１】
続いて、ステップＳ１７では、視点が確定したかどうかを判断する。つまり、タッチを終了したかどうかを判断する。なお、タッチパネル２４からの座標データが無くなったとき、タッチを終了したと判断する。ステップＳ１７で“ＮＯ”であれば、つまり視点が確定していなければ、視点の変更中であると判断して、そのままステップＳ１３に戻る。一方、ステップＳ１７で“ＹＥＳ”であれば、つまり視点が確定すれば、ステップＳ１９で、視線を計算する。ここでは、ＣＰＵコア３４は、注視点位置データ７２ｂおよび視点位置データ７２ｃを参照して、視点の位置座標を始点とし、注視点の位置座標を終点とする視線ベクトルＶを計算する。
【０１０２】
図１４に示すように、次のステップＳ２１では、変数ｉに初期値を設定し（ｉ＝１），変数Ｖに視線ベクトルＶを設定し、変数ｎｕｍにオブジェクト（１０２，１０４，１０６）の総数（２０）を設定する。ここで、変数ｉは、最上層２００ａの描画領域のインデックス番号に相当する。この実施例では、最上層２００ａの描画領域は、ａｒｅａ［１］［ｉ］で示される。また、後述するように、中間層２００ｂの描画領域はａｒｅａ［２］［ｊ］で示され、最下層２００ｃの描画領域はａｒｅａ［３］［ｊ］で示される。
【０１０３】
続いて、ステップＳ２３では、変数ｉが変数ｎｕｍよりも大きいかどうかを判断する。つまり、重なり判定処理を終了したかどうかを判断する。ステップＳ２３で“ＹＥＳ”であれば、つまり変数ｉが変数ｎｕｍよりも大きければ、重なり判定処理を終了したと判断して、図１６に示すステップＳ５５に進む。
【０１０４】
しかし、ステップＳ２３で“ＮＯ”であれば、つまり変数ｉが変数ｎｕｍ以下であれば、重なり判定処理を終了していないと判断し、ステップＳ２５で、描画領域ａｒｅａ［１］［ｉ］に大リングオブジェクト１０２が描画されているかどうかを判断する。ここでは、ＣＰＵコア３４は、オブジェクト１データ７３０〜オブジェクトｎデータ７３ｎに含まれる属性データを参照して、その判断処理を実行する。以下、各描画領域に描画されたオブジェクト（１０２，１０４，１０６）を判断する場合について、同様である。
【０１０５】
ステップＳ２５で“ＮＯ”であれば、つまり描画領域ａｒｅａ［１］［ｉ］に大リングオブジェクト１０２が描画されていなければ、次の描画領域ａｒｅａ［１］［ｉ］について重なり判定処理を実行するべく、ステップＳ３１に進む。つまり、描画領域ａｒｅａ［１］［ｉ］に大リングオブジェクト１０２が描画されていない場合には、この描画領域ａｒｅａ［１］［ｉ］については、重なり判定処理を実行しない。これによって、ＣＰＵ３４の計算負荷が軽減される。
【０１０６】
一方、ステップＳ２５で“ＹＥＳ”であれば、つまり描画領域ａｒｅａ［１］［ｉ］に大リングオブジェクト１０２が描画されていれば、ステップＳ２７で、変数Ｒに大リングオブジェクト１０２の半径を設定し、視線ベクトルＶの始点が描画領域ａｒｅａ［１］［ｉ］に描画された大リングオブジェクト１０２（着目オブジェクト）の位置座標と一致するように移動した半直線Ｌを設定し（Ｌ＝着目オブジェクトの位置＋Ｖ）、そして、変数ｊに初期値を設定する（ｊ＝１）。
【０１０７】
続くステップＳ２９では、変数ｊが変数ｎｕｍよりも大きいかどうかを判断する。つまり、描画領域ａｒｅａ［２］［ｊ］および描画領域［３］［ｊ］のすべてについて、重なり判定処理を終了したかどうかを判断する。ステップＳ２９で“ＹＥＳ”であれば、つまり変数ｊが変数ｎｕｍよりも大きければ、描画領域ａｒｅａ［２］［ｊ］および描画領域［３］［ｊ］のすべてについて、重なり判定処理を終了したと判断して、次の描画領域ａｒｅａ［１］［ｉ］について重なり判定処理を実行するべく、ステップＳ３１で、変数ｉをインクリメントして（ｉ＝ｉ＋１）、ステップＳ２３に戻る。
【０１０８】
しかし、ステップＳ２９で“ＮＯ”であれば、つまり変数ｊが変数ｎｕｍ以下であれば、描画領域ａｒｅａ［２］［ｊ］および描画領域［３］［ｊ］のすべてについて、重なり判定処理を終了していないと判断して、ステップＳ３３で、変数ｉと変数ｊとが等しいかどうかを判断する。これは、着目オブジェクトとしての大リングオブジェクト１０２が描画された描画領域と同じ位置（インデックス番号）の中間層２００ｂおよび最下層２００ｃの描画領域については、重なり判定処理を実行しないためである。
【０１０９】
ステップＳ３３で“ＹＥＳ”であれば、つまり変数ｉと変数ｊとが等しければ、図１５に示すステップＳ５３に進む。一方、ステップＳ３３で“ＮＯ”であれば、つまり変数ｉと変数ｊとが等しくなければ、ステップＳ３５で、描画領域［２］［ｊ］に中リングオブジェクト１０４が描画されているかどうかを判断する。ステップＳ３５で“ＹＥＳ”であれば、つまり描画領域［２］［ｊ］に中リングオブジェクト１０４が描画されていれば、当該中リングオブジェクト１０４を対象オブジェクトとして重なり判定を行うべく、図１５のステップＳ３７に進む。一方、ステップ３５で“ＮＯ”であれば、つまり、描画領域には俯瞰画面から見たときに隙間無くオブジェクトが描画されるので、描画領域［３］［ｊ］に小リングオブジェクトが描画されていることになり、当該小リングオブジェクト１０６を対象オブジェクトとして重なり判定を行うべく、図１５に示すステップＳ４１に進む。
【０１１０】
図１５に示すように、ステップＳ３７では、変数ｒに中リングオブジェクト１０４の半径を設定し、ステップＳ３９で、描画領域［２］［ｊ］に描画された中リングオブジェクト１０４の位置Ｐ（位置座標）を取得して、ステップＳ４５に進む。また、ステップＳ４１では、変数ｒに小リングオブジェクト１０６の半径を設定し、ステップＳ４３で、描画領域［３］［ｊ］に描画された小リングオブジェクト１０６の位置Ｐを取得して、ステップＳ４５に進む。
【０１１１】
ステップＳ４５では、半直線Ｌと位置Ｐとの距離ｄを算出し、ステップＳ４７で、距離ｄと変数ｒとを加算することにより、距離Ｄを算出する（Ｄ＝ｄ＋ｒ）。そして、ステップＳ４９で、距離Ｄが変数Ｒ以下であるかどうかを判断する。つまり、対象オブジェクトが着目オブジェクトに重なるかどうかを判断する。ステップＳ４９で“ＮＯ”であれば、つまり距離Ｄが変数Ｒよりも大きければ、対象オブジェクトが着目オブジェクトに重ならないと判断して、ステップＳ５３で、変数ｊをインクリメントして（ｊ＝ｊ＋１）、図１４に示したステップＳ２９に戻る。
【０１１２】
また、ステップＳ４９で“ＹＥＳ”であれば、つまり距離Ｄが変数Ｒ以下であれば、対象オブジェクトが着目オブジェクトに重なると判断し、ステップＳ５１で、今回重なりを判定した、描画領域ａｒｅａ［２］［ｊ］に描画された中リングオブジェクト１０４、または、描画領域ａｒｅａ［３］［ｊ］に描画された小リングオブジェクト１０６を、描画領域ａｒｅａ［１］［ｉ］に関連付けて消去候補として設定して、ステップＳ５３に進む。つまり、着目オブジェクトの識別情報と対象オブジェクトの識別情報とが関連付けられた消去候補データ７２ｅがデータ記憶領域７２に記憶される。
【０１１３】
上述したように、重なり判定処理を終了すると、ステップＳ２３で“ＹＥＳ”となり、図１６に示すステップＳ５５で、消去条件を満たすオブジェクト（１０２，１０４，１０６）があるかどうかを判断する。ここでは、ＣＰＵコア３４は、消去候補データ７２ｅを参照して、同一の大リングオブジェクト１０２に関連づけられた中リングオブジェクト１０４と小リングオブジェクト１０６とが存在するかどうかを判断する。そして、ＣＰＵコア３４は、同一の大リング１０２に関連づけられた中リングオブジェクト１０４と小リングオブジェクト１０６とが存在する場合には、消去条件を満たすと判断する。一方、ＣＰＵコア３４は、中リングオブジェクト１０４と小リングオブジェクト１０６とが異なる大リングオブジェクト１０２に関連付けられている場合、２つの中リングオブジェクト１０４が同一の大リングオブジェクト１０２に関連づけられている場合、２つの小リングオブジェクト１０６が同一の大リングオブジェクト１０２に関連づけられている場合には、消去条件を満たさないと判断する。
【０１１４】
ステップＳ５５で“ＮＯ”であれば、つまり消去条件を満たすオブジェクト（１０２，１０４，１０６）が存在しなければ、図１３に示したステップＳ３に戻る。一方、ステップＳ５５で“ＹＥＳ”であれば、つまり消去条件を満たすオブジェクト（１０２，１０４，１０６）が存在すれば、ステップＳ５７で、オブジェクトの消去処理を実行する。ここでは、消去条件を満たす大リングオブジェクト１０２，中リングオブジェクト１０４および小リングオブジェクト１０６の組を消去する。複数の組が存在する場合には、当該複数の組のオブジェクト（１０２，１０４，１０６）が消去される。具体的には、消去すべきオブジェクト（１０２，１０４，１０６）についてのオブジェクト１データ７３０〜オブジェクトｎデータ７３ｎをデータ記憶領域７２から消去する。
【０１１５】
次のステップＳ５９では、スコアをカウントアップする。つまり、得点が加算される。続く、ステップＳ６１では、消去数ｋを加算する。ここでは、ステップＳ５７のオブジェクト消去処理において消去されたオブジェクトの数が加算される。続いて、ステップＳ６３では、オブジェクトの配置を更新する。つまり、消去処理によってオブジェクトが消去された描画領域にオブジェクト（１０２，１０４，１０６）を配置するべく、渦巻状にオブジェクト（１０２，１０４，１０６）を移動させる。そして、消去されたオブジェクト（１０２，１０４，１０６）の数だけ、新しいオブジェクト（１０２，１０４，１０６）が追加される。追加されるオブジェクト（１０２，１０４，１０６）の種類（大きさ）はランダムに設定される。
【０１１６】
そして、ステップＳ６５では、ゲームクリアかどうかを判断する。この実施例では、ＣＰＵコア３４は、ゲームクリア条件データ７２ｆを参照して、ゲームクリアの条件を取得する。また、ＣＰＵコア３４は、オブジェクト消去数データ７２ｉを参照して、消去数ｋを検出するとともに、プレイ時間タイマ７２ｊを参照して、パズルゲームのプレイ時間を取得する。そして、ＣＰＵコア３４は、ゲームクリアの条件を満たすかどうかを判断する。具体的には、ＣＰＵコア３４は、第１の一定時間（３分）以内に所定数以上のオブジェクト（１０２，１０４，１０６）が消去されたかどうかを判断する。ステップＳ６５で“ＹＥＳ”であれば、つまりゲームクリアであれば、ステップＳ６７で、ゲームクリア処理を実行し、ゲーム全体処理を終了する。ステップＳ６７では、ＣＰＵコア３４は、たとえば、ゲームクリアをしたことを示すゲーム画面１００を表示し、ゲームレベルや面（ステージ）を更新し、ゲームデータをセーブする。
【０１１７】
一方、ステップＳ６５で“ＮＯ”であれば、つまりゲームクリアでなければ、ステップＳ６９で、ゲームオーバかどうかを判断する。この実施例では、ＣＰＵコア３４は、ゲームクリアの判定と同様に、ゲームオーバ条件データ７２ｇ，オブジェクト消去数データ７２ｉおよびプレイ時間タイマ７２ｊを参照して、第１の一定時間以内に所定数のオブジェクト（１０２，１０４，１０６）が消去されていないかどうかを判断する。ステップＳ６９で“ＮＯ”であれば、つまりゲームオーバでなければ、そのままステップＳ３に戻る。一方、ステップＳ６９で“ＹＥＳ”であれば、つまりゲームオーバであれば、ステップＳ７１で、ゲームオーバ処理を実行して、ゲーム全体処理を終了する。ステップＳ７１では、ＣＰＵコア３４は、たとえば、ゲームオーバを示すゲーム画面１００を表示する。
【０１１８】
この実施例によれば、プレイヤの操作に応じて、注視点を設定し、さらに視点を変更させることにより、リング状のオブジェクトが所定の条件を満たしたときに、所定の条件を満たしたオブジェクトを消去するので、新しいパズルゲームを提供することができる。
【０１１９】
なお、この実施例では、各層でリングの大きさの異なるオブジェクトすなわち相似形のオブジェクトを配置するようにしたが、各層で色や形或いはその両方が異なるオブジェクトを配置するようにしてもよい。
【０１２０】
また、この実施例では、大リングオブジェクトに収まるように、中リングオブジェクトや小リングオブジェクトが重なる場合に、消去条件を満たすようにしたが、これに限定される必要はなく、少なくとも一部が重なる場合に、消去条件を満たすようにしてもよい。
【０１２１】
さらに、この実施例では、３つの層を設け、各層の描画領域の個数を２０（４×５）に設定したが、層は２つ以上であればよく、４つ以上設けることも可能であり、描画領域は層の数やゲームの難易度等に応じて適宜変更可能である。
【０１２２】
さらにまた、この実施例では、小リングオブジェクトをタッチして、注視点を設定するようにしたが、中リングオブジェクトや大リングオブジェクトをタッチして注視点を設定するようにしてもよい。いずれの場合であっても、注視点は、タッチされたオブジェクトの配置位置（中心座標）に設定され、視点を移動する場合に、視点と注視点との距離が一定に保たれる。ただし、場合によっては、半直線の長さを延ばす必要がある。
【０１２３】
また、この実施例では、３次元仮想空間において、視線に基づいて、オブジェクトが重なるかどうかを判断するようにしたが、これに限定される必要はない。たとえば、レンダリングにより生成した２次元のゲーム画像に基づいて、重なりを判定することもできる。簡単に説明すると、かかる場合には、すべてのオブジェクトに固有の識別情報（ＩＤ）が割り当てられる。また、ポリゴンＩＤ用のバッファを別途設けておき、このバッファに、奥のレイヤー（最下層）のオブジェクトから順番に、オブジェクトと同じ半径のサークルをレンダリングする。このとき、既にＩＤが書き込まれた場所（ピクセル）には、上書きしない。そして、すべてのオブジェクトに対応するサークルをレンダリングした後に、或るＩＤの領域が別のＩＤの領域に囲まれているかどうかを、ピクセル単位で調べる。或るＩＤの領域が別のＩＤの領域に囲まれている場合には、それらのＩＤに対応するオブジェクト同士が重なっていることを示す。
【０１２４】
なお、この実施例では、ポインティングデバイスとして、タッチパネルを用いるようにしたが、ペンタブレット、タッチパッド、コンピュータマウスのような他のポインティングデバイスを用いることも可能である。当然のことながら、従来の操作スイッチを用いることも可能である。ただし、他のポインティングデバイスや操作スイッチを用いる場合には、画面上の指示位置を示すためのマウスポインタのような指示画像を表示する必要がある。
【０１２５】
また、ゲーム装置の構成は、上述の実施例の構成に限定されるべきでない。たとえば、ＬＣＤは１つでもよく、タッチパネルは２つのＬＣＤのそれぞれに設けるようにしてもよい。
【図面の簡単な説明】
【０１２６】
【図１】図１はこの発明のゲーム装置の一実施例を示す図解図である。
【図２】図２は図１に示すゲーム装置の電気的な構成を示すブロック図である。
【図３】図３は図１に示すゲーム装置の第２のＬＣＤに表示されるゲーム画面の一例を示す図解図である。
【図４】図４は３次元仮想空間に配置されるレイヤー（層）および各層に配置されるオブジェクトを示す図解図である。
【図５】図５は各層に設定されるオブジェクトの描画領域を説明するための図解図である。
【図６】図６は図１に示すゲーム装置の第２のＬＣＤに表示されるゲーム画面の他の例を示す図解図である。
【図７】図７は３次元仮想空間における各層および仮想カメラの位置関係を示す図解図である。
【図８】図８は図１に示すゲーム装置の第２のＬＣＤに表示されるゲーム画面の更新方法を説明するための図解図である。
【図９】図９は３次元仮想空間において各層のオブジェクトが重なるかどうかの重なり判定の方法を説明するための図解図である。
【図１０】図１０は重なり判定においてオブジェクト同士が重なる条件を説明するための図解図である。
【図１１】図１１は図２に示すＲＡＭのメモリマップの一例を示す図解図である。
【図１２】図１２は図１１に示すデータ記憶領域の具体的な内容を示す図解図である。
【図１３】図１３は図２に示すＣＰＵコアのゲーム全体処理の一部を示すフロー図である。
【図１４】図１４は図２に示すＣＰＵコアのゲーム全体処理の他の一部であって、図１３に後続するフロー図である。
【図１５】図１５は図２に示すＣＰＵコアのゲーム全体処理のその他の一部であって、図１３および図１４に後続するフロー図である。
【図１６】図１６は図２に示すＣＰＵコアのゲーム全体処理のさらに他の一部であって、図１３ないし図１５に後続するフロー図である。
【符号の説明】
【０１２７】
１０  …ゲーム装置
１２，１４  …ＬＣＤ
１６，１６ａ，１６ｂ  …ハウジング
２２  …操作スイッチ
２４  …タッチパネル
２６  …スティック
２８  …メモリカード
２８ａ  …ＲＯＭ
２８ｂ，４２  …ＲＡＭ
３４  …ＣＰＵコア
３６ａ，３６ｂ  …スピーカ
４４，４６  …ＧＰＵ
４８  …Ｉ／Ｆ回路
５０  …ＬＣＤコントローラ
５２，５４  …ＶＲＡＭ
【図１】
2008113762.tif 000003
【図２】
2008113762.tif 000004
【図３】
2008113762.tif 000005
【図４】
2008113762.tif 000006
【図５】
2008113762.tif 000007
【図６】
2008113762.tif 000008
【図７】
2008113762.tif 000009
【図８】
2008113762.tif 000010
【図９】
2008113762.tif 000011
【図１０】
2008113762.tif 000012
【図１１】
2008113762.tif 000013
【図１２】
2008113762.tif 000014
【図１３】
2008113762.tif 000015
【図１４】
2008113762.tif 000016
【図１５】
2008113762.tif 000017
【図１６】
2008113762.tif 000018