(57)【特許請求の範囲】
【請求項１】
２つの表示領域を備えるゲーム装置のゲームプログラムであって、
前記ゲーム装置のコンピュータを、
プレイヤによる操作を検出する操作検出部、
一方の前記表示領域に第１オブジェクトを表示するとともに、当該第１オブジェクトとは異なる第２オブジェクトを他方の表示領域に表示する表示部、
前記操作検出部の検出結果に基づいて前記第１オブジェクトを移動させる第１オブジェクト制御部、
前記第１オブジェクト制御部によって移動される前記第１オブジェクトの移動に従って前記第２オブジェクトを移動させる第２オブジェクト制御部、および
前記操作検出部の検出結果に基づいて前記第１オブジェクトと前記第２オブジェクトとを入れ替えることにより、当該第１オブジェクトを前記他方の表示領域に表示させ、当該第２オブジェクトを前記一方の表示領域に表示させる入替部として機能させる、ゲームプログラム。
【請求項２】
前記入替部によって前記第１オブジェクトと前記第２オブジェクトとが入れ替えられたとき、前記第２オブジェクト制御部は、前記プレイヤの操作に応じて当該第２オブジェクトを移動させ、前記第１オブジェクト制御部は、当該第２オブジェクトの移動に従って当該第１オブジェクトを移動させる、請求項１記載のゲームプログラム。
【請求項３】
前記第２オブジェクト制御部は、前記第１オブジェクト制御部によって移動される前記第１オブジェクトと点対称に前記第２オブジェクトを移動させる、請求項１記載のゲームプログラム。
【請求項４】
２つの表示領域を備えるゲーム装置であって、
プレイヤによる操作を検出する操作検出部、
一方の前記表示領域に第１オブジェクトを表示するとともに、当該第１オブジェクトとは異なる第２オブジェクトを他方の表示領域に表示する表示部、
前記操作検出部の検出結果に基づいて前記第１オブジェクトを移動させる第１オブジェクト制御部、
前記第１オブジェクト制御部によって移動される前記第１オブジェクトの移動に従って前記第２オブジェクトを移動させる第２オブジェクト制御部、および
前記操作検出部の検出結果に基づいて前記第１オブジェクトと前記第２オブジェクトとを入れ替えることにより、当該第１オブジェクトを前記他方の表示領域に表示させ、当該第２オブジェクトを前記一方の表示領域に表示させる入替部を備える、ゲーム装置。
【請求項５】
２つの表示領域を備えるゲーム装置のゲーム制御方法であって、
（ａ）プレイヤによる操作を検出し、
（ｂ）一方の前記表示領域に第１オブジェクトを表示するとともに、当該第１オブジェクトとは異なる第２オブジェクトを他方の表示領域に表示し、
（ｃ）前記ステップ（ａ）の検出結果に基づいて前記第１オブジェクトを移動させ、
（ｄ）前記ステップ（ｃ）によって移動される前記第１オブジェクトの移動に従って前記第２オブジェクトを移動させ、そして
（ｅ）前記ステップ（ａ）の検出結果に基づいて前記第１オブジェクトと前記第２オブジェクトとを入れ替えることにより、当該第１オブジェクトを前記他方の表示領域に表示させ、当該第２オブジェクトを前記一方の表示領域に表示させる、ゲーム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はゲームプログラム、ゲーム装置およびゲーム制御方法に関し、特にたとえば、２つの表示領域に仮想ゲームの画面を表示させる、ゲームプログラム、ゲーム装置およびゲーム制御方法に関する。
【背景技術】
【０００２】
この種のゲーム装置の一例が特許文献１に開示されている。この特許文献１の情報処理装置では、第１表示領域に複数のウインドウが重畳してまたは最前のウインドウのみが表示され、第２表示領域に複数のウインドウに対応づけられた複数のタブが表示される。タブ上で所定の入力があったと判定されたとき、当該タブに対応付けられた第１表示領域の最前に表示されたウインドウが第２表示領域に表示される。あるいは、当該タブに対応付けられた非アクティブなウインドウが第２表示領域に表示される。したがって、ユーザは、第２表示領域に表示されたウインドウに対してタッチパネルを用いて操作し入力する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】ＷＯ２００５／０９１１１７［G06F 3/048, G06F 3/14］
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に開示された情報処理装置では、所望のウインドウに対して操作し入力する場合には、タッチパネルの操作が可能な第２表示領域に当該ウインドウを表示する必要がある。したがって、特許文献１の情報処理装置を用いてゲームを行う場合には、所望のウインドウを第２表示領域に移動させる必要があり、操作が面倒である。また、このことがゲームの作成やゲームプレイを制約してしまう虞がある。
【０００５】
それゆえに、この発明の主たる目的は、新規な、ゲームプログラム、ゲーム装置およびゲーム制御方法を提供することである。
【０００６】
また、この発明の他の目的は、操作性を向上させることができる、ゲームプログラム、ゲーム装置およびゲーム制御方法を提供することができる。
【課題を解決するための手段】
【０００７】
第１の発明は、２つの表示領域を備えるゲーム装置のゲームプログラムであって、ゲーム装置のコンピュータを、操作検出部、表示部、第１オブジェクト制御部、第２オブジェクト制御部、および入替部として機能させる。操作検出部は、プレイヤによる操作を検出する。表示部は、一方の表示領域に第１オブジェクトを表示するとともに、当該第１オブジェクトとは異なる第２オブジェクトを他方の表示領域に表示する。第１オブジェクト制御部は、操作検出部の検出結果に基づいて第１オブジェクトを移動させる。第２オブジェクト制御部は、第１オブジェクト制御部によって移動される第１オブジェクトの移動に従って第２オブジェクトを移動させる。入替部は、操作検出部の検出結果に基づいて第１オブジェクトと第２オブジェクトとを入れ替えることにより、第１オブジェクトを他方の表示領域に表示させ、第２オブジェクトを一方の表示領域に表示させる。したがって、第１オブジェクト制御部は、一方の表示領域または他方の表示領域に表示された第１オブジェクトを移動させる。
【０００８】
第１の発明によれば、２つの表示領域のいずれに表示されていても、プレイヤの操作に応じてオブジェクトを移動させるので、特定の表示領域にオブジェクトを表示させるような制約が無く、操作性を向上させることができる。また、第１オブジェクトの移動に従って第２オブジェクトを移動させるので、同時に２つのオブジェクトを移動させることができる。この場合にも、操作性を向上させることができる。
【００１１】
第２の発明は、第１の発明に従属し、入替部によって第１オブジェクトと第２オブジェクトとが入れ替えられたとき、第２オブジェクト制御部は、プレイヤの操作に応じて当該第２オブジェクトを移動させ、第１オブジェクト制御部は、当該第２オブジェクトの移動に従って当該第１オブジェクトを移動させる。
【００１２】
第２の発明においても、第１の発明と同様に、同時に２つのオブジェクトを移動させることができる。
【００１３】
第３の発明は、第１の発明に従属し、第２オブジェクト制御部は、第１オブジェクト制御部によって移動される第１オブジェクトと点対称に第２オブジェクトを移動させる。つまり、第１オブジェクトと第２オブジェクトとが、たとえば、左右および上下で反対方向に移動される。
【００１４】
第３の発明の発明によれば、第２オブジェクトを点対称に移動させるので、操作の難易度が比較的高く、ゲームに飽きが来るのを出来る限り防止することができる。
【００２３】
第４の発明は、２つの表示領域を備えるゲーム装置であって、操作検出部、表示部、第１オブジェクト制御部、第２オブジェクト制御部、および入替部を備える。操作検出部は、プレイヤによる操作を検出する。表示部は、一方の表示領域に第１オブジェクトを表示するとともに、当該第１オブジェクトとは異なる第２オブジェクトを他方の表示領域に表示する。第１オブジェクト制御部は、操作検出部の検出結果に基づいて第１オブジェクトを移動させる。第２オブジェクト制御部は、第１オブジェクト制御部によって移動される第１オブジェクトの移動に従って第２オブジェクトを移動させる。入替部は、操作検出部の検出結果に基づいて第１オブジェクトと第２オブジェクトとを入れ替えることにより、第１オブジェクトを他方の表示領域に表示させ、第２オブジェクトを一方の表示領域に表示させる。
【００２４】
第４の発明においても、第１の発明と同様に、操作性を向上させることができる。
【００２９】
第５の発明は、２つの表示領域を備えるゲーム装置のゲーム制御方法であって、（ａ）プレイヤによる操作を検出し、（ｂ）一方の表示領域に第１オブジェクトを表示するとともに、当該第１オブジェクトとは異なる第２オブジェクトを他方の表示領域に表示し、（ｃ）ステップ（ａ）の検出結果に基づいて第１オブジェクトを移動させ、（ｄ）ステップ（ｃ）によって移動される第１オブジェクトの移動に従って第２オブジェクトを移動させ、そして（ｅ）ステップ（ａ）の検出結果に基づいて第１オブジェクトと第２オブジェクトとを入れ替えることにより、第１オブジェクトを他方の表示領域に表示させ、第２オブジェクトを一方の表示領域に表示させる、ゲーム制御方法である。
【００３０】
第５の発明においても、第１の発明と同様に、操作性を向上させることができる。
【発明の効果】
【００３５】
この発明によれば、２つの表示領域のいずれに表示されていても、プレイヤの操作に応じてオブジェクトを移動させるので、特定の表示領域にオブジェクトを表示させるような制約が無く、操作性を向上させることができる。
【００３６】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００３７】
【図１】図１はこの発明のゲーム装置の外観構成の一実施例を示す図解図である。
【図２】図２は図１に示すゲーム装置を折り畳んだ状態の上面図および左側面図を示す図解図である。
【図３】図３は図１および図２に示すゲーム装置の電気的な構成を示すブロック図である。
【図４】図４は図１に示すゲーム装置の第１ＬＣＤおよび第２ＬＣＤに表示されるゲーム画面の第１の例を示す図解図である。
【図５】図５はこの実施例の仮想ゲームのゲームフィールドを説明するための図解図である。
【図６】図６は図１に示すゲーム装置の第１ＬＣＤおよび第２ＬＣＤに表示されるゲーム画面の第２の例を示す図解図である。
【図７】図７は図１に示すゲーム装置の第１ＬＣＤおよび第２ＬＣＤに表示されるゲーム画面の第３の例を示す図解図である。
【図８】図８は図１に示すゲーム装置の第１ＬＣＤおよび第２ＬＣＤに表示されるゲーム画面の第４の例を示す図解図である。
【図９】図９は図１に示すゲーム装置の第１ＬＣＤおよび第２ＬＣＤに表示されるゲーム画面の第５の例を示す図解図である。
【図１０】図１０は図１に示すゲーム装置の第１ＬＣＤおよび第２ＬＣＤに表示されるゲーム画面の第６の例を示す図解図である。
【図１１】図１１は図３に示すメインメモリのメモリマップの例を示す図解図である。
【図１２】図１２は図３に示すＣＰＵの全体処理を示すフロー図である。
【図１３】図１３は図３に示すＣＰＵの第１オブジェクト制御処理の一部を示すフロー図である。
【図１４】図１４は図３に示すＣＰＵの第１オブジェクト制御処理の他の一部であって、図１３に後続するフロー図である。
【図１５】図１５は図３に示すＣＰＵの第２オブジェクト制御処理の一部を示すフロー図である。
【図１６】図１６は図３に示すＣＰＵの第２オブジェクト制御処理の他の一部であって、図１５に後続するフロー図である。
【図１７】図１７は図３に示すＣＰＵの敵オブジェクト制御処理の一部を示すフロー図である。
【図１８】図１８は図３に示すＣＰＵの敵オブジェクト制御処理の他の一部であって、図１７に後続するフロー図である。
【図１９】図１９は図３に示すＣＰＵの第３オブジェクト制御処理を示すフロー図である。
【発明を実施するための形態】
【００３８】
図１を参照して、この発明の一実施例であるゲーム装置１０は、上側ハウジング１２および下側ハウジング１４を含み、上側ハウジング１２と下側ハウジング１４とは、開閉可能（折り畳み可能）に連結されている。図１の例では、上側ハウジング１２および下側ハウジング１４は、それぞれ横長の長方形の板状に形成され、互いの長辺部分で回動可能に連結されている。つまり、この実施例のゲーム装置１０は、折り畳み型の携帯ゲーム装置であり、図１には、当該ゲーム装置１０を開いた状態（開状態）で示してある。ゲーム装置１０は、開いた状態においてもユーザが両手または片手で把持することができるようなサイズで構成される。
【００３９】
通常、ユーザは、開状態でゲーム装置１０を使用する。また、ユーザは、ゲーム装置１０を使用しない場合には閉状態で保管する。ただし、ゲーム装置１０は、上記閉状態および開状態のみでなく、上側ハウジング１２と下側ハウジング１４とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング１２を下側ハウジング１４に対して任意の角度で静止させることができる。
【００４０】
なお、ゲーム装置１０は、後述するカメラ（３２，３４）を搭載しており、当該カメラ（３２，３４）によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりする撮像装置としても機能する。
【００４１】
図１に示すように、上側ハウジング１２には第１ＬＣＤ１６が設けられ、下側ハウジング１４には第２ＬＣＤ１８が設けられる。第１ＬＣＤ１６および第２ＬＣＤ１８は、横長形状であり、それぞれの長辺方向が上側ハウジング１２および下側ハウジング１４の長辺方向と一致するように配置される。たとえば、第１ＬＣＤ１６および第２ＬＣＤ１８の解像度は、２５６(横)×１９２(縦）画素（ドット）に設定される。
【００４２】
なお、この実施例では、表示器としてＬＣＤを用いるようにしてあるが、ＬＣＤに代えて、ＥＬ(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。また、ゲーム装置１０は、任意の解像度の表示装置を利用することができる。
【００４３】
図１および図２に示すように、下側ハウジング１４には、入力装置として、各操作ボタン２０ａ−２０ｋが設けられる。この各操作ボタン２０ａ−２０ｋのうち、方向入力ボタン２０ａ、操作ボタン２０ｂ、操作ボタン２０ｃ、操作ボタン２０ｄ、操作ボタン２０ｅ、電源ボタン２０ｆ、スタートボタン２０ｇ、およびセレクトボタン２０ｈは、下側ハウジング１４の第２ＬＣＤ１８が設けられる側の面（内側の面）に配置される。具体的には、方向入力ボタン２０ａおよび電源ボタン２０ｆは、第２ＬＣＤ１８の左側に配置され、操作ボタン２０ｂ−２０ｅ，２０ｇおよび２０ｈは、第２ＬＣＤ１８の右側に配置される。また、上側ハウジング１２と下側ハウジング１４とを折り畳んだときには、操作ボタン２０ａ−２０ｈはゲーム装置１０の内部に収められる。
【００４４】
方向入力ボタン（十字キー）２０ａは、ディジタルジョイスティックとして機能し、プレイヤオブジェクトの移動方向を指示したり、カーソルを移動させたりするなどに用いられる。各操作ボタン２０ｂ−２０ｅは、プッシュボタンであり、たとえば、プレイヤオブジェクトに任意の動作をさせたり、決定やキャンセルを実行したりする等に用いられる。電源ボタン２０ｆは、プッシュボタンであり、ゲーム装置１０の主電源をオン／オフするために用いられる。スタートボタン２０ｇは、プッシュボタンであり、ゲームを中断（ポーズ）したり、開始（再開）したりするために用いられる。セレクトボタン２０ｈは、プッシュボタンであり、ゲームモードやメニューの選択等に用いられる。
【００４５】
図１においては、操作ボタン２０ｉ−２０ｋを省略したが、図２（Ａ）に示すように、操作ボタン（Ｌボタン）２０ｉは、下側ハウジング１４の上側面の左端部に設けられ、操作ボタン（Ｒボタン）２０ｊは、下側ハウジング１４の上側面の右端部に設けられる。また、図２（Ｂ）に示すように、音量ボタン２０ｋは、下側ハウジング１４の左側面に設けられる。
【００４６】
なお、図２（Ａ）は、ゲーム装置１０を折り畳んだ状態で、上面（上ハウジング１２）側から見た図であり、図２（Ｂ）は、同じくゲーム装置１０を折り畳んだ状態で、左側面から見た図である。
【００４７】
Ｌボタン２０ｉおよびＲボタン２０ｊは、プッシュボタンであり、操作ボタン２０ｂ−２０ｅと同様の操作に用いたり、それらの操作ボタン２０ｂ−２０ｅの補助的な操作に用いたりすることができる。音量ボタン２０ｋは、２つのプッシュボタンを用いて構成され、図示しない２つのスピーカ（右スピーカおよび左スピーカ）から出力される音の大きさを調整するために用いられる。この実施例では、音量ボタン２０ｋには、２つの押圧部を含む操作部が設けられ、各押圧部に対応して上記のプッシュボタンが設けられる。したがって、一方の押圧部を押すと音量が大きくされ、他方の押圧部を押すと音量が小さくされる。たとえば、押圧部を押し続けると、音量が次第に大きくされたり、次第に小さくされたりする。
【００４８】
図１に戻って、ゲーム装置１０は、操作ボタン２０ａ−２０ｋとは別の入力装置として、さらにタッチパネル２２を備えている。タッチパネル２２は、第２ＬＣＤ１８の画面上を覆うように装着されている。この実施例では、タッチパネル２２は、たとえば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル２２は、抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。また、この実施例では、タッチパネル２２として、たとえば第２ＬＣＤ１８の解像度と同解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル２２の解像度と第２ＬＣＤ１８の解像度とが一致している必要はない。
【００４９】
また、下側ハウジング１４の右側面には、挿入口（図１に示す破線）が設けられている。挿入口は、タッチパネル２２に対する操作を行うために用いられるタッチペン２４を収納することができる。通常、タッチパネル２２に対する入力は、タッチペン２４を用いて行われるが、タッチペン２４に限らずユーザの指でタッチパネル２２を操作することも可能である。したがって、たとえば、タッチペン２４を用いない場合には、タッチペン２４の挿入口および収納部を設ける必要はない。
【００５０】
また、下側ハウジング１４の右側面には、メモリカード２６を収納するための挿入口（図１では、二点鎖線で示している）が設けられている。この挿入口の内側には、ゲーム装置１０とメモリカード２６とを電気的に接続するためのコネクタ（図示せず）が設けられる。メモリカード２６は、たとえばＳＤカードであり、コネクタに着脱自在に装着される。このメモリカード２６は、たとえば、ゲーム装置１０によって撮像された画像を記憶（保存）したり、他の装置で生成（撮像）ないし記憶された画像をゲーム装置１０に読み込んだりするために用いられる。
【００５１】
さらに、下側ハウジング１４の上側面には、メモリカード２８を収納するための挿入口（図１では、一点鎖線で示している）が設けられている。この挿入口の内側にも、ゲーム装置１０とメモリカード２８とを電気的に接続するためのコネクタ（図示せず）が設けられる。メモリカード２８は、ゲームプログラムなどの情報処理プログラムおよび必要なデータなどを記録した記録媒体であり、下側ハウジング１４に設けられた挿入口に着脱自在に装着される。
【００５２】
また、上側ハウジング１２と下側ハウジング１４との連結部（ヒンジ）の左端部分には、インジケータ３０が設けられる。このインジケータ３０は、３つのＬＥＤ３０ａ，３０ｂ，３０ｃによって構成される。ここで、ゲーム装置１０は、他の機器との間で無線通信を行うことが可能であり、第１ＬＥＤ３０ａは、無線通信が確立している場合に点灯する。第２ＬＥＤ３０ｂは、ゲーム装置１０の充電中に点灯する。第３ＬＥＤ３０ｃは、ゲーム装置１０の主電源がオンである場合に点灯する。したがって、インジケータ３０（ＬＥＤ３０ａ−３０ｃ）によって、ゲーム装置１０の通信確立状況、充電状況、および主電源のオン／オフ状況をユーザに通知することができる。
【００５３】
上述したように、上側ハウジング１２には、第１ＬＣＤ１６が設けられる。この実施例では、第２ＬＣＤ１８を覆うように、タッチパネル２２を設けているが、第１ＬＣＤ１６を覆うように、タッチパネル２２を設けてもよい。または、第１ＬＣＤ１６および第２ＬＣＤ１８のそれぞれを覆うように、２つのタッチパネル２２を設けるようにしてもよい。
【００５４】
また、上側ハウジング１２には、２つのカメラ（内側カメラ３２および外側カメラ３４）が設けられる。図１に示すように、内側カメラ３２は、上側ハウジング１２と下側ハウジング１４との連結部付近であり、第１ＬＣＤ１６が設けられる側の面に、この第１ＬＣＤ１６の表示面とその撮影面とが平行または面一になるように取り付けられる。一方、外側カメラ３４は、図２（Ａ）に示すように、内側カメラ３２が取り付けられる面とは反対側の面、すなわち、上側ハウジング１２の外側の面（ゲーム装置１０が閉状態となった場合に外側となる面であり、図１に示す上側ハウジング１２の背面）に取り付けられる。ただし、図１においては、外側カメラ３４を破線で示してある。
【００５５】
したがって、内側カメラ３２は、上側ハウジング１２の内側の面が向く方向を撮像することが可能であり、外側カメラ３４は、内側カメラ３２の撮像方向の逆方向、すなわち、上側ハウジング１２の外側の面が向く方向を撮像することが可能である。このように、この実施例では、内側カメラ３２および外側カメラ３４の撮像方向が互いに逆方向となるように、それら２つのカメラ３２，３４が設けられる。たとえば、ゲーム装置１０を把持したユーザは、このゲーム装置１０側からユーザの方を見た景色（たとえば、当該ユーザを含む）を内側カメラ３２で撮像することができるとともに、ゲーム装置１０側からユーザとは反対側の方向を見た景色（たとえば、他のユーザを含む）を外側カメラ３４で撮像することができる。
【００５６】
なお、上記連結部付近の内側の面には、音声入力装置としてマイク８４（図３参照）が収納されている。そして、上記連結部付近の内側の面には、マイク８４がゲーム装置１０外部の音を検知できるように、そのマイク８４用の孔３６が形成される。マイク８４を収納する位置およびマイク８４用の孔３６の位置は必ずしも上記連結部である必要はなく、たとえば下側ハウジング１４にマイク８４を収納し、マイク８４の収納位置に対応させて下側ハウジング１４にマイク８４用の孔３６を設けるようにしてもよい。
【００５７】
また、上側ハウジング１２の外側の面には、外側カメラ３４の近傍に第４ＬＥＤ３８（図１では、破線で示す）が取り付けられる。第４ＬＥＤ３８は、内側カメラ３２または外側カメラ３４によって撮影が行われた（シャッターボタンが押下された）時点で点灯する。また、内側カメラ３２または外側カメラ３４によって動画が撮影される場合には、第４ＬＥＤ３８は、撮影の間点灯し続ける。つまり、第４ＬＥＤ３８を点灯することによって、ゲーム装置１０による撮影が行われた（行われている）ことを撮影対象者や周囲に通知することができる。
【００５８】
また、上側ハウジング１２には、第１ＬＣＤ１６の両側に、音抜き孔４０が形成される。この音抜き孔４０に対応する位置であり、上側ハウジング１２の内部には、上述したスピーカが収納されている。音抜き孔４０は、スピーカからの音をゲーム装置１０の外部に放出するための孔である。
【００５９】
以上に説明したように、上側ハウジング１２には、画像を撮像するための構成である内側カメラ３２および外側カメラ３４と、主として、撮影された画像（撮影画像）およびゲーム画面を表示するための表示手段である第１ＬＣＤ１６とが設けられる。一方、下側ハウジング１４には、ゲーム装置１０に対する操作入力を行うための入力装置（操作ボタン２０（２０ａ−２０ｋ）およびタッチパネル２２）と、主として、操作画面およびゲーム画面を表示するための表示手段である第２ＬＣＤ１８とが設けられる。したがって、ゲーム装置１０は、２つの画面（１６，１８）および２系統の操作部（２０，２２）を備えている。
【００６０】
図３は、この実施例のゲーム装置１０の電気的な構成を示すブロック図である。図３に示すように、ゲーム装置１０は、ＣＰＵ５０、メインメモリ５２、メモリ制御回路５４、保存用データメモリ５６、プリセットデータ用メモリ５８、メモリカードインターフェース（メモリカードＩ／Ｆ）６０、メモリカードＩ／Ｆ６２、無線通信モジュール６４、ローカル通信モジュール６６、リアルタイムクロック（ＲＴＣ）６８、電源回路７０、およびインターフェース回路（Ｉ／Ｆ回路）７２、第１ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）７４、第２ＧＰＵ７６、第１ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）７８、第２ＶＲＡＭ８０、およびＬＣＤコントローラ８２等の電子部品を備えている。これらの電子部品（回路コンポーネント）は、電子回路基板上に実装されて、下側ハウジング１４（または上側ハウジング１２でもよい）内に収納される。
【００６１】
ＣＰＵ５０は、所定のプログラムを実行するための情報処理手段である。この実施例では、所定のプログラムは、ゲーム装置１０内のメモリ（たとえば保存用データメモリ５６）やメモリカード２６および／または２８に記憶されており、ＣＰＵ５０は、当該所定のプログラムを実行することによって、後述する情報処理（ゲーム処理）を実行する。
【００６２】
なお、ＣＰＵ５０によって実行されるプログラムは、ゲーム装置１０内のメモリに予め記憶していてもよいし、メモリカード２６および／または２８から取得してもよいし、他の機器と通信することによって当該他の機器から取得してもよい。
【００６３】
ＣＰＵ５０には、メインメモリ５２、メモリ制御回路５４、およびプリセットデータ用メモリ５８が接続される。また、メモリ制御回路５４には、保存用データメモリ５６が接続される。メインメモリ５２は、ＣＰＵ５０のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ５２は、上記情報処理に用いられる各種データを記憶（一時記憶）したり、外部（メモリカード２６および２８や他の機器等）から取得されるプログラムを記憶したりする。この実施例では、メインメモリ５２として、たとえばＰＳＲＡＭ（Ｐｓｅｕｄｏ−ＳＲＡＭ）を用いる。保存用データメモリ５６は、ＣＰＵ５０によって実行されるプログラムや内側カメラ３２および外側カメラ３４によって撮像された画像のデータ等を記憶（保存）するための記憶手段である。この保存用データメモリ５６は、不揮発性の記憶媒体によって構成されており、たとえば、ＮＡＮＤ型フラッシュメモリを用いることができる。メモリ制御回路５４は、ＣＰＵ５０の指示に従って、保存用データメモリ５６に対するデータの読み出しおよび書き込みを制御する。プリセットデータ用メモリ５８は、ゲーム装置１０において予め設定される各種パラメータ等のデータ（プリセットデータ）を記憶するための記憶手段である。プリセットデータ用メモリ５８としては、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）バスによってＣＰＵ５０と接続されるフラッシュメモリを用いることができる。
【００６４】
メモリカードＩ／Ｆ６０および６２は、それぞれＣＰＵ５０に接続される。メモリカードＩ／Ｆ６０は、コネクタに装着されたメモリカード２６に対するデータの読み出しおよび書き込みを、ＣＰＵ５０の指示に応じて行う。また、メモリカードＩ／Ｆ６２は、コネクタに装着されたメモリカード２８に対するデータの読み出しおよび書き込みを、ＣＰＵ５０の指示に応じて行う。この実施例では、内側カメラ３２および外側カメラ３４によって撮像された画像に対応する画像データや他の装置から受信された画像データがメモリカード２６に書き込まれたり、メモリカード２６に記憶された画像データがメモリカード２６から読み出されて保存用データメモリ５６に記憶されたり、他の装置へ送信されたりする。また、メモリカード２８に記憶された各種プログラムが、ＣＰＵ５０によって読み出されて実行されたりする。
【００６５】
なお、ゲームプログラムなどの情報処理プログラムは、メモリカード２８等の外部記憶媒体を通じてゲーム装置１０に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置１０に供給されてもよい。また、情報処理プログラムは、ゲーム装置１０内部の不揮発性記憶装置に予め記録されていてもよい。さらに、情報処理プログラムを記憶する情報記憶媒体としては、上記不揮発性記憶装置に限らず、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
【００６６】
無線通信モジュール６４は、たとえばＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、ローカル通信モジュール６６は、所定の通信方式により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール６４およびローカル通信モジュール６６は、ＣＰＵ５０に接続される。ＣＰＵ５０は、無線通信モジュール６４を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール６６を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【００６７】
また、ＣＰＵ５０には、ＲＴＣ６８および電源回路７０が接続される。ＲＴＣ６８は、時間をカウントしてＣＰＵ５０に出力する。たとえば、ＣＰＵ５０は、ＲＴＣ６８によって計時された時間に基づいて、日付および現在時刻等を計算することもできる。電源回路７０は、ゲーム装置１０が有する電源（典型的には電池であり、下側ハウジング１４に収納される）から供給される電力を制御し、ゲーム装置１０の各回路コンポーネントに電力を供給する。
【００６８】
また、ゲーム装置１０は、マイク８４およびアンプ８６を備えている。マイク８４およびアンプ８６は、それぞれＩ／Ｆ回路７２に接続される。マイク８４は、ゲーム装置１０に向かって発声ないし発生されたユーザの音声ないし音（拍手や手拍子など）を検知して、当該音声ないし音を示す音声信号をＩ／Ｆ回路７２に出力する。アンプ８６は、Ｉ／Ｆ回路７２から与えられる音声信号を増幅してスピーカ（図示せず）に与える。Ｉ／Ｆ回路７２は、ＣＰＵ５０に接続される。
【００６９】
また、タッチパネル２２は、Ｉ／Ｆ回路７２に接続される。Ｉ／Ｆ回路７２は、マイク８４およびアンプ８６（スピーカ）の制御を行う音声制御回路と、タッチパネル２２の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル２２からの信号に基づいて所定の形式のタッチ位置データを生成してＣＰＵ５０に出力する。たとえば、タッチ位置データは、タッチパネル２２の入力面に対して入力が行われた位置（タッチ位置）の座標を示すデータである。
【００７０】
なお、タッチパネル制御回路は、タッチパネル２２からの信号の読み込み、および、タッチ位置データの生成を所定時間に１回の割合で行う。ＣＰＵ５０は、Ｉ／Ｆ回路７２を介して、タッチ位置データを取得することにより、タッチパネル２２に対して入力が行われた位置を知ることができる。
【００７１】
操作ボタン２０は、上記の各操作ボタン２０ａ−２０ｋによって構成され、ＣＰＵ５０に接続される。操作ボタン２０からＣＰＵ５０へは、各操作ボタン２０ａ−２０ｋに対する入力状況（押下されたか否か）を示す操作データが出力される。ＣＰＵ５０は、操作ボタン２０からの操作データを取得し、取得した操作データに応じた処理を実行する。
【００７２】
内側カメラ３２および外側カメラ３４は、それぞれＣＰＵ５０に接続される。内側カメラ３２および外側カメラ３４は、ＣＰＵ５０の指示に応じて画像を撮像し、撮像した画像に対応する画像データをＣＰＵ５０に出力する。この実施例では、ＣＰＵ５０は、内側カメラ３２および外側カメラ３４のいずれか一方に対して撮像指示を行い、撮像指示を受けたカメラ（３２，３４）が画像を撮像して画像データをＣＰＵ５０に送る。
【００７３】
第１ＧＰＵ７４には、第１ＶＲＡＭ７８が接続され、第２ＧＰＵ７６には、第２ＶＲＡＭ８０が接続される。第１ＧＰＵ７４は、ＣＰＵ５０からの指示に応じて、メインメモリ５２に記憶されている表示画像を生成するためのデータに基づいて第１の表示画像を生成し、第１ＶＲＡＭ７８に描画する。第２ＧＰＵ７６は、同様にＣＰＵ５０からの指示に応じて第２の表示画像を生成し、第２ＶＲＡＭ８０に描画する。第１ＶＲＡＭ７８および第２ＶＲＡＭ８０は、ＬＣＤコントローラ８２に接続されている。
【００７４】
ＬＣＤコントローラ８２は、レジスタ８２ａを含む。レジスタ８２ａは、ＣＰＵ５０からの指示に応じて、「０」または「１」の値を記憶する。ＬＣＤコントローラ８２は、レジスタ８２ａの値が「０」である場合には、第１ＶＲＡＭ７８に描画された第１の表示画像を第２ＬＣＤ１８に出力し、第２ＶＲＡＭ８０に描画された第２の表示画像を第１ＬＣＤ１６に出力する。また、レジスタ８２ａの値が「１」である場合には、第１ＶＲＡＭ７８に描画された第１の表示画像を第１ＬＣＤ１６に出力し、第２ＶＲＡＭ８０に描画された第２の表示画像を第２ＬＣＤ１８に出力する。
【００７５】
図４には、上述したようなゲーム装置１０で実行される仮想ゲームのゲーム画面１００の一例が表示される。図４に示すように、ゲーム画面１００は、下画面１０２と上画面１０４とによって構成される。下画面１０２は、第２ＬＣＤ１８に表示され、上画面１０４は、第１ＬＣＤ１６に表示される。図示は省略するが、上述したように、第２ＬＣＤ１８（下画面１０２）上には、タッチパネル２２が設けられる。
【００７６】
下画面１０２には、ブラックホールを模した第１プレイヤオブジェクト１１０および地球を模した地球オブジェクト１１２が表示される。ただし、地球オブジェクト１１２は、後述する上画面１０４にも表示されるが、これらは１つのオブジェクトである。また、第１プレイヤオブジェクト１１０と第２プレイヤオブジェクト１１４とを結ぶ線（点線）１２０が、下画面１０２および上画面１０４に表示される。さらに、下画面１０２には、隕石を模した敵オブジェクト１１６が表示される。ただし、敵オブジェクト１１６は、下画面１０２のみならず、上画面１０４に表示される場合があり、下画面１０２および上画面１０４の両方に表示される場合もある。
【００７７】
上画面１０４には、上述した地球オブジェクト１１２およびホワイトホールを模した第２プレイヤオブジェクト１１４が表示される。また、上画面１０４には、第２プレイヤオブジェクト１１４の近傍に、方向を示すための画像（方向表示画像）１２２が表示される。
【００７８】
たとえば、仮想ゲームでは、敵オブジェクト１１６は、予め決定されたタイムラインに従って、ゲーム画面１００（図５に示すゲームフィールド２００）の外周付近で出現（発生）し、地球オブジェクト１１２の引力によって、当該地球オブジェクト１１２に引き寄せられる。つまり、敵オブジェクト１１６は、地球オブジェクト１１２に向けて移動される。この実施例では、敵オブジェクト１１６は、地球オブジェクト１１２の中心に向けて速度ｖｅで移動される。ただし、速度ｖｅは、地球オブジェクト１１２との距離に応じて変化されたり、ゲームレベルなどに応じて変化されたりする。このことは、後述するように、敵オブジェクト１１６が第１プレイヤオブジェクト１１０に向けて移動される場合も同じであるが、速度ｖｅの値は異なる値が設定されてもよい。所定数（この実施例では、３個）の敵オブジェクト１１６が地球オブジェクト１１２に衝突すると、ゲームオーバとなる。
【００７９】
ただし、タイムラインは、すべての敵オブジェクト１１６のそれぞれに対応して、敵オブジェクト１１６を出現させるタイミング、すなわちゲーム開始からの時間（フレーム数）と、出現させるゲームフィールド２００上の位置（座標）とを記述したテーブルなどである。ただし、フレームは、仮想ゲームの画面更新単位時間（１／６０秒）である。
【００８０】
プレイヤは、タッチパネル２２（操作ボタン２０でも可）を操作して、第１プレイヤオブジェクト１１０および第２プレイヤオブジェクト１１４の移動を制御する。そして、第１プレイヤオブジェクト１１０に敵オブジェクト１１６を吸い込ませたり、吸い込んだ敵オブジェクト１１６に基づいて生成される第３プレイヤオブジェクト１１８（図６参照）を敵オブジェクト１１６に衝突させて破壊したりして、敵オブジェクト１１６を消滅させる。所定数の敵オブジェクト１１６が地球オブジェクト１１２に衝突する前に、すべての敵オブジェクト１１６を消滅させると、ゲームクリアとなる。ただし、敵オブジェクト１１６の総数は、仮想ゲームの面（ステージ）やレベルに応じて、上述のタイムラインで予め決定されている。
【００８１】
この実施例では、第１プレイヤオブジェクト１１０は、敵オブジェクト１１６を吸い込むことにより、敵オブジェクト１１６をゲームフィールド２００から消滅させる。また、第２プレイヤオブジェクト１１４は、敵オブジェクト１１６を攻撃したり、吸い込んだりすることはできないが、第１プレイヤオブジェクト１１０が敵オブジェクト１１６を吸い込むことに応じて生成されたり、拡大されたりする、第３プレイヤオブジェクト１１８を保持する。第３プレイヤオブジェクト１１８は、敵オブジェクト１１６に衝突することにより、当該敵オブジェクト１１６を破壊（消滅）させる。
【００８２】
たとえば、プレイヤがタッチペン２４をタッチパネル２２に接触させている（タッチオンしている）場合には、第１プレイヤオブジェクト１１０は、吸い込む力を働かせる。詳細な説明は省略するが、第１プレイヤオブジェクト１１０から第１所定距離（この実施例では、３０ドット）以内で吸い込む力が敵オブジェクト１１６に作用し、つまり敵オブジェクト１１６を引き寄せ、第１所定距離よりも短い第２所定距離（この実施例では、２０ドット）以内で敵オブジェクト１１６を吸い込む。ただし、第１所定距離および第２所定距離は、第１プレイヤオブジェクト１１０と敵オブジェクト１１６との中心間の距離である。かかる場合には、上述したように、敵オブジェクト１１６は第１プレイヤオブジェクト１１０に向けて速度ｖｅで移動される。
【００８３】
また、タッチオンしている状態では、第３プレイヤオブジェクト１１８が発生（存在）している場合には、第２プレイヤオブジェクト１１４に保持される。したがって、かかる場合には、第３プレイヤオブジェクト１１８は、第２プレイヤオブジェクト１１４とともに移動する。
【００８４】
一方、プレイヤがタッチペン２４をタッチパネル２２から離した（タッチオフした）場合には、第１プレイヤオブジェクト１１０は、吸い込む力を働かせない。かかる場合には、敵オブジェクト１１６が第１プレイヤオブジェクト１１０から第１所定距離以内に存在しても、当該敵オブジェクト１１６は第１プレイヤオブジェクト１１０に引き寄せられない。同様に、敵オブジェクト１１６が第１プレイヤオブジェクト１１０から第２所定距離以内に存在しても、当該敵オブジェクト１１６は第１プレイヤオブジェクト１１０に吸い込まれない。
【００８５】
また、第３プレイヤオブジェクト１１８が第２プレイヤオブジェクト１１４に保持されている場合に、タッチオフすると、当該第３プレイヤオブジェクト１１８は、第２プレイヤオブジェクト１１４から離れて、方向表示画像１２２が示す方向に速度ｖｐで移動（飛行）する。ただし、速度ｖｐについては後で詳細に説明する。
【００８６】
上述したように、この実施例のゲーム装置１０では、第２ＬＣＤ１８上にのみタッチパネル２２が設けられるため、プレイヤは、このタッチパネル２２を用いた操作（以下、「タッチ操作」ということがある）により、下画面１０２に表示されたプレイヤオブジェクト（図４では、第１プレイヤオブジェクト１１０）をタッチして直接的に移動（ドラッグ）させる。つまり、タッチ位置に追従して、プレイヤオブジェクトが移動される。すると、その移動に従って、上画面１０４に表示されたプレイヤオブジェクト（図４では、第２プレイヤオブジェクト１１４）が移動される。この実施例では、上画面１０４に表示されたプレイヤオブジェクトは、下画面１０２に表示されたプレイヤオブジェクトと点対称に移動される。ただし、点対称の中心（基準）となる点は、地球オブジェクト１１２（ゲームフィールド２００）の中心点Ｐ（図５参照）である。つまり、下画面１０２においてタッチ操作により位置（座標）を指定することにより、上画面１０４においても位置（座標）を指定することができるのである。
【００８７】
なお、図示および詳細な説明は省略するが、プレイヤがタッチペン２４を用いてタッチパネル２２にタッチオンしたときに、タッチ位置にプレイヤオブジェクト（図４では、第１プレイヤオブジェクト１１０）が表示されていない場合には、つまりタッチ位置と下画面１０２に表示されたプレイヤオブジェクトが離れている場合には、当該プレイヤオブジェクトは、タッチ位置に重なるまで、当該タッチ位置の方向に移動される。このとき、一定速度で接近させてもよいし、タッチ位置と第１プレイヤオブジェクト１１０との距離が大きいほど、高速に接近させてもよい。その後、上述したように、タッチ位置に追従して当該プレイヤオブジェクトが移動される。
【００８８】
また、この実施例では、タッチパネル２２として、第２ＬＣＤ１８の解像度と同解像度（検出精度）のものを利用するため、それらの座標系を同じに設定しておくことにより、タッチパネル２２からの座標データが示す座標（タッチ位置）をそのまま第２ＬＣＤ１８に表示される画面（ここでは、下画面１０２）上の座標（位置）として用いることができる。
【００８９】
図５は、この実施例の仮想ゲームのゲーム空間に設けられるゲームフィールド２００を示す。ゲームフィールド２００は、縦長の長方形状の平面である。ゲームフィールド２００のうち、点線で示される２つの四角枠で囲む範囲が、第１ＬＣＤ１６の表示領域（上画面１０４）および第２ＬＣＤ１８の表示領域（下画面１０２）に相当する。また、２つの四角枠の間の領域は、第１ＬＣＤ１６と第２ＬＣＤ１８との間に設けられるヒンジ等が設けられる部分に相当する。
【００９０】
なお、図５に示すゲームフィールド２００は一例であり、少なくとも、点Ｓ、点Ｑ、点Ｒおよび点Ｔを頂点とする長方形と同じまたはそれよりも大きい平面であればよい。
【００９１】
図５に示すように、ゲーム空間の２次元座標系は、横方向がＸ軸方向であり、縦方向がＹ軸方向である。また、右方向がＸ軸のプラス方向であり、下方向がＹ軸のプラス方向である。この実施例では、第２ＬＣＤ１８の左上の頂点に相当する点Ｏが原点（０，０）に設定される。第１ＬＣＤ１６および第２ＬＣＤ１８は、上述したように、縦が１９２ドットで、横が２５６ドットである。したがって、点Ｒの座標は（２５６，１９２）である。また、この実施例では、第１ＬＣＤ１６と第２ＬＣＤ１８との間のヒンジ等が設けられる部分の縦の長さは８０ドットに設定される。したがって、第１ＬＣＤ１６の左上の頂点に相当する点Ｓの座標は（０，−２７２）である。また、第１ＬＣＤ１６の右上の頂点に相当する点Ｔの座標は（２５６，−２７２）である。
【００９２】
この実施例では、地球オブジェクト１１２の位置は、ゲームフィールド２００の中心（中央）に設定される。したがって、地球オブジェクト１１２の中心点Ｐの座標は、（１２８，−４０）である。この中心点Ｐに対して点対称となるように、第１プレイヤオブジェクト１１０および第２プレイヤオブジェクト１１４の位置が制御される。具体的には、下画面１０２に表示されるプレイヤオブジェクト（ここでは、第１プレイヤオブジェクト１１０）の位置（点Ｆ）を（ｘ，ｙ）とすると、上画面１０４に表示されるプレイヤオブジェクト（ここでは、第２プレイヤオブジェクト１１４）の位置（点Ｇ）は、（−ｘ＋１２８，−ｙ−４０）で決定（算出）される。
【００９３】
図６に示すように、第１プレイヤオブジェクト１１０が敵オブジェクト１１６に近づけられ、それらの距離が第２所定距離以内になると、敵オブジェクト１１６は第１プレイヤオブジェクト１１０によって吸い込まれる。これに応じて、第２プレイヤオブジェクト１１４と重なる位置に、第３プレイヤオブジェクト１１８が発生する。上述したように、タッチオンの状態では、第３プレイヤオブジェクト１１８は、第２プレイヤオブジェクト１１４の上に重なった（保持された）ままで、当該第２プレイヤオブジェクト１１４とともに移動される。
【００９４】
なお、第３プレイヤオブジェクト１１８は、第２プレイヤオブジェクト１１４に保持されると、当該第２プレイヤオブジェクト１１４の前面に表示されるため、ゲーム画面１００では、第２プレイヤオブジェクト１１４は背面に隠れてしまう。
【００９５】
第３プレイヤオブジェクト１１８は、敵オブジェクト１１６に衝突すると、当該敵オブジェクト１１６を破壊して、消滅させる。たとえば、図６に示す状態から図７に示すように、第１プレイヤオブジェクト１１０が移動されると、当該第１プレイヤオブジェクト１１０と点対称に第２プレイヤオブジェクト１１４が移動され、第３プレイヤオブジェクト１１８は第２プレイヤオブジェクト１１４とともに移動される。これによって、第３プレイヤオブジェクト１１８を敵オブジェクト１１６に衝突させることができる。
【００９６】
ただし、第１プレイヤオブジェクト１１０は、複数の敵オブジェクト１１６を吸い込むことが可能であり、吸い込んだ敵オブジェクト１１６の数に応じて、段階的に第３プレイヤオブジェクト１１８は大きくされる。つまり、第３プレイヤオブジェクト１１８は、第１プレイヤオブジェクト１１０が敵オブジェクト１１６を吸い込む度に成長し、その大きさが拡大されるのである。
【００９７】
たとえば、図６に示した状態から図８に示すように、地球オブジェクト１１２にさらに接近した敵オブジェクト１１６に第１プレイヤオブジェクト１１０が近づけられ、それらの距離が第２所定距離以内になると、第１プレイヤオブジェクト１１０は当該敵オブジェクト１１６を吸い込む。したがって、第３プレイヤオブジェクト１１８は、１段階大きくされる。
【００９８】
また、図７に示したように、第１プレイヤオブジェクト１１０を移動させることにより、第３プレイヤオブジェクト１１８を敵オブジェクト１１６に衝突させる場合には、第３プレイヤオブジェクト１１８は、敵オブジェクト１１６に衝突する度に、１段階ずつ大きさが小さくなる。つまり、第３プレイヤオブジェクト１１８は、敵オブジェクト１１６に衝突する度に、その衝撃によって縮小される。そして、第３プレイヤオブジェクト１１８は、第１プレイヤオブジェクト１１０が吸い込んだ敵オブジェクト１１６の数と同じ数だけ敵オブジェクト１１６に衝突すると、消滅する。
【００９９】
また、図９に示すように、第３プレイヤオブジェクト１１８が発生（存在）している場合に、プレイヤがタッチオフすると、上述したように、第３プレイヤオブジェクト１１８は、第２プレイヤオブジェクト１１４から離れて、方向表示画像１２２が示す方向に移動（飛行）を開始する。第３プレイヤオブジェクト１１８は、速度ｖｐで真っすぐ飛行し、ゲーム画面１００（ゲーム空間）の外まで移動する。つまり、第３プレイヤオブジェクト１１８は、直線１２２上であり、第１プレイヤオブジェクト１１０から第２プレイヤオブジェクト１１４に向かう方向に、速度ｖｐで飛行する。
【０１００】
第３プレイヤオブジェクト１１８が飛行中に敵オブジェクト１１６に衝突すると、当該敵オブジェクト１１６は破壊される。ただし、この実施例では、第３プレイヤオブジェクト１１８が飛行中に敵オブジェクト１１６に衝突する場合には、当該第３プレイヤオブジェクト１１８の大きさは変化されない。したがって、第３プレイヤオブジェクト１１８は、ゲーム空間内に存在する限り、衝突した敵オブジェクト１１６を破壊する。
【０１０１】
また、第３プレイヤオブジェクト１１８の大きさに応じて、速度ｖｐを変化させるようにしてある。この実施例では、第３プレイヤオブジェクト１１８が大きい程、速度ｖｐを小さくして、破壊力を大きく（持続）させるようにしてある。つまり、第３プレイヤオブジェクト１１８が大きい程、ゲーム空間内に存在する時間を長くしてある。具体的には、数１に従って速度ｖｐが決定される。ただし、ｋは１以上の係数であり、ｖ０は一定速度である。ただし、ｋおよびｖ０は、仮想ゲームの開発者ないしプログラマによって決定される。また、ｎは第３プレイヤオブジェクト１１８の大きさに関する値（大きさの段階を表す数値）である。つまり、ｎは、第３プレイヤオブジェクト１１８を生成（発生・拡大）するために、吸い込んだ敵オブジェクト１１６の数に相当する。
【０１０２】
［数１］
ｖｐ＝ｋ×ｖ０／ｎ
なお、この実施例では、第３プレイヤオブジェクト１１８が大きい程、速度ｖｐを小さくするようにしてあるが、速度ｖｐを大きくするようにしてもよい。
【０１０３】
また、プレイヤがタッチペン２４を用いてタッチパネル２２上において、上方向に弾く操作を行うと、第１プレイヤオブジェクト１１０と第２プレイヤオブジェクト１１４とを入れ替えることができる。たとえば、図４に示したような位置関係で、プレイヤが上方向に弾く操作をすると、図１０に示すように、第１プレイヤオブジェクト１１０が上画面１０４に表示され、第２プレイヤオブジェクト１１４が下画面１０２に表示される。ただし、第１プレイヤオブジェクト１１０および第２プレイヤオブジェクト１１４は、入れ替え前の他方の位置に表示される。
【０１０４】
なお、上方向に弾く操作を行う場合には、下画面１０２に表示されたプレイヤオブジェクト（図４では、第１プレイヤオブジェクト１１０）を弾くように操作する必要はなく、下画面１０２のいずれかの場所で弾く操作を行えばよい。
【０１０５】
また、図１０に示すように、下画面１０２に第２プレイヤオブジェクト１１４が存在し、上画面１０４に第１プレイヤオブジェクト１１０が存在する状態において、上方向（第１ＬＣＤ１６側）に弾く操作を行うと、第１プレイヤオブジェクト１１０と第２プレイヤオブジェクト１１４とが入れ替わる。つまり、図４に示したような位置関係となる。
【０１０６】
ただし、上方向に弾いたかどうかは、タッチ位置のＹ軸方向の座標の変化が所定時間内に第３所定距離以上であるかどうかで判断される。この実施例では、１フレームの間に、タッチ位置のＹ座標がマイナス方向に３ドット以上変化した場合に、上方向（第１ＬＣＤ１６側）に弾いたと判断するようにしてある。
【０１０７】
このように、第１プレイヤオブジェクト１１０と第２プレイヤオブジェクト１１４とを入れ替えるのは、上述したように、第１プレイヤオブジェクト１１０と第２プレイヤオブジェクト１１４とでは機能（役割）が異なるからである。たとえば、上画面１０４に敵オブジェクト１１６が存在する場合に、第２プレイヤオブジェクト１１４が上画面１０４に存在しても、第３プレイヤオブジェクト１１８が発生していなければ、敵オブジェクト１１６を消滅させることができない。かかる場合には、図１０に示すように、上画面１０４に第１プレイヤオブジェクト１１０を移動させて、第１プレイヤオブジェクト１１０に敵オブジェクト１１６を吸い込ませる必要があるからである。
【０１０８】
ただし、上画面１０４に存在する第１プレイヤオブジェクト１１０は、下画面１０２に存在する第２プレイヤオブジェクト１１４を移動させることにより、当該第２プレイヤオブジェクト１１４と点対称に移動される。つまり、かかる場合には、図５を用いて説明したように、第１プレイヤオブジェクト１１０の位置が、第２プレイヤオブジェクト１１４の位置に基づいて決定（算出）される。
【０１０９】
また、図示は省略するが、上画面１０４で第１プレイヤオブジェクト１１０が敵オブジェクト１１６を吸い込んだ場合にも、下画面１０２の第２プレイヤオブジェクト１１４の位置において、第３プレイヤオブジェクト１１８が発生されたり、拡大されたりする。また、タッチオンの状態では、下画面１０２において、第３プレイヤオブジェクト１１８は、タッチ位置に追従し、タッチオフされると、方向指示画像１２２が示す方向に飛行する。したがって、下画面１０２において、第３プレイヤオブジェクト１１８を敵オブジェクト１１６に衝突させることにより、当該敵オブジェクト１１６を破壊して、消滅されることができる。
【０１１０】
図１１は、図３に示したメインメモリ５２のメモリマップの例を示す図解図である。図１１に示すように、メインメモリ５２は、プログラム記憶領域９０およびデータ記憶領域９２を含む。プログラム記憶領域９０には、ゲームプログラムが記憶され、ゲームプログラムは、メイン処理プログラム９０ａ、画像生成プログラム９０ｂ、画像表示プログラム９０ｃ、敵オブジェクト制御プログラム９０ｄ、第１オブジェクト制御プログラム９０ｅ、第２オブジェクト制御プログラム９０ｆおよび第３オブジェクト制御プログラム９０ｇなどで構成される。
【０１１１】
メイン処理プログラム９０ａは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム９０ｂは、後述する画像データ９２ｂを用いて、各種画面（ゲーム画面１００など）についての表示画像のデータ（表示画像データ）を生成するためのプログラムである。画像表示プログラム９０ｃは、画像生成プログラム９０ｂに従って生成された表示画像データを第１ＬＣＤ１６および第２ＬＣＤ１８に表示するためのプログラムである。
【０１１２】
敵オブジェクト制御プログラム９０ｄは、予め決定されたタイムラインに従って敵オブジェクト１０６を出現させるとともに、第１プレイヤオブジェクト１１０または地球オブジェクト１１２に向けて速度ｖｅで移動させるプログラムである。また、敵オブジェクト制御プログラム９０ｄは、敵オブジェクト１１６が、第１プレイヤオブジェクト１１０に吸収されたり、地球オブジェクト１１２または第３プレイヤオブジェクト１１８に衝突されたりすると、当該敵オブジェクト１１６を消滅させるためのプログラムである。
【０１１３】
第１オブジェクト制御プログラム９０ｅは、プレイヤの操作に基づいて第１プレイヤオブジェクト１１０を移動させたり、吸い込む力を働かせたり、吸い込む力を働かせなかったりするためのプログラムである。具体的には、第１オブジェクト制御プログラム９０ｅは、下画面１０２で、第１プレイヤオブジェクト１１０を、タッチ位置に追従させたり、タッチ移動に向けて移動させたりする。また、第１オブジェクト制御プログラム９０ｅは、上画面１０４において、下画面１０２に表示される第２プレイヤオブジェクト１１４の移動に従って、中心点Ｐを中心として点対称に第１プレイヤオブジェクト１１０を移動させる。つまり、第１オブジェクト制御プログラム９０ｅに従って、後述する第１オブジェクト位置データ９２ｃが更新される。また、第１オブジェクト制御プログラム９０ｅは、タッチオンされている場合に、吸い込む力を働かせ、第１所定距離以内に存在する敵オブジェクト１１６に吸い込む力を作用させるとともに、さらに第２所定距離以内に存在する敵オブジェクト１１６を吸い込む。
【０１１４】
第２オブジェクト制御プログラム９０ｆは、プレイヤの操作に基づいて第２プレイヤオブジェクト１１４を移動させるためのプログラムである。具体的には、第２オブジェクト制御プログラム９０ｆは、下画面１０２で、第２プレイヤオブジェクト１１４を、タッチ位置に追従させたり、タッチ移動に向けて移動させたりする。また、第２オブジェクト制御プログラム９０ｆは、上画面１０４において、下画面１０２に表示される第１プレイヤオブジェクト１１０の移動に従って、中心点Ｐを中心として点対称に第２プレイヤオブジェクト１１４を移動させる。つまり、第２オブジェクト制御プログラム９０ｆに従って、後述する第２オブジェクト位置データ９２ｄが更新される。
【０１１５】
第３オブジェクト制御プログラム９０ｇは、第３プレイヤオブジェクト１１８を、発生させたり、拡大させたり、第２プレイヤオブジェクト１１４に保持させたり、ゲーム空間内を移動（飛行）させたりするためのプログラムである。具体的には、第３オブジェクト制御プログラム９０ｇは、敵オブジェクト１１６が第１プレイヤオブジェクト１１０に吸い込まれた場合に、第３プレイヤオブジェクト１１８を発生させたり、拡大させたりする。また、第３オブジェクト制御プログラム９０ｇは、タッチオンの状態では、第３プレイヤオブジェクト１１８を第２プレイヤオブジェクト１１４の上に表示し、タッチオフされると、方向表示画像１２２が示す方向に速度ｖｐで、第３プレイヤオブジェクト１１８を移動（飛行）させる。
【０１１６】
図示は省略するが、ゲームプログラムには、音出力プログラムやバックアッププログラムなども含まれる。音出力プログラムは、図示しない音データを用いて、仮想ゲームに必要な音（効果音、メロディ、音楽）を生成および出力するためのプログラムである。バックアッププログラムは、所定のイベントやプレイヤからの指示に従って、ゲームデータ（途中データ、結果データ）を、メモリカード２６、２８や保存用データメモリ５６に保存（セーブ）するためのプログラムである。
【０１１７】
データ記憶領域９２には、操作データバッファ９２ａが設けられる。また、データ記憶領域９２には、画像データ９２ｂ、第１オブジェクト位置データ９２ｃ、第２オブジェクト位置データ９２ｄ、第３オブジェクト大きさデータ９２ｅおよび衝突回数データ９２ｆが記憶される。
【０１１８】
操作データバッファ９２ａは、操作ボタン２０からの操作データやタッチパネル２２からの座標データを時系列に従って記憶（一時記憶）するためのバッファである。操作データバッファ９２ａに一時記憶された操作データや座標データは、ＣＰＵ５０の処理に用いられた後に消去される。
【０１１９】
画像データ９２ｂは、ポリゴンデータやテクスチャデータなどの画像データである。第１オブジェクト位置データ９２ｃは、第１プレイヤオブジェクト１１０の現在位置のデータ（座標データ）である。第２オブジェクト位置データ９２ｄは、第２プレイヤオブジェクト１１４の現在位置のデータ（座標データ）である。ただし、第２オブジェクト位置データ９２ｄは、第３プレイヤオブジェクト１１８の現在位置を示すこともある。
【０１２０】
第３オブジェクト大きさデータ９２ｅは、第３プレイヤオブジェクト１１８の大きさに関する値についてのデータである。具体的には、第３オブジェクト大きさデータ９２ｅは、第３プレイヤオブジェクト１１８を発生および拡大するために、第１プレイヤオブジェクト１１０が吸い込んだ敵オブジェクト１１６の数についての数値データである。衝突回数データ９２ｆは、敵オブジェクト１１６が地球オブジェクト１１２に衝突した回数（または個数）を示す数値データである。
【０１２１】
なお、図示は省略するが、データ記憶領域９２には、仮想ゲームに必要な、他のデータが記憶されたり、フラグやカウンタ（タイマ）が設けられたりする。
【０１２２】
図１２は、図３に示したＣＰＵ５０の全体処理を示すフロー図である。図１２に示すように、ＣＰＵ５０は、全体処理を開始すると、ステップＳ１で、ゲーム開始画面を表示する。図示は省略したが、ステップＳ１では、ＣＰＵ５０は、敵オブジェクト１１６が出現されておらず、中央に地球オブジェクト１１２が表示され、下画面１０２の所定位置に第１プレイヤオブジェクト１１０が表示され、これと点対称となる上画面１０４の位置に第２プレイヤオブジェクト１１４が表示されたゲーム画面（ゲーム開始画面）を表示する。ただし、第１プレイヤオブジェクト１１０が上画面１０４に表示され、第２プレイヤオブジェクト１１４が下画面１０２に表示されてもよい。
【０１２３】
続くステップＳ３では、敵オブジェクトの出現処理を実行する。ここでは、予め決定されているタイムラインに従って、敵オブジェクト１１６がゲーム空間（ゲームフィールド２００）に出現される。敵オブジェクト１１６が出現されると、当該敵オブジェクト１１６についての敵オブジェクト処理（図１７および図１８参照）が、全体処理とは異なるタスクで実行される。
【０１２４】
次のステップＳ５では、操作データを読み込む。ただし、操作データおよび座標データは、図示しない別の処理で検出され、検出された操作データおよび座標データは、時系列に従う順番で、操作データバッファ９２ａに記憶される。続いて、ステップＳ７で、後述する第１オブジェクト制御処理（図１３および図１４参照）を実行し、ステップＳ９で、後述する第２オブジェクト制御処理（図１５および図１６参照）を実行して、ステップＳ１１に進む。
【０１２５】
ステップＳ１１では、すべての敵オブジェクト１１６が消滅したかどうかを判断する。つまり、ＣＰＵ５０は、第１プレイヤオブジェクト１１０が敵オブジェクト１１６を吸い込んだり、第３プレイヤオブジェクト１１８が敵オブジェクト１１６を破壊したりして、タイムラインで決定されたすべての敵オブジェクト１１６を消滅させたかどうかを判断する。
【０１２６】
ステップＳ１１で“ＹＥＳ”であれば、つまりすべての敵オブジェクト１１６が消滅すれば、ステップＳ１３で、ゲームクリア処理を実行して、全体処理を終了する。ステップＳ１３では、ＣＰＵ５０は、たとえば、ゲームクリアを表現する、ゲーム画面を表示したり、音（音楽）を出力したりする。
【０１２７】
一方、ステップＳ１１で“ＮＯ”であれば、つまり敵オブジェクト１１６が残っていれば、ステップＳ１５で、衝突回数が３回であるかどうかを判断する。ここでは、ＣＰＵ５０は、衝突回数データ９２ｆが示す衝突回数が３であるかどうかを判断する。ステップＳ１５で“ＮＯ”であれば、つまり衝突回数が３未満であれば、そのままステップＳ１に戻る。一方、ステップＳ１５で“ＹＥＳ”であれば、つまり衝突回数が３であれば、ステップＳ１７で、ゲームオーバ処理を実行して、全体処理を終了する。ステップＳ１７では、ＣＰＵ５０は、たとえば、ゲームオーバを表現する、ゲーム画面を表示したり、音（音楽）を出力したりする。
【０１２８】
図１３および図１４は、図１２に示したステップＳ７の第１オブジェクト制御処理のフロー図である。図１３に示すように、ＣＰＵ５０は、第１オブジェクト制御処理を開始すると、ステップＳ３１で、第１プレイヤオブジェクト１１０が下画面１０２に存在するかどうかを判断する。つまり、ＣＰＵ５０は、第１オブジェクト位置データ９２ｃが示す第１プレイヤオブジェクト１１０の位置が、原点Ｏ（０，０）と点Ｒ（２５６，１９２）とで決定される下画面１０２の範囲内であるかどうかを判断する。
【０１２９】
ステップＳ３１で“ＮＯ”であれば、つまり第１プレイヤオブジェクト１１０が上画面１０４に存在すれば、図１４に示すステップＳ４７に進む。一方、ステップＳ３１で“ＹＥＳ”であれば、つまり第１プレイヤオブジェクト１１０が下画面１０２に存在すれば、ステップＳ３３で、下画面１０２をタッチしているかどうかを判断する。ここでは、ＣＰＵ５０は、操作データバッファ９２ａを参照して、現フレームにおける座標データが記憶されているかどうかを判断する。
【０１３０】
ステップＳ３３で“ＮＯ”であれば、つまり下画面１０２をタッチしていなければ、そのまま図１２に示した全体処理にリターンする。一方、ステップＳ３３で“ＹＥＳ”であれば、つまり下画面１０２をタッチしていれば、ステップＳ３５で、近くの敵オブジェクト１１６を吸引して、ステップＳ３７に進む。ステップＳ３５では、ＣＰＵ５０の制御によって、第１プレイヤオブジェクト１１０は、第１所定距離（たとえば、３０ドット）以内の敵オブジェクト１１６を引き寄せ、また第２所定距離（たとえば、２０ドット）以内の敵オブジェクト１１６を吸い込む。
【０１３１】
ステップＳ３７では、弾いたかどうかを判断する。ここでは、ＣＰＵ５０は、操作データバッファ９２ａを参照して、１フレームの間における、座標データが示す位置の変化がＹ座標のマイナス方向に第３所定距離（たとえば、３ドット）以上であるかどうかを判断する。ステップＳ３７で“ＹＥＳ”であれば、つまり弾いた場合には、ステップＳ３９で、第１プレイヤオブジェクト１１０を上画面１０４に移動させ、全体処理にリターンする。
【０１３２】
なお、図１２では、ステップＳ７で、第１オブジェクト処理が実行された後に、ステップＳ９で、第２オブジェクト処理が実行されるように示してあるが、実際には、これらは同時またはほぼ同時に実行される。したがって、ステップＳ３９では、第１オブジェクト位置データ９２ｃと第２オブジェクト位置データ９２ｄとが複製され、その後、第２オブジェクト位置データ９２ｄの複製が第１オブジェクト位置データ９２ｃとしてデータ記憶領域９２に記憶される。また、後述するように、第２オブジェクト制御処理において、第１オブジェクト位置データ９２ｃの複製が第２オブジェクト位置データ９２ｄとしてデータ記憶領域９２に記憶される（Ｓ７７）。つまり、第１プレイヤオブジェクト１１０と第２プレイヤオブジェクト１１６との位置が入れ替えられる。後述するステップＳ４９についても同様である。
【０１３３】
また、ステップＳ３７で“ＮＯ”であれば、つまり弾いていない場合には、ステップＳ４１で、第１プレイヤオブジェクト１１０がタッチされているかどうかを判断する。つまり、ＣＰＵ５０は、操作データバッファ９２ａを参照して、現フレームの座標データが示すタッチ位置が下画面１０２に表示された第１プイレヤオブジェクト１１０上であるかどうかを判断する。タッチ位置が第１プレイヤオブジェクト１１０上であるかどうかは、第１プレイヤオブジェクト１１０の位置を中心とする当該第プレイヤオブジェクト１１０の大きさで決定される範囲内であるかどうかで判断される。
【０１３４】
ステップＳ４１で“ＹＥＳ”であれば、つまり第１プレイヤオブジェクト１１０がタッチされていれば、ステップＳ４３で、第１プレイヤオブジェクト１１０をタッチ位置に追従させて、全体処理にリターンする。つまり、ステップＳ４３では、ＣＰＵ５０は、タッチ位置の変化量および変化方向で、第１プレイヤオブジェクト１１０の位置すなわち第１オブジェクト位置データ９２ｃを更新する。
【０１３５】
一方、ステップＳ４１で“ＮＯ”であれば、つまり第１プレイヤオブジェクト１１０がタッチされていなければ、ステップＳ４５で、第１プレイヤオブジェクト１１０をタッチ位置に接近させて、全体処理にリターンする。ステップＳ４５では、ＣＰＵ５０は、タッチ位置に向けて、第１プレイヤオブジェクト１１０の位置すなわち第１オブジェクト位置データ９２ｃを更新する。
【０１３６】
図１４に示すように、ステップＳ４７では、弾いたかどうかを判断する。この判断方法は、ステップＳ３７と同じである。ステップＳ４７で“ＹＥＳ”であれば、つまり弾いた場合には、ステップＳ４９で、第１プレイヤオブジェクト１１０を下画面１０２に移動させて、図１４に示したように、全体処理にリターンする。
【０１３７】
一方、ステップＳ４７で“ＮＯ”であれば、つまり弾いていない場合には、ステップＳ５１で、第１プレイヤオブジェクト１１０を第２プレイヤオブジェクト１１４と点対称に移動させて、全体処理にリターンする。つまり、ステップＳ５１では、ＣＰＵ５０は、第２オブジェクト位置データ９２ｄが示す位置と点対称となる位置を算出し、算出した位置のデータを第１オブジェクト位置データ９２ｃとして記憶（更新）する。ただし、上述したように、地球オブジェクト１１２の位置（中心点Ｐ）が点対称の中心である。
【０１３８】
図１５および図１６は、図１２のステップＳ９に示した第２オブジェクト制御処理のフロー図である。以下、第２オブジェクト制御処理について説明するが、第１オブジェクト制御処理と同様であるため、簡単に説明することにする。
【０１３９】
図１５に示すように、ＣＰＵ５０は、第２オブジェクト制御処理を開始すると、ステップＳ７１で、第２プレイヤオブジェクト１１４が下画面１０２に存在するかどうかを判断する。ステップＳ７１で“ＮＯ”であれば、つまり第２プレイヤオブジェクト１１４が上画面１０４に存在すれば、図１６に示すステップＳ９５に進む。一方、ステップＳ７１で“ＹＥＳ”であれば、つまり第２プレイヤオブジェクト１１４が下画面１０２に存在すれば、ステップＳ７３で、下画面１０２をタッチしているかどうかを判断する。ステップＳ７３で“ＮＯ”であれば、そのまま図１２に示した全体処理にリターンする。
【０１４０】
一方、ステップＳ７３で“ＹＥＳ”であれば、ステップＳ７５で、弾いたかどうかを判断する。ステップＳ７５で“ＹＥＳ”であれば、ステップＳ７７で、第２プレイヤオブジェクト１１４を上画面１０４に移動させて、全体処理にリターンする。このとき、上述のステップＳ４９で示したように、第１プレイヤオブジェクト１１０は下画面１０２に移動される。一方、ステップＳ７５で“ＮＯ”であれば、ステップＳ７９で、第２プレイヤオブジェクト１１４がタッチされているかどうかを判断する。
【０１４１】
ステップＳ７９で“ＹＥＳ”であれば、つまり第２プレイヤオブジェクト１１４がタッチされていれば、ステップＳ８１で、第２プレイヤオブジェクト１１４をタッチ位置に追従させて、全体処理にリターンする。一方、ステップＳ７９で“ＮＯ”であれば、つまり第２プレイヤオブジェクト１１４がタッチされていなければ、ステップＳ８３で、第２プレイヤオブジェクト１１４をタッチ位置に接近させて、全体処理にリターンする。
【０１４２】
図１６に示すように、ステップＳ９５では、弾いたかどうかを判断する。ステップＳ９５で“ＹＥＳ”であれば、ステップＳ９７で、第２プレイヤオブジェクト１１４を下画面１０２に移動させて、図１５に示したように、全体処理にリターンする。このとき、上述のステップＳ３９で示したように、第１プレイヤオブジェクト１１０が上画面１０４に移動される。一方、ステップＳ９５で“ＮＯ”であれば、ステップＳ９９で、第２プレイヤオブジェクト１１４を第１プレイヤオブジェクト１１０と点対称に移動させて、全体処理にリターンする。
【０１４３】
図１７および図１８は、敵オブジェクト制御処理を示すフロー図である。この敵オブジェクト制御処理は、全体処理とは別のタスクによって、ゲーム空間に出現された敵オブジェクト１１６単位で並列的に実行される。
【０１４４】
図１７に示すように、ＣＰＵ５０は、敵オブジェクト制御処理を開始すると、ステップＳ１２１で、近くに第１プレイヤオブジェクト１１０が有るかどうかを判断する。ここでは、ＣＰＵ５０は、第１プレイヤオブジェクト１１０と当該敵オブジェクト１１６との距離が第１所定距離以内であるかどうかを判断する。つまり、第１プレイヤオブジェクト１１０の吸い込む力が及ぶかどうかが判断されるのである。
【０１４５】
ステップＳ１２１で“ＮＯ”であれば、つまり第１プレイヤオブジェクト１１０と当該敵オブジェクト１１６との距離が第１所定距離を超えている場合には、近くに第１プレイヤオブジェクト１１０が無いと判断し、ステップＳ１２３で、地球オブジェクト１１２の方向に移動させて、ステップＳ１３３に進む。つまり、ステップＳ１２３では、ＣＰＵ５０は、中心点Ｐに向けて敵オブジェクト１１６を速度ｖｅで移動させる。ただし、地球オブジェクト１１２の位置（中心点Ｐ）は、固定的に決定されるため、ゲームプログラム内で設定されている。
【０１４６】
一方、ステップＳ１２１で“ＹＥＳ”であれば、つまり第１プレイヤオブジェクト１１０と当該敵オブジェクト１１６との距離が第１所定距離以内である場合には、近くに第１プレイヤオブジェクト１１０が有ると判断し、ステップＳ１２５で、第１プレイヤオブジェクト１１０の方向に移動させる。つまり、ＣＰＵ５０は、第１オブジェクト位置データ９２ｃが示す位置に向けて敵オブジェクト１１６を速度ｖｅで移動させる。
【０１４７】
続くステップＳ１２７では、当該敵オブジェクト１１６が第１プレイヤオブジェクト１１０に吸い込まれたかどうかを判断する。ここでは、ＣＰＵ５０は、第１プレイヤオブジェクト１１０と当該敵オブジェクト１１６との距離が第２所定距離以内であるかどうかを判断する。ステップＳ１２７で“ＮＯ”であれば、つまり当該敵オブジェクト１１６が第１プレイヤオブジェクト１１０に吸い込まれていなければ、ステップＳ１３３に進む。
【０１４８】
ステップＳ１３３では、当該敵オブジェクト１１６が地球オブジェクト１１２に衝突したかどうかを判断する。ここでは、ＣＰＵ５０は、一般的な当たり判定の処理を実行する（後述する、ステップＳ１５１、Ｓ１７７も同じ）。ステップＳ１３３で“ＮＯ”であれば、つまり当該敵オブジェクト１１６が地球オブジェクト１１２に衝突していなければ、図１８に示すステップＳ１５１に進む。一方、ステップＳ１３３で“ＹＥＳ”であれば、つまり当該敵オブジェクト１１６が地球オブジェクト１１２に衝突すれば、ステップＳ１３５で、衝突回数データ９２ｆが示す衝突回数を１加算し、ステップＳ１３７で、敵オブジェクト１１６を消滅させて、当該敵オブジェクト１１６についての敵オブジェクト制御処理を終了する。
【０１４９】
詳細な説明は省略するが、ステップＳ１３７では、地球オブジェクト１１２に衝撃が加えられる様子や敵オブジェクト１１６が砕けて消滅する様子のゲーム画面が表示されたり、そのような様子を示す効果音ないしメロディが出力されたりする。
【０１５０】
また、テップＳ１２７で“ＹＥＳ”であれば、つまり当該敵オブジェクト１１６が第１プレイヤオブジェクト１１０に吸い込まれれば、ステップＳ１３９で、敵オブジェクト１１６を消滅させて、ステップＳ１４１で、第３オブジェクト大きさデータ９２ｅが示す第３プレイヤオブジェクト１１８の大きさを１加算する。ただし、ステップＳ１３９では、敵オブジェクト１１６が第１プレイヤオブジェクト１１０に吸い込まれて消滅する様子のゲーム画面が表示されたり、そのような様子を示す効果音ないしメロディが出力されたりする。
【０１５１】
続くステップＳ１４３では、第３プレイヤオブジェクト１１８が存在するかどうかを判断する。ここでは、第３オブジェクト大きさデータ９２ｅが示す第３プレイヤオブジェクト１１８の大きさが２以上であるか、または飛行中の第３プレイヤオブジェクト１１８が存在するかどうかを判断する。ステップＳ１４３で“ＮＯ”であれば、つまり第３プレイヤオブジェクト１１８が存在しなければ、ステップＳ１４５で、後述する第３オブジェクト制御処理（図１９参照）を開始して、敵オブジェクト制御処理を終了する。
【０１５２】
一方、ステップＳ１４３で“ＹＥＳ”であれば、つまり第３プレイヤオブジェクト１１８が存在すれば、ステップＳ１４７で、当該第３プレイヤオブジェクト１１８が飛行中かどうかを判断する。ステップＳ１４７で“ＮＯ”であれば、つまり当該第３プレイヤオブジェクト１１８が第２プレイヤオブジェクト１１４に保持されていれば、そのまま敵オブジェクト制御処理を終了する。一方、ステップＳ１４７で“ＹＥＳ”であれば、つまり当該第３プレイヤオブジェクト１１８が飛行中であれば、ステップＳ１４９で、別の第３オブジェクト制御処理を開始して、敵オブジェクト制御処理を終了する。
【０１５３】
つまり、既に存在する第３プレイヤオブジェクト１１８が飛行中である場合には、第１プレイヤオブジェクト１１０が敵オブジェクト１１６を吸い込むことにより、別の第３プレイヤオブジェクト１１８が生成（発生）され、当該別の第３プレイヤオブジェクト１１８についての第３オブジェクト制御処理が別のタスクで実行されるのである。
【０１５４】
また、上述したように、当該敵オブジェクト１１６が地球オブジェクト１１２に衝突していなければ、ステップＳ１３３で“ＮＯ”となり、図１８に示すように、ステップＳ１５１で、当該敵オブジェクト１１６が第３プレイヤオブジェクト１１８に衝突したかどうかを判断する。ステップＳ１５１で“ＮＯ”であれば、つまり当該敵オブジェクト１１６が第３プレイヤオブジェクト１１８に衝突していなければ、そのまま図１７に示したステップＳ１２１に戻る。一方、ステップＳ１５１で“ＹＥＳ”であれば、つまり当該敵オブジェクト１１６が第３プレイヤオブジェクト１１８に衝突すれば、ステップＳ１５３で、敵オブジェクト１１６を消滅させて、図１７に示したように、敵オブジェクト制御処理を終了する。
【０１５５】
ただし、ステップＳ１５３では、敵オブジェクト１１６が、第３プレイヤオブジェクト１１８に衝突することによって破壊され、消滅する様子を示すゲーム画面が表示されたり、その様子を示す効果音やメロディが出力されたりする。このとき、後述する第３オブジェクト制御処理によって、第３プレイヤオブジェクト１１８が破壊されて消滅されたり、縮小されたりする様子がそのゲーム画面で表現され、その様子を示す効果音やメロディも出力されたりする。
【０１５６】
図１９は、第３オブジェクト制御処理を示すフロー図である。この第３オブジェクト制御処理は、全体処理および敵オブジェクト制御処理とは別のタスクによって、ゲーム空間に生成（発生）された第３プレイヤオブジェクト１１８単位で並列的に実行される。
【０１５７】
図１９に示すように、ＣＰＵ５０は、第３オブジェクト制御処理を開始すると、ステップＳ１７１で、第３オブジェクト大きさデータ９２ｅが示す第３プレイヤオブジェクト１１８の大きさを設定（更新）する。したがって、第３オブジェクト制御処理が開始された当初では、ステップＳ１７１の処理によって、第３プレイヤオブジェクト１１８が発生される。
【０１５８】
次のステップＳ１７３では、タッチオフかどうかを判断する。ここでは、ＣＰＵ５０は、操作データバッファ９２ａを参照して、座標データが記憶されている状態から座標データが記憶されていない状態に変化したかどうかを判断する。ステップＳ１７３で“ＮＯ”であれば、つまりタッチオフでなければ、ステップＳ１７５で、当該第３プレイヤオブジェクト１１８を、第２オブジェクト位置データ９２ｄが示す第２プレイヤオブジェクト１１４の位置に表示して、ステップＳ１７７で、当該第３プレイヤオブジェクト１１８が敵オブジェクト１１６に衝突したかどうかを判断する。
【０１５９】
ステップＳ１７７で“ＮＯ”であれば、つまり当該第３プレイヤオブジェクト１１８が敵オブジェクト１１６に衝突していなければ、そのままステップＳ１７１に戻る。この場合には、たとえば、第１プレイヤオブジェクト１１０が敵オブジェクト１１６を吸い込むと、ステップＳ１７１で、第３プレイヤオブジェクト１１８の大きさが拡大され、その様子がゲーム画面に表示されたり、その様子を示す効果音やメロディが出力されたりする。一方、ステップＳ１７７で“ＹＥＳ”であれば、つまり当該第３プレイヤオブジェクト１１８が敵オブジェクト１１６に衝突すれば、ステップＳ１７９で、第３オブジェクト大きさデータ９２ｅが示す当該第３プレイヤオブジェクト１１８の大きさを１減算する。
【０１６０】
そして、ステップＳ１８１では、当該第３プレイヤオブジェクト１１８の大きさが０であるかどうかを判断する。ステップＳ１８１で“ＮＯ”であれば、つまり当該第３プレイヤオブジェクト１１８の大きさが０でなければ、そのままステップＳ１７１に戻る。この場合には、ステップＳ１７１で、第３プレイヤオブジェクト１１８が縮小されるが、敵オブジェクト１１６に衝突したことにより衝撃を受ける様子がゲーム画面で示されたり、そのような様子を示す効果音ないしメロディが出力されたりする。
【０１６１】
一方、ステップＳ１８１で“ＹＥＳ”であれば、つまり当該第３プレイヤオブジェクト１１８の大きさが０であれば、ステップＳ１８３で、第３プレイヤオブジェクト１１８を消滅させて、当該第３プレイヤオブジェクト１１８についての第３オブジェクト制御処理を終了する。
【０１６２】
詳細な説明は省略するが、ステップＳ１８３では、敵オブジェクト１１６に衝突することにより、第３プレイヤオブジェクト１１８が破壊され、消滅する様子がゲーム画面に表示されたり、その様子を示す効果音ないしメロディが出力されたりする。
【０１６３】
また、ステップＳ１７３で“ＹＥＳ”であれば、つまりタッチオフであれば、ステップＳ１８５で、当該第３プレイヤオブジェクトの大きさを０に設定する。つまり、第３オブジェクト大きさデータ９２ｅをリセットする。これは、第３オブジェクト大きさデータ９２ｅを、新しく生成される別の第３プレイヤオブジェクト１１８の制御に利用するためである。続くステップＳ１８７では、当該第３プレイヤオブジェクト１１８を方向指示画像１２２が示す方向に移動させる。ただし、ここでは、第３プレイヤオブジェクト１１８は、数１に従って算出された速度ｖｐで移動される。
【０１６４】
そして、ステップＳ１８９では、当該第３プレイヤオブジェクト１１８が画面外に出たかどうかを判断する。つまり、ＣＰＵ５０は、当該第３プレイヤオブジェクト１１８の位置が、ゲームフィールド２００の外であるかどうかを判断する。ステップＳ１８９で“ＮＯ”であれば、つまり当該第３プレイヤオブジェクト１１８が画面外に出ていなければ、ステップＳ１８７に戻る。一方、ステップＳ１８９で“ＹＥＳ”であれば、つまり当該第３プレイヤオブジェクト１１８が画面外に出れば、第３オブジェクト制御処理を終了する。
【０１６５】
この実施例によれば、下画面をタッチ操作することにより、下画面および上画面に存在するオブジェクトを入れ替えることにより、所望のオブジェクトを上画面および下画面のいずれでも移動させるので、操作性を向上させることができる。
【０１６６】
また、この実施例によれば、下画面に表示されたオブジェクトを操作することにより、これに従って上画面に表示されたオブジェクトが点対称に移動されるので、同時に２つのオブジェクトを操作することができる。つまり、操作性を向上させることができる。
【０１６７】
さらに、上画面に表示されたオブジェクトは、下画面に表示されたオブジェクトとは、点対称に移動されるので、操作の難易度が比較的高く、ゲームに飽きが来るのを出来る限り防止することができる。
【０１６８】
なお、この実施例では、第１プレイヤオブジェクトと第２プレイヤオブジェクトとに異なる機能を持たせるようにしたが、第２プレイヤオブジェクトも第１プレイヤオブジェクトと同様に、ブラックホールを模したオブジェクトにしてもよい。かかる場合には、上画面および下画面の両方で、敵オブジェクトを吸い込むことにより、当該敵オブジェクトを消滅させる。かかる場合には、オブジェクトを入れ替えなくてもよい。ただし、２つのプレイヤオブジェクトの能力（吸い込む力）に差を設けて、敵オブジェクトの大きさも変化させることにより、必要に応じて、プレイヤオブジェクトを入れ替えるようにしてもよい。
【０１６９】
また、この実施例では、第２ＬＣＤ上にのみタッチパネルを設けるようにしたが、第１ＬＣＤ上にもタッチパネルを設けるようにしてもよい。このようにした場合には、第１ＬＣＤ（上画面）に表示されたオブジェクトをタッチ操作して移動させ、これに応じて、第２ＬＣＤ（下画面）に表示されたオブジェクトを、上画面に表示されたオブジェクトと点対称に移動させるようにすることができる。このようにすれば、たとえば、第１プレイヤオブジェクトのみ、または、第２プレイヤオブジェクトのみを、タッチ操作により直接的に移動させるようにすることができる。また、タッチパネルを両方のＬＣＤ上に設ける場合には、上画面において、下画面側に弾く操作をしたときにも、オブジェクトを入れ替えるようにしてもよい。この場合には、タッチ位置が上画面内に存在し、タッチ位置のＹ軸のプラス方向の変化が所定時間内に第３所定距離以上であることに応じて、オブジェクトが入れ替えられる。
【０１７０】
さらに、この実施例では、２つのオブジェクトを点対称に表示（移動）するようにしたが、たとえば、地球オブジェクトの中心点を通りＸ軸に平行な直線を中心にして、２つのオブジェクトを線対称に表示（移動）するようにしてもよい。ただし、点対称に表示するか、または線対称に表示するかは、プレイヤが切り換えてもよいし、ゲームの面や難易度に応じて変化されてもよい。
【０１７１】
さらにまた、この実施例では、上方向（第１ＬＣＤ側）に弾く操作をした場合に、２つのオブジェクトが入れ替えられたが、これに限定される必要はない。たとえば、ＬボタンやＲボタンなどの操作ボタンを操作することにより、２つのオブジェクトが入れ替えられてもよい。
【０１７２】
また、この実施例では、タッチパネルを用いて、下画面に表示されたオブジェクトを移動させるようにしたが、十字キー２０ａを用いて、当該オブジェクト（または上画面に表示されたオブジェクト）を移動させてもよい。かかる場合にも、上述の実施例と同様に、下画面に表示されたオブジェクト（または上画面に表示されたオブジェクト）と点対称に、上画面に表示されたオブジェクト（または下画面に表示されたオブジェクト）が移動される。また、十字キー２０ａを用いる場合には、操作ボタン２０ｂ、２０ｃ、２０ｄ、２０ｅのいずれかを押すことにより、第１プレイヤオブジェクトが吸い込む力を働かせるようにしてもよい。ただし、十字キー２０ａを用いる場合には、プレイヤオブジェクトをタッチすることなく、直接的に移動が制御されるため、図１３に示したステップＳ４１、Ｓ４５の処理および図１５に示したステップＳ７９、Ｓ８３の処理は、削除される。
【０１７３】
さらに、この実施例では、図１に示す状態でゲーム装置を把持し、ゲームプレイすることを前提として、説明の便宜上、第１ＬＣＤに表示される画面を上画面と呼び、第２ＬＣＤに表示される画面を下画面と呼んだ。しかし、図１に示す状態において、ゲーム装置を、上下を反対にしたり、右方向（時計周り）に９０度回転させたり、左方向（反時計回り）に９０度回転させたり、或いは任意の角度だけ回転させたりした状態にして、ゲームプレイすることができる。ただし、ゲーム空間の２次元座標系は固定されているため、第１プレイヤオブジェクトと第２プレイヤオブジェクトとを入れ替える際に、第１ＬＣＤ側に弾く操作はいずれの場合も共通である。
【０１７４】
さらにまた、ゲーム装置の構成は実施例のものに限定される必要はない。たとえば、表示装置（ＬＣＤ）は、１つの大きなＬＣＤを２つの表示領域に分けて使用してもよい。また、カメラは、１つでも良いし、無くてもよい。
【符号の説明】
【０１７５】
１０  …ゲーム装置
１２，１４  …ハウジング
１６，１８  …ＬＣＤ
２０  …操作ボタン
２２  …タッチパネル
２４  …タッチペン
２６，２８  …メモリカード
３２，３４  …カメラ
５０  …ＣＰＵ
５２  …メインメモリ
５４  …メモリ制御回路
５６  …保存用データメモリ
５８  …プリセットデータ用メモリ
６０，６２  …メモリカードＩ／Ｆ
６４  …無線通信モジュール
６６  …ローカル通信モジュール
６８  …ＲＴＣ
７０  …電源回路
７２  …Ｉ／Ｆ回路
７４，７６  …ＧＰＵ
７８，８０  …ＶＲＡＭ
８２  …ＬＣＤコントローラ
８４  …マイク
【図１】
0005758152.tif 000002
【図２】
0005758152.tif 000003
【図３】
0005758152.tif 000004
【図４】
0005758152.tif 000005
【図５】
0005758152.tif 000006
【図６】
0005758152.tif 000007
【図７】
0005758152.tif 000008
【図８】
0005758152.tif 000009
【図９】
0005758152.tif 000010
【図１０】
0005758152.tif 000011
【図１１】
0005758152.tif 000012
【図１２】
0005758152.tif 000013
【図１３】
0005758152.tif 000014
【図１４】
0005758152.tif 000015
【図１５】
0005758152.tif 000016
【図１６】
0005758152.tif 000017
【図１７】
0005758152.tif 000018
【図１８】
0005758152.tif 000019
【図１９】
0005758152.tif 000020