(57)【特許請求の範囲】
【請求項１】
ポインティングデバイスからの出力に応じてオブジェクトを選択する装置のコンピュータで実行される情報処理プログラムであって、
前記コンピュータを、
複数のオブジェクトが配置された仮想世界の少なくとも一部を表示装置に表示する表示制御手段と、
前記ポインティングデバイスによって入力された入力座標を検出する座標検出手段と、
前記入力座標が前記複数のオブジェクトの何れかを指示する場合に当該指示されたオブジェクトを操作対象として選択し、前記入力座標が前記複数のオブジェクトの何れも指示していない場合に当該複数のオブジェクトのうち所定の条件を満たす２つ以上のオブジェクトを操作対象として選択するオブジェクト選択手段として機能させる、情報処理プログラム。
【請求項２】
前記オブジェクト選択手段は、前記入力座標が前記表示装置に表示された仮想世界内の位置を示し、かつ、前記入力座標が前記複数のオブジェクトの何れも指示していない場合に、前記所定の条件を満たすオブジェクトを操作対象として選択する、請求項１に記載の情報処理プログラム。
【請求項３】
前記複数のオブジェクトは、仮想世界においてそれぞれ動作可能な可動オブジェクトであり、
前記情報処理プログラムは、前記オブジェクト選択手段によって操作対象として選択されたオブジェクトに所定の動作をさせるオブジェクト動作制御手段として、さらに前記コンピュータを機能させる、請求項２に記載の情報処理プログラム。
【請求項４】
前記可動オブジェクトは、前記ポインティングデバイスからの出力に応じて仮想世界内を移動可能であり、
前記オブジェクト動作制御手段は、前記オブジェクト選択手段によって操作対象として選択されたオブジェクトを、前記ポインティングデバイスからの出力に応じて仮想世界内を移動させる、請求項３に記載の情報処理プログラム。
【請求項５】
前記オブジェクト動作制御手段は、
前記入力座標が指示するオブジェクトを前記オブジェクト選択手段が操作対象として選択した場合、前記入力座標の変化に基づいた方向に当該オブジェクトを移動させる第１移動手段と、
前記所定の条件を満たすオブジェクトを前記オブジェクト選択手段が操作対象として選択した場合、前記入力座標に基づいた位置に向かって当該オブジェクトを移動させる第２移動手段とを含む、請求項４に記載の情報処理プログラム。
【請求項６】
前記ポインティングデバイスによる入力が開始されてから終了するまでの時間を計時する計時手段として、さらに前記コンピュータを機能させ、
前記第１移動手段は、前記計時手段によって計時された時間が第１時間以内の場合に前記オブジェクト選択手段が操作対象として選択したオブジェクトを移動させる、請求項５に記載の情報処理プログラム。
【請求項７】
前記ポインティングデバイスによる入力が開始された時点から当該入力が終了した時点までに検出された前記入力座標の何れかを用いて、当該入力座標の変化に関するパラメータを算出するパラメータ算出手段として、さらに前記コンピュータを機能させ、
前記第１移動手段は、前記パラメータが所定の条件を満たす場合に前記オブジェクト選択手段が操作対象として選択したオブジェクトを移動させる、請求項５に記載の情報処理
プログラム。
【請求項８】
前記パラメータ算出手段は、前記ポインティングデバイスによる入力が開始された時点で検出された前記入力座標が示す位置と当該入力が終了した時点で検出された前記入力座標が示す位置との間の距離を、前記パラメータとして算出し、
前記第１移動手段は、前記距離が所定値以上である場合に前記オブジェクト選択手段が操作対象として選択したオブジェクトを移動させる、請求項７に記載の情報処理プログラム。
【請求項９】
前記ポインティングデバイスによる入力が開始された時点から当該入力が終了した時点までに検出された前記入力座標の何れかを用いて、当該入力座標の変化に関するパラメータを算出するパラメータ算出手段と、
前記パラメータに基づいて、前記オブジェクト選択手段が操作対象として選択したオブジェクトの移動速度を決定する移動速度決定手段として、さらに前記コンピュータを機能させ、
前記第１移動手段は、前記移動速度決定手段が決定した移動速度に基づいて、前記オブジェクト選択手段が操作対象として選択したオブジェクトを移動させる、請求項５に記載の情報処理プログラム。
【請求項１０】
前記パラメータ算出手段は、
前記座標検出手段が今回の処理で検出した入力座標と前記座標検出手段が前回の処理で検出した入力座標との変化量を繰り返し算出する変化量算出手段と、
前記ポインティングデバイスによる入力が開始されてから終了するまで、前記変化量算出手段が繰り返し算出した変化量の平均値を、前記パラメータとして算出する平均値算出手段とを含み、
前記移動速度決定手段は、前記平均値に基づいて、前記オブジェクト選択手段が操作対象として選択したオブジェクトの移動速度を決定する、請求項９に記載の情報処理プログラム。
【請求項１１】
前記ポインティングデバイスによる入力が開始されてから当該入力が継続して行われている時間を計時する計時手段として、さらに前記コンピュータを機能させ、
前記第２移動手段は、前記計時手段によって計時された時間が第２時間以上の場合、前記入力座標に基づいた位置に向かって前記所定の条件を満たすオブジェクトを移動させる、請求項５に記載の情報処理プログラム。
【請求項１２】
前記所定の条件を満たすオブジェクトを前記オブジェクト選択手段が操作対象として選択した後、前記ポインティングデバイスによる入力が第３時間以内に終了し、かつ、断続的に前記ポインティングデバイスによる第４時間内の入力が少なくとも１回行われたか否かを判定する入力判定手段として、さらに前記コンピュータを機能させ、
前記第２移動手段は、
前記計時手段によって計時された時間が前記第２時間以上の場合、前記入力座標に基づいた位置に向かって前記所定の条件を満たすオブジェクトを第１移動速度で移動させ、
前記入力判定手段による判定が肯定の場合、前記入力座標に基づいた位置に向かって前記所定の条件を満たすオブジェクトを当該第１移動速度とは異なる第２移動速度で移動させる、請求項１１に記載の情報処理プログラム。
【請求項１３】
前記所定の条件を満たすオブジェクトを前記オブジェクト選択手段が操作対象として選択した後、前記ポインティングデバイスによる入力が第３時間以内に終了し、かつ、断続的に前記ポインティングデバイスによる第４時間内の入力が少なくとも１回行われたか否かを判定する入力判定手段として、さらに前記コンピュータを機能させ、
前記第２移動手段は、前記入力判定手段による判定が肯定の場合、第５時間内に限り前記入力座標に基づいた位置に向かって前記所定の条件を満たすオブジェクトを移動させる、請求項５に記載の情報処理プログラム。
【請求項１４】
前記オブジェクト選択手段は、前記入力座標が前記複数のオブジェクトの何れも指示していない場合、仮想世界に配置された全てのオブジェクトを操作対象として選択する、請求項１乃至５の何れか１つに記載の情報処理プログラム。
【請求項１５】
前記オブジェクト選択手段は、前記入力座標が前記複数のオブジェクトの何れも指示していない場合、前記表示装置に表示されているオブジェクトを操作対象として選択する、請求項１乃至５の何れか１つに記載の情報処理プログラム。
【請求項１６】
前記オブジェクト選択手段は、前記入力座標が前記複数のオブジェクトの何れも指示していない場合、前記入力座標が示す仮想世界の位置を基準として所定範囲内に配置されたオブジェクトを操作対象として選択する、請求項１乃至５の何れか１つに記載の情報処理プログラム。
【請求項１７】
ポインティングデバイスからの出力に応じてオブジェクトを選択する情報処理装置であって、
複数のオブジェクトが配置された仮想世界の少なくとも一部を表示装置に表示する表示制御手段と、
前記ポインティングデバイスによって入力された入力座標を検出する座標検出手段と、
前記入力座標が前記複数のオブジェクトの何れかを指示する場合に当該指示されたオブジェクトを操作対象として選択し、前記入力座標が前記複数のオブジェクトの何れも指示していない場合に当該複数のオブジェクトのうち所定の条件を満たす２つ以上のオブジェクトを操作対象として選択するオブジェクト選択手段とを備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラムおよび情報処理装置に関し、より特定的には、ポインティングデバイスを用いて複数のオブジェクトから選択する操作をする際に用いられる情報処理プログラムおよび情報処理装置に関する。
【背景技術】
【０００２】
従来、複数のオブジェクトから選択する操作を行う際、当該複数のオブジェクトから単一のオブジェクトを選択する場合と当該複数のオブジェクトから少なくとも一部の複数のオブジェクトを選択する場合とによって、異なる操作が必要となる技術がある。例えば、複数のキャラクタが存在する仮想世界において、単一のキャラクタを選択する場合と複数のキャラクタを選択する場合とによって、選択方法が異なるゲーム装置が開示されている（例えば、特許文献１参照）。
【０００３】
上記特許文献１で開示されたゲーム装置は、画面に表示された仮想空間内に存在している単一のプレイヤキャラクタをプレイヤが選択する場合、ポインティングデバイスを用いて選択したいプレイヤキャラクタを直接タッチする。一方、当該ゲーム装置は、画面に表示された仮想空間内に存在している複数のプレイヤキャラクタを同時にプレイヤが選択する場合、ポインティングデバイス（例えば、タッチパネル）を用いて選択したいプレイヤキャラクタ群を囲むようにタッチ操作する。具体的には、囲むようなタッチ操作をプレイヤが行う場合、当該タッチ操作が行われた位置に応じて赤い線が仮想空間内に描かれ、画面に表示された仮想空間内に存在している複数のプレイヤキャラクタのうち、当該赤い線に囲まれたプレイヤキャラクタが選択される。そして、赤い線によって囲まれたプレイヤキャラクタをさらにプレイヤがタッチ操作することによって、当該タッチ操作がタッチオフされるまでの間、赤い線に囲まれたプレイヤキャラクタをタッチ操作に応じて移動させることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３０４８５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１で開示されたゲーム装置は、複数のプレイヤキャラクタをプレイヤが選択しようとすると、当該プレイヤキャラクタを囲むようにタッチ操作する必要があり、選択操作が煩わしくなることがある。さらに、上記特許文献１で開示されたゲーム装置は、選択した複数のプレイヤキャラクタを移動させる場合、当該複数のプレイヤキャラクタを選択する操作を行うことによって移動させたいプレイヤオブジェクトを選択した後に、ドラッグ操作等による移動操作をプレイヤが行わなければならず、移動操作も煩雑になってしまう。
【０００６】
それ故に、本発明の目的は、簡単な入力によって操作対象とするオブジェクトの選択を可能とする情報処理プログラムまたは情報処理装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００８】
本発明は、ポインティングデバイスからの出力に応じてオブジェクトを選択する装置のコンピュータで実行される情報処理プログラムである。情報処理プログラムは、表示制御手段、座標検出手段、およびオブジェクト選択手段として、コンピュータを機能させる。表示制御手段は、複数のオブジェクトが配置された仮想世界の少なくとも一部を表示装置に表示する。座標検出手段は、ポインティングデバイスによって入力された入力座標を検出する。オブジェクト選択手段は、入力座標が複数のオブジェクトの何れかを指示する場合に当該指示されたオブジェクトを操作対象として選択し、入力座標が複数のオブジェクトの何れも指示していない場合に当該複数のオブジェクトのうち所定の条件を満たす２つ以上のオブジェクトを操作対象として選択する。なお、ポインティングデバイスは、画面上での入力位置や座標を指定する入力装置であり、例えば、タッチパネル、マウス、トラックパッド、トラックボール、ペンタブレット、ジョイスティック、ゲームコントローラのハウジングで指し示された画面位置を検出するシステム等で実現される。
【０００９】
上記によれば、簡単なポインティングデバイスの入力によって、操作対象とするオブジェクトを選択することができる。
【００１０】
また、オブジェクト選択手段は、入力座標が表示装置に表示された仮想世界内の位置を示し、かつ、入力座標が複数のオブジェクトの何れも指示していない場合に、所定の条件を満たすオブジェクトを操作対象として選択してもよい。
【００１１】
上記によれば、ポインティングデバイスを用いて、表示装置に表示された仮想世界内の位置を指示するだけで、所定の条件を満たすオブジェクトを操作対象として容易に選択することができる。
【００１２】
また、複数のオブジェクトは、仮想世界においてそれぞれ動作可能な可動オブジェクトであってもよい。この場合、上記情報処理プログラムは、オブジェクト動作制御手段として、さらにコンピュータを機能させる。オブジェクト動作制御手段は、オブジェクト選択手段によって操作対象として選択されたオブジェクトに所定の動作をさせる。
【００１３】
上記によれば、簡単なポインティングデバイスの入力によって、操作対象とするオブジェクトを選択すると共に、当該オブジェクトに所定の動作をさせることができる。
【００１４】
また、可動オブジェクトは、ポインティングデバイスからの出力に応じて仮想世界内を移動可能であってもよい。この場合、オブジェクト動作制御手段は、オブジェクト選択手段によって操作対象として選択されたオブジェクトを、ポインティングデバイスからの出力に応じて仮想世界内を移動させる。
【００１５】
上記によれば、簡単なポインティングデバイスの入力によって、操作対象とするオブジェクトを選択すると共に、当該オブジェクトを移動させることができる。
【００１６】
また、オブジェクト動作制御手段は、第１移動手段および第２移動手段を含んでいてもよい。第１移動手段は、入力座標が指示するオブジェクトをオブジェクト選択手段が操作対象として選択した場合、入力座標の変化に基づいた方向に当該オブジェクトを移動させる。第２移動手段は、所定の条件を満たすオブジェクトをオブジェクト選択手段が操作対象として選択した場合、入力座標に基づいた位置に向かって当該オブジェクトを移動させる。
【００１７】
上記によれば、簡単なポインティングデバイスの入力によって、操作対象とするオブジェクトを選択すると共に、当該オブジェクトを所望の方向や所望の位置へ移動させることができる。
【００１８】
また、上記情報処理プログラムは、計時手段として、さらにコンピュータを機能させてもよい。計時手段は、ポインティングデバイスによる入力が開始されてから終了するまでの時間を計時する。この場合、第１移動手段は、計時手段によって計時された時間が第１時間以内の場合にオブジェクト選択手段が操作対象として選択したオブジェクトを移動させる。
【００１９】
上記によれば、選択したオブジェクトを第１時間以内でポインティングデバイスをドラッグするような操作をした場合、当該オブジェクトを移動させることができる。したがって、所望のオブジェクトをはじくような操作（例えば、「はじき操作」）をすることによって、当該オブジェクトを移動させることができるので、直感的な移動操作が可能となる。
【００２０】
また、上記情報処理プログラムは、パラメータ算出手段として、さらにコンピュータを機能させてもよい。パラメータ算出手段は、ポインティングデバイスによる入力が開始された時点から当該入力が終了した時点までに検出された入力座標の何れかを用いて、当該入力座標の変化に関するパラメータを算出する。この場合、第１移動手段は、パラメータが所定の条件を満たす場合にオブジェクト選択手段が操作対象として選択したオブジェクトを移動させる。
【００２１】
上記によれば、ポインティングデバイスへの入力開始から入力終了までの操作が所定の条件を満たす場合において選択したオブジェクトを移動させることができるため、入力時のブレ等による誤操作を防ぐことができる。
【００２２】
また、上記パラメータ算出手段は、ポインティングデバイスによる入力が開始された時点で検出された入力座標が示す位置と当該入力が終了した時点で検出された入力座標が示す位置との間の距離を、パラメータとして算出してもよい。この場合、第１移動手段は、距離が所定値以上である場合にオブジェクト選択手段が操作対象として選択したオブジェクトを移動させる。
【００２３】
上記によれば、ポインティングデバイスをドラッグするような操作を所定距離以上行ったときに選択したオブジェクトを移動させることができるため、入力時のブレ等による誤操作を防ぐことができる。
【００２４】
また、上記情報処理プログラムは、パラメータ算出手段および移動速度決定手段として、さらにコンピュータを機能させてもよい。パラメータ算出手段は、ポインティングデバイスによる入力が開始された時点から当該入力が終了した時点までに検出された入力座標の何れかを用いて、当該入力座標の変化に関するパラメータを算出する。移動速度決定手段は、パラメータに基づいて、オブジェクト選択手段が操作対象として選択したオブジェクトの移動速度を決定する。この場合、第１移動手段は、移動速度決定手段が決定した移動速度に基づいて、オブジェクト選択手段が操作対象として選択したオブジェクトを移動させる。
【００２５】
上記によれば、ポインティングデバイスへの入力開始から入力終了までの操作によって、選択したオブジェクトの移動速度が決定されるため、オブジェクトの移動速度をプレイヤが自在に制御することができる。
【００２６】
また、上記パラメータ算出手段は、変化量算出手段および平均値算出手段を含んでいてもよい。変化量算出手段は、座標検出手段が今回の処理で検出した入力座標と座標検出手段が前回の処理で検出した入力座標との変化量を繰り返し算出する。平均値算出手段は、ポインティングデバイスによる入力が開始されてから終了するまで、変化量算出手段が繰り返し算出した変化量の平均値を、パラメータとして算出する。この場合、移動速度決定手段は、平均値に基づいて、オブジェクト選択手段が操作対象として選択したオブジェクトの移動速度を決定する。
【００２７】
上記によれば、ポインティングデバイスをドラッグするような操作における操作速度によって、選択したオブジェクトの移動速度が決定されるため、オブジェクトの移動速度をプレイヤが自在に制御することができる。
【００２８】
また、上記情報処理プログラムは、計時手段として、さらにコンピュータを機能させてもよい。計時手段は、ポインティングデバイスによる入力が開始されてから当該入力が継続して行われている時間を計時する。この場合、第２移動手段は、計時手段によって計時された時間が第２時間以上の場合、入力座標に基づいた位置に向かって所定の条件を満たすオブジェクトを移動させる。
【００２９】
上記によれば、ポインティングデバイスを用いて、第２時間以上の連続した入力が必要となるため、誤操作を防ぐことができる。
【００３０】
また、上記情報処理プログラムは、入力判定手段として、さらにコンピュータを機能させてもよい。入力判定手段は、所定の条件を満たすオブジェクトをオブジェクト選択手段が操作対象として選択した後、ポインティングデバイスによる入力が第３時間以内に終了し、かつ、断続的にポインティングデバイスによる第４時間内の入力が少なくとも１回行われたか否かを判定する。この場合、第２移動手段は、計時手段によって計時された時間が第２時間以上の場合、入力座標に基づいた位置に向かって所定の条件を満たすオブジェクトを第１移動速度で移動させ、入力判定手段による判定が肯定の場合、入力座標に基づいた位置に向かって所定の条件を満たすオブジェクトを当該第１移動速度とは異なる第２移動速度で移動させる。なお、上記第２時間と上記第３時間と上記第４時間とは、それぞれ異なる時間であってもいいし、少なくとも２つの時間が同じ時間であってもかまわない。
【００３１】
上記によれば、ポインティングデバイスをダブルタッチまたはダブルクリックするような操作と、第２時間以上の連続して入力する操作とによって、選択したオブジェクトを異なる速度で移動させることができるので、バリエーションに富んだ移動指示が可能となる。
【００３２】
また、上記情報処理プログラムは、入力判定手段として、さらにコンピュータを機能させてもよい。入力判定手段は、所定の条件を満たすオブジェクトをオブジェクト選択手段が操作対象として選択した後、ポインティングデバイスによる入力が第３時間以内に終了し、かつ、断続的にポインティングデバイスによる第４時間内の入力が少なくとも１回行われたか否かを判定する。この場合、第２移動手段は、入力判定手段による判定が肯定の場合、第５時間内に限り入力座標に基づいた位置に向かって所定の条件を満たすオブジェクトを移動させる。なお、上記第３時間と上記第４時間と上記第５時間とは、それぞれ異なる時間であってもいいし、少なくとも２つの時間が同じ時間であってもかまわない。
【００３３】
上記によれば、ポインティングデバイスへの入力が終了した後も、予め定められた時間（第５時間）内に限り選択したオブジェクトを入力座標に基づいた位置に向かって移動させることができる。
【００３４】
また、オブジェクト選択手段は、入力座標が複数のオブジェクトの何れも指示していない場合、仮想世界に配置された全てのオブジェクトを操作対象として選択してもよい。
【００３５】
上記によれば、簡単なポインティングデバイスの入力によって、仮想世界に配置されている全てのオブジェクトを操作対象として選択することができ、表示装置の表示領域外となる仮想世界に配置されているオブジェクトも選択可能となる。
【００３６】
また、オブジェクト選択手段は、入力座標が複数のオブジェクトの何れも指示していない場合、表示装置に表示されているオブジェクトを操作対象として選択してもよい。
【００３７】
上記によれば、簡単なポインティングデバイスの入力によって、表示装置に表示されている全てのオブジェクトを操作対象として選択することができる。
【００３８】
また、オブジェクト選択手段は、入力座標が複数のオブジェクトの何れも指示していない場合、入力座標が示す仮想世界の位置を基準として所定範囲内に配置されたオブジェクトを操作対象として選択してもよい。
【００３９】
上記によれば、簡単なポインティングデバイスの入力によって、入力座標に基づいた所定範囲内に配置されているオブジェクトを操作対象として選択することができる。
【００４０】
なお、上記第１〜第５時間は、それぞれ異なる時間であってもいいし、２つ以上が同じ時間であってもかまわない。
【００４１】
また、本発明は、上記各手段を備える情報処理装置の形態で実施されてもよい。
【発明の効果】
【００４２】
本発明によれば、簡単なポインティングデバイスの入力によって、操作対象とするオブジェクトを選択することができる。
【図面の簡単な説明】
【００４３】
【図１】本発明の一実施形態に係る情報処理プログラムを実行するゲーム装置１の外観図
【図２】図１のゲーム装置１の内部構成の一例を示すブロック図
【図３】タッチパネル１３を介して「はじき操作」をすることによって単一の操作オブジェクトを移動対象として選択した場合に、下側ＬＣＤ１２に表示されるゲーム画像の一例を示す図
【図４】タッチパネル１３を介して「はじき操作」をすることによって単一の操作オブジェクトを移動対象として選択した場合に、下側ＬＣＤ１２に表示されるゲーム画像の一例を示す図
【図５】タッチパネル１３を介して「はじき操作」をすることによって単一の操作オブジェクトを移動対象として選択した場合に、下側ＬＣＤ１２に表示されるゲーム画像の一例を示す図
【図６】タッチパネル１３を介して「継続タッチ操作」をすることによって複数の操作オブジェクトを移動対象として選択した場合に、下側ＬＣＤ１２に表示されるゲーム画像の一例を示す図
【図７】タッチパネル１３を介して「継続タッチ操作」をすることによって複数の操作オブジェクトを移動対象として選択した場合に、下側ＬＣＤ１２に表示されるゲーム画像の一例を示す図
【図８】タッチパネル１３を介して「継続タッチ操作」をすることによって複数の操作オブジェクトを移動対象として選択した場合に、下側ＬＣＤ１２に表示されるゲーム画像の一例を示す図
【図９】タッチパネル１３を介して「継続タッチ操作」をすることによって複数の操作オブジェクトを移動対象として選択した場合に、下側ＬＣＤ１２に表示されるゲーム画像の一例を示す図
【図１０】タッチパネル１３を介して「ダブルタッチ操作」をすることによって複数の操作オブジェクトを移動対象として選択した場合に、下側ＬＣＤ１２に表示されるゲーム画像の一例を示す図
【図１１】タッチパネル１３を介して「ダブルタッチ操作」をすることによって複数の操作オブジェクトを移動対象として選択した場合に、下側ＬＣＤ１２に表示されるゲーム画像の一例を示す図
【図１２】タッチパネル１３を介して「ダブルタッチ操作」をすることによって複数の操作オブジェクトを移動対象として選択した場合に、下側ＬＣＤ１２に表示されるゲーム画像の一例を示す図
【図１３】タッチパネル１３を介して「ダブルタッチ操作」をすることによって複数の操作オブジェクトを移動対象として選択した場合に、下側ＬＣＤ１２に表示されるゲーム画像の一例を示す図
【図１４】図１のゲーム装置１がゲームプログラムを実行することに応じて、メインメモリ３２に記憶される各種データの一例を示す図
【図１５】図１のゲーム装置１がゲームプログラムを実行することによってゲーム処理する動作の一例を示す第１部分のフローチャート
【図１６】図１のゲーム装置１がゲームプログラムを実行することによってゲーム処理する動作の一例を示す第２部分のフローチャート
【図１７】図１のゲーム装置１がゲームプログラムを実行することによってゲーム処理する動作の一例を示す第３部分のフローチャート
【図１８】図１のゲーム装置１がゲームプログラムを実行することによってゲーム処理する動作の一例を示す第４部分のフローチャート
【図１９】図１のゲーム装置１がゲームプログラムを実行することによってゲーム処理する動作の一例を示す第５部分のフローチャート
【図２０】図１７のステップ９８および図１９のステップ１１４で行われるはじき処理の詳細な動作の一例を示すサブルーチン
【図２１】図１５のステップ６６等で行われる集合処理の詳細な動作の一例を示すサブルーチン
【図２２】図１８のステップ１０５および図１９のステップ１１２で行われるダブルタッチ処理の詳細な動作の一例を示すサブルーチン
【図２３】図１７のステップ９６で用いられるデータテーブルの一例を示す図
【発明を実施するための形態】
【００４４】
図面を参照して、本発明の一実施形態に係る情報処理プログラムを実行する情報処理装置について説明する。本発明の情報処理プログラムは、任意のコンピュータシステムで実行されることによって適用することができるが、情報処理装置の一例としてゲーム装置１を用い、ゲーム装置１で実行される情報処理プログラムを用いて説明する。なお、図１は、本発明の情報処理プログラムの一例であるゲームプログラムを実行するゲーム装置１の外観図である。ここでは、ゲーム装置１の一例として、携帯ゲーム装置を示す。なお、ゲーム装置１は、カメラを内蔵しており、当該カメラによって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりする撮像装置としても機能する。
【００４５】
図１において、ゲーム装置１は、折り畳み型の携帯ゲーム装置であり、開いた状態（開状態）のゲーム装置１を示している。ゲーム装置１は、開いた状態においてもプレイヤが両手または片手で把持することができるようなサイズで構成される。
【００４６】
ゲーム装置１は、下側ハウジング１１および上側ハウジング２１を有する。下側ハウジング１１と上側ハウジング２１とは、開閉可能（折り畳み可能）に連結されている。図１の例では、下側ハウジング１１および上側ハウジング２１は、それぞれ横長の長方形の板状で形成され、互いの長辺部分で回動可能に連結されている。通常、プレイヤは、開状態でゲーム装置１を使用する。そして、プレイヤは、ゲーム装置１を使用しない場合には閉状態としてゲーム装置１を保管する。また、図１に示した例では、ゲーム装置１は、上記閉状態および開状態のみでなく、下側ハウジング１１と上側ハウジング２１とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング２１を下側ハウジング１１に対して任意の角度で静止させることができる。
【００４７】
下側ハウジング１１には、下側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１２が設けられる。下側ＬＣＤ１２は横長形状であり、長辺方向が下側ハウジング１１の長辺方向に一致するように配置される。なお、本実施形態では、ゲーム装置１に内蔵されている表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置等、他の任意の表示装置を利用してもよい。また、ゲーム装置１は、任意の解像度の表示装置を利用することができる。
【００４８】
下側ハウジング１１には、入力装置として、各操作ボタン１４Ａ〜１４Ｋおよびタッチパネル１３が設けられる。図１に示されるように、各操作ボタン１４Ａ〜１４Ｋのうち、方向入力ボタン１４Ａ、操作ボタン１４Ｂ、操作ボタン１４Ｃ、操作ボタン１４Ｄ、操作ボタン１４Ｅ、電源ボタン１４Ｆ、スタートボタン１４Ｇ、およびセレクトボタン１４Ｈは、上側ハウジング２１と下側ハウジング１１とを折りたたんだときに内側となる、下側ハウジング１１の内側主面上に設けられる。方向入力ボタン１４Ａは、例えば選択操作等に用いられる。各操作ボタン１４Ｂ〜１４Ｅは、例えば決定操作やキャンセル操作等に用いられる。電源ボタン１４Ｆは、ゲーム装置１の電源をオン／オフするために用いられる。図１に示す例では、方向入力ボタン１４Ａおよび電源ボタン１４Ｆは、下側ハウジング１１の内側主面中央付近に設けられる下側ＬＣＤ１２に対して、左右一方側（図１では左側）の当該主面上に設けられる。また、操作ボタン１４Ｂ〜１４Ｅ、スタートボタン１４Ｇ、およびセレクトボタン１４Ｈは、下側ＬＣＤ１２に対して左右他方側（図１では右側）となる下側ハウジング１１の内側主面上に設けられる。方向入力ボタン１４Ａ、操作ボタン１４Ｂ〜１４Ｅ、スタートボタン１４Ｇ、およびセレクトボタン１４Ｈは、ゲーム装置１に対する各種操作を行うために用いられる。
【００４９】
なお、図１においては、操作ボタン１４Ｉ〜１４Ｋの図示を省略している。例えば、Ｌボタン１４Ｉは、下側ハウジング１１の上側面の左端部に設けられ、Ｒボタン１４Ｊは、下側ハウジング１１の上側面の右端部に設けられる。Ｌボタン１４ＩおよびＲボタン１４Ｊは、ゲーム装置１に対して、例えば撮影指示操作（シャッター操作）を行うために用いられる。さらに、音量ボタン１４Ｋは、下側ハウジング１１の左側面に設けられる。音量ボタン１４Ｋは、ゲーム装置１が備えるスピーカの音量を調整するために用いられる。
【００５０】
また、ゲーム装置１は、各操作ボタン１４Ａ〜１４Ｋとは別の入力装置として、さらにタッチパネル１３を備えている。タッチパネル１３は、下側ＬＣＤ１２の画面上を覆うように装着されている。なお、本実施形態では、タッチパネル１３は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル１３は、抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。また、本実施形態では、タッチパネル１３として、例えば下側ＬＣＤ１２の解像度と同解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１３の解像度と下側ＬＣＤ１２の解像度とが一致している必要はない。また、下側ハウジング１１の右側面には、タッチペン２７の挿入口（図１に示す破線）が設けられている。上記挿入口は、タッチパネル１３に対する操作を行うために用いられるタッチペン２７を収納することができる。なお、タッチパネル１３に対する入力は、通常タッチペン２７を用いて行われるが、タッチペン２７に限らずプレイヤの指等でタッチパネル１３を操作することも可能である。
【００５１】
また、下側ハウジング１１の右側面には、メモリカード２８を収納するための挿入口（図１では、二点鎖線で示している）が設けられている。この挿入口の内側には、ゲーム装置１とメモリカード２８とを電気的に接続するためのコネクタ（図示せず）が設けられる。メモリカード２８は、例えばＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカードであり、上記コネクタに着脱自在に装着される。メモリカード２８は、例えば、ゲーム装置１によって撮像された画像を記憶（保存）したり、他の装置で生成された画像をゲーム装置１に読み込んだりするため等に用いられる。
【００５２】
さらに、下側ハウジング１１の上側面には、メモリカード２９を収納するための挿入口（図１では、一点鎖線で示している）が設けられている。この挿入口の内側にも、ゲーム装置１とメモリカード２９とを電気的に接続するためのコネクタ（図示せず）が設けられる。メモリカード２９は、情報処理プログラムやゲームプログラム等を記憶した記憶媒体であり、下側ハウジング１１に設けられた挿入口に着脱自在に装着される。
【００５３】
下側ハウジング１１と上側ハウジング２１との連結部の左側部分には、３つのＬＥＤ１５Ａ〜１５Ｃが取り付けられる。ここで、ゲーム装置１は、他の機器との間で無線通信を行うことが可能であり、第１ＬＥＤ１５Ａは、無線通信が確立している場合に点灯する。第２ＬＥＤ１５Ｂは、ゲーム装置１の充電中に点灯する。第３ＬＥＤ１５Ｃは、ゲーム装置１の電源がオンである場合に点灯する。したがって、３つのＬＥＤ１５Ａ〜１５Ｃによって、ゲーム装置１の通信確立状況、充電状況、および、電源のオン／オフ状況をプレイヤに通知することができる。
【００５４】
一方、上側ハウジング２１には、上側ＬＣＤ２２が設けられる。上側ＬＣＤ２２は横長形状であり、長辺方向が上側ハウジング２１の長辺方向に一致するように配置される。なお、下側ＬＣＤ１２と同様、上側ＬＣＤ２２に代えて、他の任意の方式および任意の解像度の表示装置を利用してもよい。また、上側ＬＣＤ２２上を覆うように、タッチパネルを設けてもかまわない。
【００５５】
また、上側ハウジング２１には、２つのカメラ（内側カメラ２３および外側カメラ２５）が設けられる。図１に示されるように、内側カメラ２３は、上側ハウジング２１の連結部付近の内側主面に取り付けられる。一方、外側カメラ２５は、内側カメラ２３が取り付けられる内側主面の反対側の面、すなわち、上側ハウジング２１の外側主面（ゲーム装置１が閉状態となった場合に外側となる面であり、図１に示す上側ハウジング２１の背面）に取り付けられる。なお、図１においては、外側カメラ２５を破線で示している。これによって、内側カメラ２３は、上側ハウジング２１の内側主面が向く方向を撮像することが可能であり、外側カメラ２５は、内側カメラ２３の撮像方向の逆方向、すなわち、上側ハウジング２１の外側主面が向く方向を撮像することが可能である。このように、本実施形態では、２つの内側カメラ２３および外側カメラ２５の撮像方向が互いに逆方向となるように設けられる。例えば、プレイヤは、ゲーム装置１からプレイヤの方を見た景色を内側カメラ２３で撮像することができるとともに、ゲーム装置１からプレイヤの反対側の方向を見た景色を外側カメラ２５で撮像することができる。なお、下側ＬＣＤ１２および／または上側ＬＣＤ２２は、内側カメラ２３または外側カメラ２５で撮像されている画像をリアルタイムに表示するために用いられることもある。
【００５６】
なお、上記連結部付近の内側主面には、音声入力装置としてマイク（図２に示すマイク４３）が収納されている。そして、上記連結部付近の内側主面には、マイク４３がゲーム装置１外部の音を検知できるように、マイクロフォン用孔１６が形成される。マイク４３を収納する位置およびマイクロフォン用孔１６の位置は必ずしも上記連結部である必要はなく、例えば下側ハウジング１１にマイク４３を収納し、マイク４３の収納位置に対応させて下側ハウジング１１にマイクロフォン用孔１６を設けるようにしても良い。
【００５７】
また、上側ハウジング２１の外側主面には、第４ＬＥＤ２６（図１では、破線で示す）が取り付けられる。第４ＬＥＤ２６は、内側カメラ２３または外側カメラ２５によって撮像が行われている間点灯する。また、内側カメラ２３または外側カメラ２５によって動画が撮像（撮像画像を動画として記憶）される間は点滅させても良い。なお、ＬＥＤが画面に映り込むことを防ぐために、シャッターが押された瞬間から、当該シャッターが押された瞬間の撮像画像の記憶が完了するまでの間は第４ＬＥＤ２６を消灯させても良い。第４ＬＥＤ２６によって、ゲーム装置１による撮像が行われていることを撮像対象者や周囲に通知することができる。
【００５８】
また、上側ハウジング２１の内側主面中央付近に設けられる上側ＬＣＤ２２に対して、左右両側の当該主面に音抜き孔２４がそれぞれ形成される。音抜き孔２４の奥の上側ハウジング２１内には、それぞれスピーカが収納されている。音抜き孔２４は、スピーカからの音をゲーム装置１の外部に放出するための孔である。
【００５９】
以上に説明したように、上側ハウジング２１には、画像を撮像するための構成である内側カメラ２３および外側カメラ２５と、各種画像を表示するための表示手段である上側ＬＣＤ２２とが設けられる。一方、下側ハウジング１１には、ゲーム装置１に対する操作入力を行うための入力装置（タッチパネル１３および各ボタン１４Ａ〜１４Ｋ）と、各種画像を表示するための表示手段である下側ＬＣＤ１２とが設けられる。当該入力装置は、例えば、ゲーム装置１を使用する際には、下側ＬＣＤ１２や上側ＬＣＤ２２に撮像画像（カメラによって撮像された画像）を表示しながら、下側ハウジング１１をプレイヤが把持して入力装置に対する入力を行うような用途に用いることができる。
【００６０】
次に、図２を参照して、ゲーム装置１の内部構成を説明する。なお、図２は、ゲーム装置１の内部構成の一例を示すブロック図である。
【００６１】
図２において、ゲーム装置１は、ＣＰＵ３１と、メインメモリ３２と、メモリ制御回路３３と、保存用データメモリ３４と、プリセットデータ用メモリ３５と、メモリカードインターフェース（メモリカードＩ／Ｆ）３６および３７と、無線通信モジュール３８と、ローカル通信モジュール３９と、リアルタイムクロック（ＲＴＣ）４０と、電源回路４１と、インターフェース回路（Ｉ／Ｆ回路）４２等との電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて、下側ハウジング１１（または上側ハウジング２１でもよい）内に収納される。
【００６２】
ＣＰＵ３１は、所定のプログラムを実行するための情報処理手段である。本実施形態では、所定のプログラムがゲーム装置１内のメモリ（例えば保存用データメモリ３４）やメモリカード２８および／または２９に記憶されており、ＣＰＵ３１は、当該所定のプログラムを実行することによって、後述する情報処理を実行する。なお、ＣＰＵ３１によって実行されるプログラムは、ゲーム装置１内のメモリに予め記憶されていてもよいし、メモリカード２８および／または２９から取得されてもよいし、他の機器との通信によって他の機器から取得されてもよい。
【００６３】
ＣＰＵ３１には、メインメモリ３２、メモリ制御回路３３、およびプリセットデータ用メモリ３５が接続される。また、メモリ制御回路３３には、保存用データメモリ３４が接続される。メインメモリ３２は、ＣＰＵ３１のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ３２は、上記情報処理に用いられる各種データを記憶したり、外部（メモリカード２８および２９や他の機器等）から取得されるプログラムを記憶したりする。本実施形態では、メインメモリ３２として、例えばＰＳＲＡＭ（Ｐｓｅｕｄｏ−ＳＲＡＭ）を用いる。保存用データメモリ３４は、ＣＰＵ３１によって実行されるプログラムや内側カメラ２３および外側カメラ２５によって撮像された画像のデータ等を記憶するための記憶手段である。保存用データメモリ３４は、不揮発性の記憶媒体によって構成されており、例えば本実施例ではＮＡＮＤ型フラッシュメモリで構成される。メモリ制御回路３３は、ＣＰＵ３１の指示に従って、保存用データメモリ３４に対するデータの読み出しおよび書き込みを制御する回路である。プリセットデータ用メモリ３５は、ゲーム装置１において予め設定される各種パラメータ等のデータ（プリセットデータ）を記憶するための記憶手段である。プリセットデータ用メモリ３５としては、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）バスによってＣＰＵ３１と接続されるフラッシュメモリを用いることができる。
【００６４】
メモリカードＩ／Ｆ３６および３７は、それぞれＣＰＵ３１に接続される。メモリカードＩ／Ｆ３６は、コネクタに装着されたメモリカード２８に対するデータの読み出しおよび書き込みを、ＣＰＵ３１の指示に応じて行う。また、メモリカードＩ／Ｆ３７は、コネクタに装着されたメモリカード２９に対するデータの読み出しおよび書き込みを、ＣＰＵ３１の指示に応じて行う。本実施形態では、メモリカード２９に記憶された各種プログラムが、ＣＰＵ３１によって読み出されて実行される例を用いる。
【００６５】
なお、本発明の情報処理プログラム（ゲームプログラム）は、メモリカード２９を通じてコンピュータシステムに供給されるだけでなく、メモリカード２８等の外部記憶媒体を通じてコンピュータシステムに供給されてもよい。また、本発明の情報処理プログラムは、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよい。さらに、本発明の情報処理プログラムは、コンピュータシステム内部の不揮発性記憶装置に予め記憶されていてもよい。なお、本発明の情報処理プログラムを記憶する情報記憶媒体としては、上記不揮発性記憶装置に限らず、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
【００６６】
無線通信モジュール３８は、例えばＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、ローカル通信モジュール３９は、所定の通信方式により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール３８およびローカル通信モジュール３９は、ＣＰＵ３１に接続される。ＣＰＵ３１は、無線通信モジュール３８を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール３９を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【００６７】
また、ＣＰＵ３１には、ＲＴＣ４０および電源回路４１が接続される。ＲＴＣ４０は、時間をカウントしてＣＰＵ３１に出力する。例えば、ＣＰＵ３１は、ＲＴＣ４０によって計時された時間に基づいて、現在時刻（日付）等を計算することもできる。電源回路４１は、ゲーム装置１が有する電源（典型的には電池であり、下側ハウジング１１に収納される）から供給される電力を制御し、ゲーム装置１の各部品に電力を供給する。
【００６８】
また、ゲーム装置１は、マイク４３およびアンプ４４を備えている。マイク４３およびアンプ４４は、それぞれＩ／Ｆ回路４２に接続される。マイク４３は、ゲーム装置１に向かって発声されたプレイヤの音声を検知して、当該音声を示す音声信号をＩ／Ｆ回路４２に出力する。アンプ４４は、Ｉ／Ｆ回路４２から音声信号を増幅してスピーカ（図示せず）から出力させる。Ｉ／Ｆ回路４２は、ＣＰＵ３１に接続される。
【００６９】
また、タッチパネル１３は、Ｉ／Ｆ回路４２に接続される。Ｉ／Ｆ回路４２は、マイク４３およびアンプ４４（スピーカ）の制御を行う音声制御回路と、タッチパネル１３の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル１３からの信号に基づいて所定の形式のタッチ位置データを生成してＣＰＵ３１に出力する。例えば、タッチ位置データは、タッチパネル１３の入力面に対して入力が行われた位置の座標を示すデータである。なお、タッチパネル制御回路は、タッチパネル１３からの信号の読み込み、および、タッチ位置データの生成を所定時間に１回の割合で行う。ＣＰＵ３１は、Ｉ／Ｆ回路４２を介して、タッチ位置データを取得することにより、タッチパネル１３に対して入力が行われた位置を知ることができる。
【００７０】
操作ボタン１４は、上記各操作ボタン１４Ａ〜１４Ｋから構成され、ＣＰＵ３１に接続される。操作ボタン１４からＣＰＵ３１へは、各操作ボタン１４Ａ〜１４Ｋに対する入力状況（押下されたか否か）を示す操作データが出力される。ＣＰＵ３１は、操作ボタン１４から操作データを取得することによって、操作ボタン１４に対する入力に応じた処理を実行する。
【００７１】
内側カメラ２３および外側カメラ２５は、それぞれＣＰＵ３１に接続される。内側カメラ２３および外側カメラ２５は、ＣＰＵ３１の指示に応じて画像を撮像し、撮像した画像データをＣＰＵ３１に出力する。例えば、ＣＰＵ３１は、内側カメラ２３および外側カメラ２５のいずれか一方に対して撮像指示を行い、撮像指示を受けたカメラが画像を撮像して画像データをＣＰＵ３１に送る。
【００７２】
また、下側ＬＣＤ１２および上側ＬＣＤ２２は、それぞれＣＰＵ３１に接続される。下側ＬＣＤ１２および上側ＬＣＤ２２は、それぞれＣＰＵ３１の指示に従って画像を表示する。一例として、ＣＰＵ３１は、上記ゲームプログラムを実行することによって生成された画像（例えば、ゲーム画像）を下側ＬＣＤ１２および／または上側ＬＣＤ２２に表示させる。他の例として、ＣＰＵ３１は、内側カメラ２３および外側カメラ２５のいずれかから取得した画像を、下側ＬＣＤ１２および上側ＬＣＤ２２の一方に表示させ、所定の処理によって生成した操作説明画面を下側ＬＣＤ１２および上側ＬＣＤ２２の他方に表示させる。
【００７３】
次に、ゲーム装置１で実行されるゲームプログラムによる具体的な処理動作を説明する前に、図３〜図１３を参照して当該ゲーム処理動作によって下側ＬＣＤ１２に表示される表示形態例等について説明する。なお、図３〜図５は、タッチパネル１３を介して「はじき操作」をすることによって単一の操作オブジェクトを移動対象として選択した場合に、下側ＬＣＤ１２に表示されるゲーム画像の一例を示す図である。図６〜図９は、タッチパネル１３を介して「継続タッチ操作」をすることによって複数の操作オブジェクトを移動対象として選択した場合に、下側ＬＣＤ１２に表示されるゲーム画像の一例を示す図である。図１０〜図１３は、タッチパネル１３を介して「ダブルタッチ操作」をすることによって複数の操作オブジェクトを移動対象として選択した場合に、下側ＬＣＤ１２に表示されるゲーム画像の一例を示す図である。
【００７４】
図３〜図１３において、下側ＬＣＤ１２には、仮想ゲーム世界に配置された複数のプレイヤオブジェクトＰＯが表示されている。ここで、後述するゲーム処理においては、仮想ゲーム世界内においてプレイヤが操作可能なプレイヤオブジェクトが複数存在する場合があり、本実施形態においては、これら複数存在するプレイヤオブジェクトをプレイヤオブジェクトＰＯと総称している。具体的には、図３〜図１３に示した下側ＬＣＤ１２には、４つのプレイヤオブジェクトＰＯ１〜ＰＯ４が表示されており、ゲーム装置１を操作するプレイヤがタッチパネル１３を介してタッチ操作することに応じて仮想ゲーム世界内を移動するオブジェクトとして機能している。なお、仮想ゲーム世界が下側ＬＣＤ１２に表示される表示範囲より大きく設定されている場合、プレイヤが操作可能なプレイヤオブジェクトＰＯが当該表示範囲外の仮想ゲーム世界内に配置されている場合もあり得る。
【００７５】
図３において、４つのプレイヤオブジェクトＰＯ１〜ＰＯ４の１つのプレイヤオブジェクト（図３の例では、プレイヤオブジェクトＰＯ２）に対して、プレイヤがタッチペン２７を用いてタッチパネル１３を「はじき操作」している。ここで、「はじき操作」とは、タッチパネル１３を介して、プレイヤが移動させたいプレイヤオブジェクトＰＯをはじくようなタッチ操作をすることを示している。本実施形態においては、プレイヤが移動させたいプレイヤオブジェクトＰＯ上の位置においてタッチパネル１３に対してタッチ操作を開始（タッチオン）し、当該プレイヤオブジェクトＰＯを移動させたい方向に当該タッチオン位置からタッチパネル１３上をスライドさせた後にタッチパネル１３へのタッチ操作を終了（タッチオフ）する一連のはじくようなタッチ操作が、所定の時間内で行われた場合に「はじき操作」となる。図３の一例では、プレイヤがプレイヤオブジェクトＰＯ２を移動させるために、プレイヤオブジェクトＰＯ２上の位置でタッチパネル１３にタッチオン（タッチ位置ＴＰ１）した後に、移動させたい右上方向（図示破線矢印方向）に当該タッチオン位置からタッチパネル１３上を短時間でスライドさせた後にタッチオフ（タッチ位置ＴＰ２）する「はじき操作」を行っている。
【００７６】
図３に示すような「はじき操作」が行われた場合、下側ＬＣＤ１２に表示されている複数のプレイヤオブジェクトＰＯ１〜ＰＯ４のうち、タッチオン位置（タッチ位置ＴＰ１）に配置されていたプレイヤオブジェクトＰＯ２のみがタッチオフ位置に向かう方向（すなわち、タッチ位置ＴＰ１からタッチ位置ＴＰ２へ向かう方向）へ移動を開始する（図４参照）。なお、プレイヤオブジェクトＰＯ２が移動を開始する際の仮想ゲーム世界における移動速度は、例えば「はじき操作」によってタッチ操作されたタッチ位置変化量の平均値によって決定されるが、詳細については後述する。
【００７７】
「はじき操作」に応じて仮想ゲーム世界を移動するプレイヤオブジェクトＰＯ２は、以降の移動速度および移動方向が仮想ゲーム世界に設定された環境に応じて変化していく（図５参照）。すなわち、移動対象となったプレイヤオブジェクトに対する「はじき操作」による初速度および移動開始方向（射出方向）が「はじき操作」におけるタッチ入力によって決定されるが、以降の移動速度および移動方向については仮想ゲーム世界に設定された環境を考慮しながら決定される。例えば、仮想ゲーム世界に下方向の重力加速度が設定されている場合、当該重力加速度による物理法則に応じてプレイヤオブジェクトＰＯ２の移動速度および移動方向が変化していく。また、仮想ゲーム世界に配置された他のオブジェクト（他のキャラクタ、壁、天井、地面等）とプレイヤオブジェクトＰＯ２とが接触した場合は、接触した他のオブジェクトの特性に応じてプレイヤオブジェクトＰＯ２の移動速度および移動方向が変化（例えば、移動を停止、はね返される）する。
【００７８】
図６において、４つのプレイヤオブジェクトＰＯ１〜ＰＯ４の全てに対して、プレイヤがタッチペン２７を用いてタッチパネル１３を「継続タッチ操作」している。ここで、「継続タッチ操作」とは、タッチパネル１３を介して、プレイヤが全てのプレイヤオブジェクトＰＯを集合させたい位置をタッチし続けるようなタッチ操作をすることを示している。本実施形態においては、プレイヤがプレイヤオブジェクトＰＯを移動させたい仮想ゲーム世界内の位置（プレイヤオブジェクトＰＯ上を除く）においてタッチパネル１３に対してタッチオンしてからタッチオフするまで、タッチし続けている時間が所定の時間以上行われるタッチ操作が「継続タッチ操作」となる。図６の一例では、プレイヤが全てのプレイヤオブジェクトＰＯ１〜ＰＯ４を集合させるために、集合させたい仮想ゲーム世界内の位置でタッチパネル１３にタッチオン（タッチ位置ＴＰ）し、当該タッチオン位置におけるタッチ操作を続ける「継続タッチ操作」を行っている。
【００７９】
図６に示すような「継続タッチ操作」が行われた場合、「継続タッチ操作」されている仮想ゲーム世界の位置（典型的には、「継続タッチ操作」においてタッチパネル１３がタッチ操作されている位置と重なる仮想ゲーム世界の位置）に第１集合目標オブジェクトＴＯ１が表示される。そして、仮想ゲーム世界に存在する全てのプレイヤオブジェクトＰＯ（図６の例では、４つのプレイヤオブジェクトＰＯ１〜ＰＯ４）は、第１集合目標オブジェクトＴＯ１（すなわち、タッチ位置ＴＰ）に向かって移動を開始する（図７参照）。なお、プレイヤが「継続タッチ操作」中にタッチ位置を変えた場合、当該タッチ位置の移動に応じて第１集合目標オブジェクトＴＯ１の表示位置も変更され、全てのプレイヤオブジェクトＰＯが移動目標とする位置も第１集合目標オブジェクトＴＯ１の表示位置の変更に応じて変更される。また、プレイヤがタッチパネル１３からタッチオフして「継続タッチ操作」を終了した場合、第１集合目標オブジェクトＴＯ１も即時または一段階（ワンクッション）置いて消滅する。
【００８０】
本実施形態においては、全てのプレイヤオブジェクトＰＯが第１集合目標オブジェクトＴＯ１に集合する際、まずプレイヤオブジェクトＰＯは、第１集合目標オブジェクトＴＯ１に近づくように仮想ゲーム世界におけるＸ軸方向（画面左右方向）に移動する（図７参照）。その後、プレイヤオブジェクトＰＯは、第１集合目標オブジェクトＴＯ１のＸ軸方向の位置に対して一定の範囲内に到達すると、第１集合目標オブジェクトＴＯ１に近づくように仮想ゲーム世界におけるＹ軸方向（画面上下方向）に移動（ジャンプ）する（図８参照）。そして、プレイヤオブジェクトＰＯは、第１集合目標オブジェクトＴＯ１に対して所定の範囲内に到達すると、第１集合目標オブジェクトＴＯ１に引っ付いて仮想ゲーム世界における移動を停止する（図９参照）。このような移動を各プレイヤオブジェクトＰＯが行うことによって、結果的に第１集合目標オブジェクトＴＯ１が配置されている位置（すなわち、「継続タッチ操作」されている位置）に全ての各プレイヤオブジェクトＰＯが集合することになる。そして、第１集合目標オブジェクトＴＯ１が消滅（すなわち、タッチパネル１３からタッチオフして「継続タッチ操作」を終了）した場合、プレイヤオブジェクトＰＯが第１集合目標オブジェクトＴＯ１に向かって移動する動作も終了する。また、第１集合目標オブジェクトＴＯ１が消滅した場合、第１集合目標オブジェクトＴＯ１に引っ付いていたプレイヤオブジェクトＰＯは、仮想ゲーム世界に設定された環境に応じて動作（例えば、仮想ゲーム世界の下方向に自由落下）する。
【００８１】
図１０において、４つのプレイヤオブジェクトＰＯ１〜ＰＯ４の全てに対して、プレイヤがタッチペン２７を用いてタッチパネル１３を「ダブルタッチ操作」している。ここで、「ダブルタッチ操作」とは、タッチパネル１３を介して、プレイヤが全てのプレイヤオブジェクトＰＯを集合させたい位置をタッチオンして短時間でタッチオフする操作（タップ操作）を、所定の時間以内に２度行うタッチ操作を示している。本実施形態においては、プレイヤがプレイヤオブジェクトＰＯを移動させたい仮想ゲーム世界内の位置（プレイヤオブジェクトＰＯ上を除く）に対するタップ操作が、所定の時間以内に２度行われた場合に「ダブルタッチ操作」となる。図１０の一例では、プレイヤが全てのプレイヤオブジェクトＰＯ１〜ＰＯ４を集合させるために、集合させたい仮想ゲーム世界内の位置（タッチ位置ＴＰ）を２度タップ操作する「ダブルタッチ操作」を行っている。
【００８２】
図１０に示すような「ダブルタッチ操作」が行われた場合、「ダブルタッチ操作」された仮想ゲーム世界の位置（典型的には、「ダブルタッチ操作」においてタップ操作された位置と重なる仮想ゲーム世界の位置）に第２集合目標オブジェクトＴＯ２が表示される。そして、仮想ゲーム世界に存在する全てのプレイヤオブジェクトＰＯ（図１０の例では、４つのプレイヤオブジェクトＰＯ１〜ＰＯ４）は、第２集合目標オブジェクトＴＯ２（すなわち、タッチ位置ＴＰ）に向かって移動を開始する（図１１参照）。なお、第２集合目標オブジェクトＴＯ２は、第１集合目標オブジェクトＴＯ１と表示態様を区別するために、例えば相対的に大きく仮想ゲーム世界に表示される。また、プレイヤが「ダブルタッチ操作」をした後、第２集合目標オブジェクトＴＯ２は、仮想ゲーム世界に所定時間表示され続ける。そして、第２集合目標オブジェクトＴＯ２は、当該所定時間経過後、仮想ゲーム世界から消滅する。
【００８３】
本実施形態においては、全てのプレイヤオブジェクトＰＯが第２集合目標オブジェクトＴＯ２に集合する際、まずプレイヤオブジェクトＰＯは、第２集合目標オブジェクトＴＯ２に近づくように仮想ゲーム世界におけるＸ軸方向（画面左右方向）に移動する（図１１参照）。ここで、第２集合目標オブジェクトＴＯ２に近づく場合のプレイヤオブジェクトＰＯの移動速度は、第１集合目標オブジェクトＴＯ１に近づく場合の移動速度より高速となるように設定される。その後、プレイヤオブジェクトＰＯは、第２集合目標オブジェクトＴＯ２のＸ軸方向の位置に対して一定の範囲内に到達すると、第２集合目標オブジェクトＴＯ２に近づくように仮想ゲーム世界におけるＹ軸方向（画面上下方向）に移動（ジャンプ）する（図１２参照）。そして、プレイヤオブジェクトＰＯは、第２集合目標オブジェクトＴＯ２に対して所定の範囲内に到達すると、第２集合目標オブジェクトＴＯ２に引っ付いて仮想ゲーム世界における移動を停止する（図１３参照）。このような移動を各プレイヤオブジェクトＰＯが行うことによって、結果的に第２集合目標オブジェクトＴＯ２が配置されている位置（すなわち、「ダブルタッチ操作」された位置）に全ての各プレイヤオブジェクトＰＯが集合することになる。そして、第２集合目標オブジェクトＴＯ２が消滅（すなわち、「ダブルタッチ操作」終了して所定時間経過後）した場合、プレイヤオブジェクトＰＯが第２集合目標オブジェクトＴＯ２に向かって移動する動作も終了する。また、第２集合目標オブジェクトＴＯ２が消滅した場合、第２集合目標オブジェクトＴＯ２に引っ付いていたプレイヤオブジェクトＰＯは、仮想ゲーム世界に設定された環境に応じて動作（例えば、仮想ゲーム世界の下方向に自由落下）する。
【００８４】
このように、上述したように「継続タッチ操作」の場合も「ダブルタッチ操作」の場合も、全てのプレイヤオブジェクトＰＯを集合させる操作となる。しかしながら、「ダブルタッチ操作」の場合は、プレイヤオブジェクトＰＯの移動速度が相対的に高速となる利点と、プレイヤがタッチパネル１３に対してタッチ操作していない間もプレイヤオブジェクトＰＯを集合させることができる利点がある。このように、プレイヤオブジェクトＰＯを集合させる場合に異なる態様が選択可能であるため、プレイヤは、そのときの操作状態やゲーム状態に応じて所望のタッチ操作を選択することが可能となる。
【００８５】
なお、上述した説明では、「ダブルタッチ操作」の場合は、プレイヤオブジェクトＰＯの移動速度が「継続タッチ操作」による移動速度より高速となるように設定したが、プレイヤオブジェクトＰＯの移動速度が「継続タッチ操作」による移動速度より低速となるように設定してもかまわない。
【００８６】
次に、図１４〜図２２を参照して、ゲーム装置１で実行されるゲームプログラムによる具体的な処理動作について説明する。なお、図１４は、ゲームプログラムを実行することに応じて、メインメモリ３２に記憶される各種データの一例を示す図である。図１５は、当該ゲームプログラムを実行することによってゲーム装置１がゲーム処理する動作の一例を示す第１部分のフローチャートである。図１６は、当該ゲームプログラムを実行することによってゲーム装置１がゲーム処理する動作の一例を示す第２部分のフローチャートである。図１７は、当該ゲームプログラムを実行することによってゲーム装置１がゲーム処理する動作の一例を示す第３部分のフローチャートである。図１８は、当該ゲームプログラムを実行することによってゲーム装置１がゲーム処理する動作の一例を示す第４部分のフローチャートである。図１９は、当該ゲームプログラムを実行することによってゲーム装置１がゲーム処理する動作の一例を示す第５部分のフローチャートである。図２０は、図１７のステップ９８および図１９のステップ１１４で行われるはじき処理の詳細な動作の一例を示すサブルーチンである。図２１は、図１５のステップ６６等で行われる集合処理の詳細な動作の一例を示すサブルーチンである。図２２は、図１８のステップ１０５および図１９のステップ１１２で行われるダブルタッチ処理の詳細な動作の一例を示すサブルーチンである。なお、これらの処理を実行するためのプログラムは、ゲーム装置１に内蔵されるメモリ（例えば、保存用データメモリ３４）やメモリカード２８またはメモリカード２９に含まれており、ゲーム装置１の電源がオンになったときに、メモリカードＩ／Ｆ３６やメモリカードＩ／Ｆ３７を介してメモリカード２８やメモリカード２９から、または内蔵メモリからメインメモリ３２に読み出されて、ＣＰＵ３１によって実行される。
【００８７】
図１４において、メインメモリ３２には、内蔵メモリ、メモリカード２８、またはメモリカード２９から読み出されたプログラムや画像処理において生成される一時的なデータが記憶される。図１４において、メインメモリ３２のデータ記憶領域には、操作データＤａ、タッチ開始座標ＡデータＤｂ、現在座標ＢデータＤｃ、累積値データＤｄ、移動対象データＤｅ、移動速度データＤｆ、移動方向データＤｇ、プレイヤオブジェクト位置データＤｈ、経過時間値データＤｉ、ダブルタッチタイマデータＤｊ、タッチモードデータＤｋ、タッチ継続フラグデータＤｌ、はじき無効フラグデータＤｍ、はじき中フラグデータＤｎ、ダブルタッチタイマフラグデータＤｏ、ダブルタッチ中フラグデータＤｐ、および画像データＤｑ等が格納される。また、メインメモリ３２のプログラム記憶領域には、情報処理プログラムを構成する各種プログラム群Ｐａが記憶される。
【００８８】
操作データＤａは、プレイヤがゲーム装置１を操作しているデータが格納される。操作データＤａは、タッチパネル１３をプレイヤがタッチしている画面座標系のタッチ位置を示すタッチ座標のデータを含んでいる。例えば、タッチ座標は、ゲーム装置１がゲーム処理する時間単位（例えば、１／６０秒）毎に取得され、当該取得に応じて操作データＤａに格納されて更新される。なお、プレイヤがタッチパネル１３をタッチしていない場合、操作データＤａにはＮｕｌｌ値（空値）が格納される。
【００８９】
タッチ開始座標ＡデータＤｂは、タッチパネル１３をプレイヤがタッチ操作する際、当該タッチ操作を開始した画面座標系のタッチ位置を示すタッチ座標のデータが格納される。現在座標ＢデータＤｃは、タッチパネル１３をプレイヤがタッチ操作している場合において、当該タッチ操作行っている現在の画面座標系のタッチ位置を示すタッチ座標のデータが格納される。累積値データＤｄは、タッチパネル１３をプレイヤがタッチ操作しているタッチ位置の変化量を、当該タッチ操作の期間中において累積した累積値を示すデータが格納される。
【００９０】
移動対象データＤｅは、仮想ゲーム世界に配置されたプレイヤオブジェクトＰＯのうち、タッチ操作に応じて移動対象となったプレイヤオブジェクトＰＯを示すデータが格納される。移動速度データＤｆは、タッチ操作に対応して移動対象となったプレイヤオブジェクトＰＯにおける仮想ゲーム世界の移動速度を示すデータが格納される。移動方向データＤｇは、タッチ操作に対応して移動対象となったプレイヤオブジェクトＰＯにおける仮想ゲーム世界の移動方向を示すデータが格納される。なお、移動速度データＤｆおよび移動方向データＤｇは、プレイヤオブジェクトＰＯにおける仮想ゲーム世界の移動速度および移動方向を示す移動ベクトルの形式で格納してもかまわない。プレイヤオブジェクト位置データＤｈは、プレイヤオブジェクトＰＯそれぞれが仮想ゲーム世界に配置される位置を示すデータが格納される。
【００９１】
経過時間値データＤｉは、タッチパネル１３をプレイヤがタッチ操作する際、当該タッチ操作を開始してからの経過時間を示すデータが格納される。ダブルタッチタイマデータＤｊは、プレイヤが上記「ダブルタッチ操作」を行う際、１回目のタップ操作におけるタッチオフからの経過時間（ダブルタッチタイマ値）を示すデータが格納される。
【００９２】
タッチモードデータＤｋは、プレイヤがタッチパネル１３をタッチ操作しているタッチモード（「はじき」、「集合」等）を示すデータが格納される。タッチ継続フラグデータＤｌは、プレイヤがタッチパネル１３をタッチ操作している間においてオンに設定されるタッチ継続フラグを示すデータであり、最初のタッチオンか否かを判定したり、タッチオフしたときにタッチオフ直後か否かを判定したりするために用いられるデータが格納される。はじき無効フラグデータＤｍは、上記「はじき操作」が所定時間以上継続して行われた場合にオンに設定されるはじき無効フラグを示すデータが格納される。はじき中フラグデータＤｎは、上記「はじき操作」が行われて当該「はじき操作」に応じた移動処理が行われている間においてオンに設定されるはじき中フラグを示すデータが格納される。ダブルタッチタイマフラグデータＤｏは、プレイヤが上記「ダブルタッチ操作」を行う際、１回目のタップ操作におけるタッチオフからの２回目のタップ操作におけるタッチオフまでの間においてオンに設定されるダブルタッチタイマフラグを示すデータが格納される。ダブルタッチ中フラグデータＤｐは、上記「ダブルタッチ操作」が行われて当該「ダブルタッチ操作」に応じた移動処理が行われている間においてオンに設定されるダブルタッチ中フラグを示すデータが格納される。
【００９３】
画像データＤｑは、プレイヤオブジェクトＰＯ、第１集合目標オブジェクトＴＯ１、および第２集合目標オブジェクトＴＯ２等のゲーム画像をゲーム装置１に表示するための画像データが格納される。
【００９４】
次に、図１５を参照して、ゲーム装置１の動作について説明する。まず、ゲーム装置１の電源（電源ボタン１４Ｆ）がＯＮされると、ＣＰＵ３１によってブートプログラム（図示せず）が実行され、これにより内蔵メモリまたはメモリカード２８やメモリカード２９に格納されているゲームプログラムがメインメモリ３２にロードされる。そして、当該ロードされたゲームプログラムがＣＰＵ３１で実行されることによって、図１５に示すステップ（図１５〜図２２では「Ｓ」と略称する）が実行される。
【００９５】
図１５において、ＣＰＵ３１は、ゲーム処理の初期設定を行って（ステップ５１）、処理を次のステップに進める。例えば、ＣＰＵ３１が上記ステップ５１で行う初期設定として、メインメモリ３２に格納されている各パラメータを所定の数値や状態に初期化する。例えば、ＣＰＵ３１は、タッチ継続フラグデータＤｌ、はじき無効フラグデータＤｍ、はじき中フラグデータＤｎ、ダブルタッチタイマフラグデータＤｏ、およびダブルタッチ中フラグデータＤｐにそれぞれ格納されているフラグを全てオフ（ＯＦＦ）に設定する。また、上記ステップ５１で行う初期設定として、ＣＰＵ３１は、仮想ゲーム世界の初期設定（仮想ゲーム空間や仮想ゲーム領域の設定、背景の設定、表示領域の設定、プレイヤオブジェクトＰＯを含む各オブジェクトの配置等）を行い、設定された表示領域に対応する仮想ゲーム世界を下側ＬＣＤ１２に表示する。
【００９６】
次に、ＣＰＵ３１は、プレイヤがタッチパネル１３を操作することによって出力される操作データを取得して操作データＤａを更新し（ステップ５２）、処理を次のステップに進める。例えば、ＣＰＵ３１は、タッチパネル１３をタッチしている画面座標系のタッチ位置を示すタッチ座標を取得して、操作データＤａに記憶されたタッチ座標を更新する。なお、プレイヤがタッチパネル１３をタッチしていない場合、操作データＤａに記憶されているタッチ座標には、Ｎｕｌｌ値が格納される。
【００９７】
次に、ＣＰＵ３１は、上記ステップ５２で取得した操作データが、タッチパネル１３へタッチ操作されていることを示すデータか否かを判断する（ステップ５３）。例えば、ＣＰＵ３１は、操作データＤａにタッチ座標が格納されているか否かによって、上記ステップ５３の判断を行う。具体的には、ＣＰＵ３１は、操作データＤａにタッチ座標が格納されていればタッチ操作がされていると判断し、操作データＤａにＮｕｌｌ値が格納されていればタッチ操作がされていないと判断する。そして、ＣＰＵ３１は、タッチ操作されている場合、次のステップ５４に処理を進める。一方、ＣＰＵ３１は、タッチ操作されていない場合、次のステップ９０（図１７）に処理を進める。
【００９８】
ステップ５４において、ＣＰＵ３１は、はじき無効フラグデータＤｍを参照して、はじき無効フラグがオフ（ＯＦＦ）に設定されているか否かを判断する。そして、ＣＰＵ３１は、はじき無効フラグがオフ（ＯＦＦ）に設定されている場合、次のステップ５５に処理を進める。一方、ＣＰＵ３１は、はじき無効フラグがオン（ＯＮ）に設定されている場合、上記ステップ５２に戻って処理を繰り返す。すなわち、後述のはじき無効フラグがオン（ＯＮ）に設定されている限り、ステップ５５以降の処理が無効となる。
【００９９】
ステップ５５において、ＣＰＵ３１は、ダブルタッチ中フラグデータＤｐが示すダブルタッチ中フラグをＯＦＦに設定して、次のステップに処理を進める。
【０１００】
次に、ＣＰＵ３１は、タッチ継続フラグデータＤｌを参照して、タッチ継続フラグがオン（ＯＮ）に設定されているか否かを判断する（ステップ５６）。そして、ＣＰＵ３１は、タッチ継続フラグがオン（ＯＮ）に設定されている場合、次のステップ５７に処理を進める。一方、ＣＰＵ３１は、タッチ継続フラグがオフ（ＯＦＦ）に設定されている場合、次のステップ７０（図１６）に処理を進める。なお、後述により明らかとなるが、プレイヤがタッチパネル１３に最初にタッチオンした場合は、タッチ継続フラグがオフ（ＯＦＦ）に設定されており、プレイヤが最初にタッチオンした場合を先に説明するために、ステップ７０以降（図１６）の説明を先に行う。
【０１０１】
図１６において、ＣＰＵ３１は、ダブルタッチタイマフラグデータＤｏを参照して、ダブルタッチタイマフラグがオン（ＯＮ）に設定されているか否かを判断する（ステップ７０）。そして、ＣＰＵ３１は、ダブルタッチタイマフラグがオン（ＯＮ）に設定されている場合、次のステップ７１に処理を進める。一方、ＣＰＵ３１は、ダブルタッチタイマフラグがオフ（ＯＦＦ）に設定されている場合、次のステップ７３に処理を進める。なお、後述により明らかとなるが、プレイヤがタッチパネル１３に最初にタッチオンした場合は、ダブルタッチタイマフラグがオフ（ＯＦＦ）に設定されており、プレイヤが最初にタッチオンした場合を先に説明するために、ステップ７３以降の説明を先に行う。
【０１０２】
ステップ７３において、ＣＰＵ３１は、上記ステップ５２で取得した最新のタッチ座標をタッチ開始座標Ａに設定して、次のステップに処理を進める。例えば、ＣＰＵ３１は、操作データＤａを参照して、最新のタッチ座標に対応する仮想ゲーム世界内のタッチ開始座標Ａ（典型的には、タッチ座標と重なる仮想ゲーム世界内の座標であり、タッチ座標を仮想ゲーム世界内に透視変換した座標）を設定し、設定されたタッチ開始座標Ａを用いてタッチ開始座標ＡデータＤｂを更新する。
【０１０３】
次に、ＣＰＵ３１は、プレイヤオブジェクト位置データＤｈを参照して、プレイヤがプレイヤオブジェクトＰＯ上をタッチ操作（タッチオン）しているか否かを判断する（ステップ７４）。例えば、ＣＰＵ３１は、上記ステップ７３で設定されたタッチ開始座標Ａが、仮想ゲーム世界内に配置されたプレイヤオブジェクトＰＯ上である場合（例えば、図３に示すタッチ位置ＴＰ１）、プレイヤがプレイヤオブジェクトＰＯ上にタッチオンしたと判断する。そして、ＣＰＵ３１は、プレイヤオブジェクトＰＯ上でタッチオンしている場合、次のステップ７５に処理を進める。一方、ＣＰＵ３１は、プレイヤオブジェクトＰＯ以外の仮想ゲーム世界内をタッチオンしている場合（例えば、図６および図１０に示すタッチ位置ＴＰ）、次のステップ７９に処理を進める。
【０１０４】
ステップ７５において、ＣＰＵ３１は、タッチモードを「はじき」に設定し、設定されたタッチモードを用いてタッチモードデータＤｋを更新して、次のステップに処理を進める。このように、プレイヤが最初にタッチオンした位置がプレイヤオブジェクトＰＯ上である場合、タッチモードが「はじき」に設定される。
【０１０５】
次に、ＣＰＵ３１は、上記ステップ７４においてタッチオンされていると判断されたプレイヤオブジェクトＰＯを移動対象に設定し（ステップ７６）、次のステップに処理を進める。例えば、ＣＰＵ３１は、上記ステップ７３で設定されたタッチ開始座標Ａが、仮想ゲーム世界内に配置されたプレイヤオブジェクトＰＯの何れかの上である場合、当該プレイヤオブジェクトＰＯのみを移動対象に設定し、設定されたプレイヤオブジェクトＰＯを示すデータを用いて移動対象データＤｅを更新する。このように、プレイヤが何れかのプレイヤオブジェクトＰＯ上でタッチオンした場合（例えば、図３に示すプレイヤオブジェクトＰＯ２上のタッチ位置ＴＰ１）、当該プレイヤオブジェクトＰＯのみ（例えば、図３に示すプレイヤオブジェクトＰＯ２のみ）が移動対象として設定される。
【０１０６】
次に、ＣＰＵ３１は、タッチ継続フラグをオン（ＯＮ）に設定し（ステップ７７）、次のステップに処理を進める。例えば、ＣＰＵ３１は、タッチ継続フラグをオン（ＯＮ）に設定し、設定されたタッチ継続フラグを用いてタッチ継続フラグデータＤｌを更新して、次のステップに処理を進める。このように、タッチ継続フラグは、プレイヤがタッチパネル１３に最初にタッチオンした時点でオン（ＯＮ）に設定される。
【０１０７】
次に、ＣＰＵ３１は、経過時間値を初期化して（ステップ７８）、次のステップ６３（図１５）に処理を進める。例えば、ＣＰＵ３１は、経過時間値データＤｉが示す経過時間値を０に初期化して、初期化された値を用いて経過時間値データＤｉを更新する。
【０１０８】
一方、上記ステップ７４においてプレイヤオブジェクトＰＯ以外の仮想ゲーム世界内をタッチオンしていると判断した場合、ＣＰＵ３１は、タッチモードを「集合」に設定し、設定されたタッチモードを用いてタッチモードデータＤｋを更新して（ステップ７９）、次のステップに処理を進める。このように、プレイヤが最初にタッチオンした位置がプレイヤオブジェクトＰＯ以外の仮想ゲーム世界内の位置である場合（例えば、図６および図１０に示すタッチ位置ＴＰ）、タッチモードが「集合」に設定される。
【０１０９】
次に、ＣＰＵ３１は、仮想ゲーム世界内に配置されている全てのプレイヤオブジェクトＰＯを移動対象に設定し（ステップ８０）、次のステップに処理を進める。
【０１１０】
第１の例として、ＣＰＵ３１は、仮想ゲーム世界内に存在している全てのプレイヤオブジェクトＰＯを移動対象に設定し、設定されたプレイヤオブジェクトＰＯを示すデータを用いて移動対象データＤｅを更新する。なお、上述したように、仮想ゲーム世界が下側ＬＣＤ１２に表示される表示範囲より大きく設定されている場合、プレイヤが操作可能なプレイヤオブジェクトＰＯが当該表示範囲外の仮想ゲーム世界内に配置されている場合もあり得るため、上記第１の例の場合、下側ＬＣＤ１２に表示されていないプレイヤオブジェクトＰＯが移動対象となることもある。
【０１１１】
第２の例として、ＣＰＵ３１は、下側ＬＣＤ１２に表示されている全てのプレイヤオブジェクトＰＯを移動対象に設定し、設定されたプレイヤオブジェクトＰＯを示すデータを用いて移動対象データＤｅを更新する。なお、上述したように、仮想ゲーム世界が下側ＬＣＤ１２に表示される表示範囲より大きく設定されている場合、プレイヤが操作可能なプレイヤオブジェクトＰＯが当該表示範囲外の仮想ゲーム世界内に配置されている場合もあり得るが、上記第２の例の場合、下側ＬＣＤ１２に表示されていないプレイヤオブジェクトＰＯは移動対象とならない。
【０１１２】
第３の例として、ＣＰＵ３１は、仮想ゲーム世界におけるタッチ開始座標Ａを中心とした所定の範囲内に存在する全てのプレイヤオブジェクトＰＯを移動対象に設定し、設定されたプレイヤオブジェクトＰＯを示すデータを用いて移動対象データＤｅを更新する。なお、上述したように、仮想ゲーム世界が下側ＬＣＤ１２に表示される表示範囲より大きく設定されている場合、タッチ開始座標Ａを中心とした所定の範囲の一部が表示範囲の外に設定されることもあり得る。この場合、表示範囲の外に設定された上記所定の範囲の一部にプレイヤが操作可能なプレイヤオブジェクトＰＯが配置されていることもあり得るため、上記第３の例の場合も上記第１の例と同様に、下側ＬＣＤ１２に表示されていないプレイヤオブジェクトＰＯが移動対象となることもある。
【０１１３】
第４の例として、仮想ゲーム世界に配置された複数のプレイヤオブジェクトＰＯが複数の種類に分類される場合、当該複数の種類のうち、一部の種類に属するプレイヤオブジェクトＰＯのみを移動対象に設定する。例えば、上記第４の例では、上記第１の例〜第３の例の何れかで設定された移動対象のうち、一部の種類に属するプレイヤオブジェクトＰＯのみが移動対象に設定されることになる。なお、上記第４の例において、移動対象として選択するプレイヤオブジェクトＰＯの種類については、常に特定の種類が選択されてもいいし、ＣＰＵ３１が自動的に選択してもいいし、プレイヤが操作ボタン１４（例えば、方向入力ボタン１４Ａや操作ボタン１４Ｂ〜１４Ｅ）を操作することによって選択可能にしてもかまわない。このように、プレイヤがプレイヤオブジェクトＰＯ以外の仮想ゲーム世界内にタッチオンした場合、仮想ゲーム世界に複数のプレイヤオブジェクトＰＯが存在していれば、上述した第１〜第４の例のような所定の条件を満足する複数のプレイヤオブジェクトＰＯが移動対象として設定されることになる。
【０１１４】
次に、ＣＰＵ３１は、タッチ継続フラグをオン（ＯＮ）に設定し（ステップ８１）、次のステップに処理を進める。例えば、ＣＰＵ３１は、タッチ継続フラグをオン（ＯＮ）に設定し、設定されたタッチ継続フラグを用いてタッチ継続フラグデータＤｌを更新して、次のステップに処理を進める。このように、タッチ継続フラグは、プレイヤがタッチパネル１３に最初にタッチオンした時点でオン（ＯＮ）に設定される。
【０１１５】
次に、ＣＰＵ３１は、経過時間値を初期化して（ステップ８２）、次のステップ６３（図１５）に処理を進める。例えば、ＣＰＵ３１は、経過時間値データＤｉが示す経過時間値を０に初期化して、初期化された値を用いて経過時間値データＤｉを更新する。
【０１１６】
図１５に戻り、上記ステップ５６においてタッチ継続フラグがオン（ＯＮ）に設定されている場合、ＣＰＵ３１は、経過時間値をインクリメントして（ステップ５７）、次のステップに処理を進める。例えば、ＣＰＵ３１は、経過時間値データＤｉが示す経過時間値に１を加算して、加算された値を用いて経過時間値データＤｉを更新する。なお、上述したように、プレイヤがタッチパネル１３に最初にタッチオンした時点でタッチ継続フラグがオンに設定されるため（ステップ７７、ステップ８１）、上記ステップ５７以降の処理は、プレイヤがタッチパネル１３にタッチオンした後に継続して行われるタッチ操作中の処理となる。
【０１１７】
次に、ＣＰＵ３１は、タッチモードデータＤｋを参照して、タッチモードが「はじき」であるか否かを判断する（ステップ５８）。そして、ＣＰＵ３１は、タッチモードが「はじき」である場合、次のステップ５９に処理を進める。一方、ＣＰＵ３１は、タッチモードが「はじき」でない（例えば、タッチモードが「集合」である）場合、次のステップ６４に処理を進める。
【０１１８】
ステップ５９において、ＣＰＵ３１は、一連のタッチ操作におけるタッチ位置の変化量を累積し、次のステップに処理を進める。まず、ＣＰＵ３１は、前回の処理で得られたタッチ位置と最新のタッチ位置との差分を算出する。例えば、ＣＰＵ３１は、タッチ開始座標ＡデータＤｂに格納されているタッチ開始座標Ａ（タッチ開始直後の場合）または現在座標ＢデータＤｃに格納されている現在座標Ｂを前回の処理で得られたタッチ位置とし、操作データＤａに格納されているタッチ座標を最新のタッチ位置として、上記差分を算出する。そして、ＣＰＵ３１は、累積値データＤｄに格納されている累積値に上記差分によって得られた差分値を加算して累積値を算出し、当該加算後の累積値を用いて累積値データＤｄを更新する。
【０１１９】
次に、ＣＰＵ３１は、上記ステップ５２で得られたタッチ座標を用いて現在座標Ｂを更新し（ステップ６０）、次のステップに処理を進める。例えば、ＣＰＵ３１は、操作データＤａに格納されているタッチ座標を新たな現在座標Ｂとして設定し、新たに設定された現在座標Ｂを用いて現在座標ＢデータＤｃを更新する。
【０１２０】
次に、ＣＰＵ３１は、経過時間値データＤｉが示す経過時間値が第１時間以上であるか否かを判断する（ステップ６１）。そして、ＣＰＵ３１は、経過時間値が第１時間以上である場合、はじき無効フラグをオン（ＯＮ）に設定してはじき無効フラグデータＤｍを更新し（ステップ６２）、次のステップ６３に処理を進める。一方、ＣＰＵ３１は、経過時間値が第１時間未満である場合、そのまま次のステップ６３に処理を進める。なお、上記ステップ６１で判定する第１時間は、上述した「はじき操作」が行われていると認識する最長時間に設定される。例えば、タッチパネル１３に対する通常のドラッグ操作は、プレイヤにとって上記「はじき操作」と操作感覚が全く異なるものとなる。このようなドラッグ操作と「はじき操作」とを区別するために、「はじき操作」として認識できる条件としてタッチオンからタッチオフまでの最長時間を設定している。つまり、タッチオンからタッチオフまでの時間が最長時間より長い場合、プレイヤが「はじき操作」以外の操作（例えば、ドラッグ操作）をしていると判断し、はじき無効フラグをオン（ＯＮ）に設定する。そして、後述の説明により明らかとなるが、はじき無効フラグをオン（ＯＮ）に設定された場合、「はじき操作」に対応したゲーム処理とはならない。
【０１２１】
このように、上記ステップ７５でタッチモードが「はじき」に設定された後のタッチ操作中において、上記ステップ５９〜ステップ６１の処理が繰り返される。これによって、「はじき操作」を行っている際のタッチ操作中におけるタッチ位置の変化量が、順次累積される処理が行われる。
【０１２２】
一方、上記ステップ５８において、タッチモードが「集合」であると判断された場合、ＣＰＵ３１は、上記ステップ５２で得られたタッチ座標を用いて現在座標Ｂを更新し（ステップ６４）、次のステップに処理を進める。例えば、ＣＰＵ３１は、操作データＤａに格納されているタッチ座標を新たな現在座標Ｂとして設定し、新たに設定された現在座標Ｂを用いて現在座標ＢデータＤｃを更新する。
【０１２３】
次に、ＣＰＵ３１は、経過時間値データＤｉが示す経過時間値が第２時間以上であるか否かを判断する（ステップ６５）。そして、ＣＰＵ３１は、経過時間値が第２時間以上である場合、次のステップ６６に処理を進める。一方、ＣＰＵ３１は、経過時間値が第２時間未満である場合、次のステップ６３に処理を進める。なお、上記ステップ６５で判定する第２時間は、上述した「継続タッチ操作」が行われていると認識する最短時間に設定される。つまり、プレイヤオブジェクトＰＯ上以外の仮想ゲーム世界に対してタッチオンされた後のタッチ操作が上記最短時間以上継続して行われた場合、プレイヤが「継続タッチ操作」を行っていると判断する。
【０１２４】
ステップ６６において、ＣＰＵ３１は、集合処理を行って、次のステップ６３に処理を進める。以下、図２１を参照して、上記ステップ６６で行う集合処理の一例について説明する。
【０１２５】
図２１において、ＣＰＵ３１は、仮想ゲーム世界における現在座標Ｂの位置に第１集合目標オブジェクトＴＯ１を仮想ゲーム世界に配置して下側ＬＣＤ１２に表示し（ステップ１３１）、次のステップに処理を進める。例えば、ＣＰＵ３１は、仮想ゲーム世界において、現在座標ＢデータＤｃに格納されている現在座標Ｂの位置に第１集合目標オブジェクトＴＯ１に対応する画像を配置してゲーム画像を生成し（図６〜図９参照）、当該ゲーム画像を下側ＬＣＤ１２に表示する。この下側ＬＣＤ１２に対する表示制御処理によって、プレイヤが「継続タッチ操作」をしているタッチ位置ＴＰに応じた位置（典型的には、プレイヤのタッチ位置と重なる仮想ゲーム世界の位置）に、第１集合目標オブジェクトＴＯ１が表示される。
【０１２６】
次に、ＣＰＵ３１は、現在設定されている移動対象の１つを選択して（ステップ１３２）、次のステップに処理を進める。上述したように、上記ステップ８０（図１６）の処理では、タッチモード「集合」において移動対象となるプレイヤオブジェクトＰＯが設定されて、当該移動対象を示すデータが移動対象データＤｅに格納されている。例えば、ＣＰＵ３１は、上記ステップ１３２において、移動対象データＤｅが示す移動対象のうち、何れか１つのプレイヤオブジェクトＰＯを処理対象として選択する。
【０１２７】
次に、ＣＰＵ３１は、上記ステップ１３２で選択された移動対象が、仮想ゲーム世界のＸ軸方向（左右方向）に対して、第１集合目標オブジェクトＴＯ１のＸ軸座標を基準とした一定の範囲内に到達しているか否かを判断する（ステップ１３３）。例えば、ＣＰＵ３１は、第１集合目標オブジェクトＴＯ１のＸ軸座標を現在座標ＢデータＤｃが示す現在座標ＢのＸ軸座標とし、上記ステップ１３２で選択された移動対象となっているプレイヤオブジェクトＰＯが配置されているＸ軸座標をプレイヤオブジェクト位置データＤｈから取得して、当該Ｘ軸座標を比較することによって上記ステップ１３３の判断を行う。そして、ＣＰＵ３１は、上記ステップ１３２で選択された移動対象が第１集合目標オブジェクトＴＯ１のＸ軸座標を基準とした一定の範囲内に到達していない場合、次のステップ１３４に処理を進める。一方、ＣＰＵ３１は、上記ステップ１３２で選択された移動対象が第１集合目標オブジェクトＴＯ１のＸ軸座標を基準とした一定の範囲内に到達している場合、次のステップ１３５に処理を進める。
【０１２８】
ステップ１３４において、ＣＰＵ３１は、仮想ゲーム世界のＸ軸方向に対して第１集合目標オブジェクトＴＯ１に近づく方向に、上記ステップ１３２で選択された移動対象を所定距離だけ近づけて仮想ゲーム世界内で移動させて下側ＬＣＤ１２に表示し、次のステップ１３７に処理を進める。例えば、ＣＰＵ３１は、プレイヤオブジェクト位置データＤｈを参照して、上記ステップ１３２で選択された移動対象となっているプレイヤオブジェクトＰＯが配置されているＸ軸座標に所定値を加算、または当該Ｘ軸座標から所定値を減算することによって、当該移動対象を第１集合目標オブジェクトＴＯ１に近づけた新たなＸ軸座標を算出する。そして、算出された新たなＸ軸座標を用いて、上記ステップ１３２で選択された移動対象となっているプレイヤオブジェクトＰＯに対応するプレイヤオブジェクト位置データＤｈを更新すると共に、当該プレイヤオブジェクトＰＯを当該新たなＸ軸座標に応じた仮想ゲーム世界の位置に移動させて表示する。
【０１２９】
一方、ステップ１３５において、ＣＰＵ３１は、上記ステップ１３２で選択された移動対象が、仮想ゲーム世界のＹ軸方向（上下方向）に対して、第１集合目標オブジェクトＴＯ１のＹ軸座標を基準とした一定の範囲内に到達しているか否かを判断する。例えば、ＣＰＵ３１は、第１集合目標オブジェクトＴＯ１のＹ軸座標を現在座標ＢデータＤｃが示す現在座標ＢのＹ軸座標とし、上記ステップ１３２で選択された移動対象となっているプレイヤオブジェクトＰＯが配置されているＹ軸座標をプレイヤオブジェクト位置データＤｈから取得して、当該Ｙ軸座標を比較することによって上記ステップ１３５の判断を行う。そして、ＣＰＵ３１は、上記ステップ１３２で選択された移動対象が第１集合目標オブジェクトＴＯ１のＹ軸座標を基準とした一定の範囲内に到達していない場合、次のステップ１３６に処理を進める。一方、ＣＰＵ３１は、上記ステップ１３２で選択された移動対象が第１集合目標オブジェクトＴＯ１のＹ軸座標を基準とした一定の範囲内に到達している場合、次のステップ１３７に処理を進める。
【０１３０】
ステップ１３６において、ＣＰＵ３１は、仮想ゲーム世界のＹ軸方向に対して第１集合目標オブジェクトＴＯ１に近づく方向に、上記ステップ１３２で選択された移動対象を所定距離だけ近づけて仮想ゲーム世界内で移動させて下側ＬＣＤ１２に表示し、次のステップ１３７に処理を進める。例えば、ＣＰＵ３１は、プレイヤオブジェクト位置データＤｈを参照して、上記ステップ１３２で選択された移動対象となっているプレイヤオブジェクトＰＯが配置されているＹ軸座標に所定値を加算、または当該Ｙ軸座標から所定値を減算することによって、当該移動対象を第１集合目標オブジェクトＴＯ１に近づけた新たなＹ軸座標を算出する。そして、算出された新たなＹ軸座標を用いて、上記ステップ１３２で選択された移動対象となっているプレイヤオブジェクトＰＯに対応するプレイヤオブジェクト位置データＤｈを更新すると共に、当該プレイヤオブジェクトＰＯを当該新たなＹ軸座標に応じた仮想ゲーム世界の位置に移動させて表示する。
【０１３１】
このように、上記ステップ１３２〜ステップ１３６の処理が繰り返された場合、移動対象となったプレイヤオブジェクトＰＯは、Ｘ軸方向へ移動した後にＹ軸方向へ移動することによって第１集合目標オブジェクトＴＯ１に近づくように移動する（図７〜図９参照）。なお、プレイヤが「継続タッチ操作」を終了してタッチパネル１３からタッチオフした場合、仮想ゲーム世界から第１集合目標オブジェクトＴＯ１が消滅して、第１集合目標オブジェクトＴＯ１に向かって移動する移動制御も終了する。その後のプレイヤオブジェクトＰＯの移動制御については、仮想ゲーム世界に設定された環境に応じて動作（例えば、第１集合目標オブジェクトＴＯ１の位置まで到達していたプレイヤオブジェクトＰＯを仮想ゲーム世界の下方向に自由落下）させてもいいし、ＣＰＵ３１による自動制御によって移動させてもいいし、移動させずに停止させたままにしてもかまわない。なお、プレイヤが「継続タッチ操作」を終了してタッチパネル１３からタッチオフした後の移動制御を示す処理については、詳細な説明を省略する。
【０１３２】
ステップ１３７において、ＣＰＵ３１は、現在設定されている移動対象の全てに対して、上記ステップ１３２〜ステップ１３６の処理が終了したか否かを判断する。そして、ＣＰＵ３１は、上記ステップ１３２〜ステップ１３６の処理が行われていない移動対象が残っている場合、上記ステップ１３２に戻って処理を繰り返す。一方、ＣＰＵ３１は、現在設定されている移動対象の全てに対して、上記ステップ１３２〜ステップ１３６の処理が行われた場合、当該サブルーチンによる処理を終了する。
【０１３３】
図１５に戻り、プレイヤがタッチパネル１３をタッチしていない場合における処理について説明する。プレイヤがタッチパネル１３をタッチしていない場合、すなわち、上記ステップ５３において否定判定された場合、ＣＰＵ３１は、次のステップ９０（図１７）に処理を進める。
【０１３４】
図１７において、ＣＰＵ３１は、タッチ継続フラグデータＤｌを参照して、タッチ継続フラグがオン（ＯＮ）に設定されているか否かを判断する（ステップ９０）。そして、ＣＰＵ３１は、タッチ継続フラグがオン（ＯＮ）に設定されている場合、次のステップ９１に処理を進める。一方、ＣＰＵ３１は、タッチ継続フラグがオフ（ＯＦＦ）に設定されている場合、次のステップ１１１（図１９）に処理を進める。
【０１３５】
ステップ９１において、ＣＰＵ３１は、タッチ継続フラグをオフ（ＯＦＦ）に設定してタッチ継続フラグデータＤｌを更新し、当該ステップ９１以降の処理を進める。ここで、タッチ継続フラグは、プレイヤがタッチパネル１３にタッチオンした時点でオン（ＯＮ）に設定されて（ステップ７７、ステップ８１）タッチ操作が継続している間は常にオン（ＯＮ）状態に維持されている。そして、プレイヤがタッチパネル１３をタッチしていない場合においてタッチ継続フラグがオン（ＯＮ）に設定されていれば（ステップ９０でＹｅｓ）、上記ステップ９１でタッチ継続フラグがオフ（ＯＦＦ）に設定されて当該ステップ９１以降の処理が行われる。つまり、タッチ継続フラグは、プレイヤがタッチパネル１３からタッチオフした時点でのみオン（ＯＮ）からオフ（ＯＦＦ）に変更されるものであり、ステップ９１以降の処理もプレイヤがタッチパネル１３からタッチオフした時点でのみ行われる処理となる。以下、プレイヤがタッチパネル１３からタッチオフした時点で行われる処理（ステップ９１以降の処理）について説明する。
【０１３６】
上記ステップ９１の処理の後、ＣＰＵ３１は、はじき無効フラグデータＤｍを参照して、はじき無効フラグがオン（ＯＮ）に設定されているか否かを判断する（ステップ９２）。そして、ＣＰＵ３１は、はじき無効フラグがオフ（ＯＦＦ）に設定されている場合、次のステップ９３に処理を進める。一方、ＣＰＵ３１は、はじき無効フラグがオン（ＯＮ）に設定されている場合、はじき無効フラグをオフ（ＯＦＦ）に変更してはじき無効フラグデータＤｍを更新し（ステップ９９）、次のステップ６３（図１５）に処理を進める。
【０１３７】
ステップ９３において、ＣＰＵ３１は、タッチモードデータＤｋを参照して、タッチモードが「はじき」に設定されているか否かを判断する。そして、ＣＰＵ３１は、タッチモードが「はじき」に設定されている場合、次のステップ９４に処理を進める。一方、ＣＰＵ３１は、タッチモードが「集合」に設定されている場合、次のステップ１０１（図１８）に処理を進める。
【０１３８】
ステップ９４において、ＣＰＵ３１は、タッチ開始座標Ａと現在座標Ｂとの距離が予め定められた閾値以上であるか否かを判断する。そして、ＣＰＵ３１は、タッチ開始座標Ａと現在座標Ｂとの距離が予め定められた閾値以上である場合、次のステップ９５に処理を進める。一方、ＣＰＵ３１は、タッチ開始座標Ａと現在座標Ｂとの距離が予め定められた閾値未満である場合、次のステップ６３（図１５）に処理を進める。なお、上記ステップ９４で用いられる閾値は、プレイヤが上記「はじき操作」を行ったか否かを判定するための値であり、タッチオンからタッチオフまでの距離が当該閾値より短い場合に「はじき操作」ではないと判定される。つまり、プレイヤが「はじき操作」を行う場合、上記閾値以上の距離だけタッチ操作され、かつ、タッチオンからタッチオフまでの時間が上記ステップ６１で用いられている第１時間未満とする必要がある。これらの判定値は、ゲーム装置１に対する操作性を考慮して決定すればよい。そして、ＣＰＵ３１は、タッチ開始座標ＡデータＤｂが示すタッチ開始座標Ａと現在座標ＢデータＤｃが示す現在座標Ｂとを用いて上記距離を算出し、上記閾値との比較を行って上記ステップ９４の判断を行う。
【０１３９】
ステップ９５において、ＣＰＵ３１は、はじき中フラグをオン（ＯＮ）に設定してはじき中フラグデータＤｎを更新し、次のステップに処理を進める。このように、はじき中フラグは、プレイヤが「はじき操作」を行ったと判定された時点でオン（ＯＮ）に設定される。
【０１４０】
次に、ＣＰＵ３１は、累積値データＤｄが示す累積値を用いて、一連の「はじき操作」におけるタッチ位置の変化量の平均値を算出し、当該平均値に応じて移動速度を決定して（ステップ９６）、次のステップに処理を進める。例えば、ＣＰＵ３１は、累積値データＤｄが示す累積値を経過時間値データＤｉが示す経過時間値（経過フレーム数）で除算することによって、「はじき操作」におけるタッチ位置の変化量の平均値を算出する。そして、一例として、算出された平均値が対応する移動速度を、所定のデータテーブルから抽出することによって上記移動速度を決定し、当該決定された移動速度を用いて移動速度データＤｆを更新する。
【０１４１】
例えば、図２３に示すように、上記ステップ９６で用いられるデータテーブルは、変化量の平均値に対応する移動速度が記述されている。具体的には、変化量の平均値が１〜２ドットである場合、移動速度が９．１０ドット／フレームに設定される。また、変化量の平均値が３〜５ドットである場合、移動速度が１１．８０ドット／フレームに設定される。さらに、変化量の平均値が６ドット以上である場合、移動速度が１４．９５ドット／フレームに設定される。
【０１４２】
次に、ＣＰＵ３１は、タッチ開始座標Ａから現在座標Ｂへ向かう方向を移動方向に設定して（ステップ９７）、次のステップに処理を進める。例えば、ＣＰＵ３１は、タッチ開始座標ＡデータＤｂが示すタッチ開始座標Ａと現在座標ＢデータＤｃが示す現在座標Ｂとを用いて上記移動方向を設定し、設定された移動方向を用いて移動方向データＤｇを更新する。なお、移動方向データＤｇに格納される移動方向データの形式は、仮想ゲーム世界において上記移動方向を指す長さ１の方向ベクトルでもいいし、上記移動速度を長さとして上記移動方向を指す移動ベクトルでもかまわない。
【０１４３】
次に、ＣＰＵ３１は、はじき処理を行って（ステップ９８）、次のステップ６３（図１５）に処理を進める。以下、図２０を参照して、上記ステップ９８で行うはじき処理について説明する。
【０１４４】
図２０において、ＣＰＵ３１は、上記「はじき操作」の移動対象に対する移動速度および移動方向を設定し、当該移動速度および移動方向に基づいて当該移動対象を仮想ゲーム世界内で移動させて下側ＬＣＤ１２に表示し（ステップ１２１）、次のステップに処理を進める。例えば、ＣＰＵ３１は、当該はじき処理がタッチオフ直後で行われている場合、移動速度データＤｆが示す移動速度および移動方向データＤｇが示す移動方向をそのまま用いて、上記「はじき操作」の移動対象を移動させる。また、当該はじき処理がタッチオフ時点から１フレーム後以降に行われている場合、移動速度データＤｆが示す移動速度および移動方向データＤｇが示す移動方向を、重力加速度による自由落下等の、仮想ゲーム世界に設定された環境に応じてそれぞれ変化させ、変化させた移動速度および移動方向を用いて移動速度データＤｆおよび移動方向データＤｇを更新すると共に、変化させた移動速度および移動方向を用いて上記「はじき操作」の移動対象を移動させる。そして、ＣＰＵ３１は、移動対象となっているプレイヤオブジェクトＰＯの移動後の位置を用いて、プレイヤオブジェクト位置データＤｈを更新する。
【０１４５】
次に、ＣＰＵ３１は、仮想ゲーム世界において、移動対象となっているプレイヤオブジェクトＰＯが他のオブジェクト（他のキャラクタ、壁、天井、地面等）と衝突したか否かを判断する（ステップ１２２）。そして、ＣＰＵ３１は、移動対象となっているプレイヤオブジェクトＰＯが他のオブジェクトと衝突した場合、次のステップ１２３に処理を進める。一方、ＣＰＵ３１は、移動対象となっているプレイヤオブジェクトＰＯが他のオブジェクトの何れとも衝突していない場合、当該サブルーチンによる処理を終了する。
【０１４６】
ステップ１２３において、ＣＰＵ３１は、移動対象となっているプレイヤオブジェクトＰＯが仮想ゲーム世界内を移動する移動速度を０に設定して、次のステップに処理を進める。例えば、ＣＰＵ３１は、移動速度データＤｆが示している移動速度を０に設定して移動速度データＤｆを更新する。このように、移動対象となっているプレイヤオブジェクトＰＯにおける「はじき操作」に応じた移動が終了する。なお、当該プレイヤオブジェクトＰＯは、当該ステップの実行後においては、移動対象となっているプレイヤオブジェクトＰＯの移動速度および移動方向について仮想ゲーム世界に設定された環境（重力加速度等）を考慮しながら決定されたり、衝突した他のオブジェクトの特性（反発させる、移動を停止させる等）に応じて決定されたり、当該プレイヤオブジェクトＰＯをＣＰＵ３１の思考に基づいて自動的に決定されたり等するが、これらの移動制御については詳細な説明を省略する。
【０１４７】
次に、ＣＰＵ３１は、タッチ位置の変化量の累積値を初期化して（ステップ１２４）、次のステップに処理を進める。例えば、ＣＰＵ３１は、累積値データＤｄに格納されている累積値を０に初期化して、累積値データＤｄを更新する。
【０１４８】
次に、ＣＰＵ３１は、はじき中フラグをオフ（ＯＦＦ）に設定してはじき中フラグデータＤｎを更新し（ステップ１２５）、当該サブルーチンによる処理を終了する。このように、はじき中フラグは、プレイヤが「はじき操作」を行った時点でオン（ＯＮ）に設定され、当該「はじき操作」における移動対象が当該「はじき操作」に基づいた移動を終了した時点でオフ（ＯＦＦ）に設定される。
【０１４９】
図１７に戻り、上記ステップ９３においてタッチモードが「集合」に設定されていると判断された場合、ＣＰＵ３１は、次のステップ１０１（図１８）に処理を進める。
【０１５０】
図１８において、ＣＰＵ３１は、ダブルタッチタイマフラグデータＤｏを参照して、ダブルタッチタイマフラグがオン（ＯＮ）に設定されているか否かを判断する（ステップ１０１）。そして、ＣＰＵ３１は、ダブルタッチタイマフラグがオン（ＯＮ）に設定されている場合、次のステップ１０２に処理を進める。一方、ＣＰＵ３１は、ダブルタッチタイマフラグがオフ（ＯＦＦ）に設定されている場合、次のステップ１０８に処理を進める。なお、後述により明らかとなるが、ダブルタッチタイマフラグは、初期状態ではオフ（ＯＦＦ）に設定されているが、プレイヤが行ったタップ操作が第３時間以内のタッチ操作であった場合にオン（ＯＮ）に設定される。以下、ダブルタッチタイマフラグが初期状態（すなわち、オフ（ＯＦＦ）；上記ステップ１０１でＮｏ）の場合の処理を、先に説明する。
【０１５１】
ステップ１０８において、ＣＰＵ３１は、経過時間値データＤｉが示す経過時間値が第３時間以内か否かを判断する。そして、ＣＰＵ３１は、経過時間値が第３時間以内である場合、次のステップ１０９に処理を進める。一方、ＣＰＵ３１は、経過時間値が第３時間より長い場合、次のステップ６３（図１５）に処理を進める。
【０１５２】
ステップ１０９において、ＣＰＵ３１は、ダブルタッチタイマのカウントを開始する。例えば、ＣＰＵ３１は、ダブルタッチタイマデータＤｊが示すダブルタッチタイマ値を０に初期化してダブルタッチタイマデータＤｊを更新した後、ダブルタッチタイマ値のカウントを開始する。
【０１５３】
次に、ＣＰＵ３１は、ダブルタッチタイマフラグをオン（ＯＮ）に設定してダブルタッチタイマフラグデータＤｏを更新し（ステップ１１０）、次のステップ６３（図１５）に処理を進める。
【０１５４】
なお、上記ステップ１０８で判定する第３時間は、上述した「ダブルタッチ操作」において１回目のタップ操作が行われたタッチ操作時間を判定するためのものであり、当該１回目のタップ操作が行われたと認識する最長時間に設定される。つまり、タッチパネル１３を当該第３時間より長い時間継続してタッチ操作された場合、上記「ダブルタッチ操作」における１回目のタップ操作としては認められないことになる。そして、１回目のタップ操作として認められた場合、ダブルタッチタイマのカウントを開始すると共に、ダブルタッチタイマフラグがオン（ＯＮ）に設定される。
【０１５５】
ここで、上述したように、上記ステップ６５における判定に用いる第２時間以上継続してタッチ操作された場合、「継続タッチ操作」が行われていると認識される。したがって、上記ステップ１０８における判定に用いる第３時間は、上記ステップ６５における判定に用いる第２時間と同じまたは短い時間に設定される。
【０１５６】
次に、図１５および図１６を参照して、上記「ダブルタッチ操作」における２回目のタップ操作が行われた場合について説明する。
【０１５７】
２回目のタップ操作においてプレイヤがタッチパネル１３にタッチオンした場合、１回目のタップ操作におけるタッチオフ時点で上記ステップ９１（図１７）が行われるためにタッチ継続フラグがオフ（ＯＦＦ）に設定されている。したがって、２回目のタップ操作におけるタッチオン時点では、上記ステップ５６（図１５）で否定（Ｎｏ）の判定となる。そして、上記ステップ７０（図１６）において、ダブルタッチタイマフラグがオン（ＯＮ）に設定されていると判定され、ＣＰＵ３１は、次のステップ７１に処理を進める。
【０１５８】
ステップ７１において、ＣＰＵ３１は、上記ステップ５２で得られたタッチ座標を用いて現在座標Ｂを更新し、次のステップ７２に処理を進める。例えば、ＣＰＵ３１は、操作データＤａに格納されているタッチ座標を新たな現在座標Ｂとして設定し、新たに設定された現在座標Ｂを用いて現在座標ＢデータＤｃを更新する。このように、上記ステップ７１において、２回目のタップ操作におけるタッチ位置が現在座標Ｂとして取得される。
【０１５９】
次に、ＣＰＵ３１は、タッチ継続フラグをオン（ＯＮ）に設定し（ステップ７２）、次のステップ６３（図１５）に処理を進める。例えば、ＣＰＵ３１は、タッチ継続フラグをオン（ＯＮ）に設定し、設定されたタッチ継続フラグを用いてタッチ継続フラグデータＤｌを更新する。このように、タッチ継続フラグは、プレイヤがタッチパネル１３に２回目のタップ操作でタッチオンした時点でもオン（ＯＮ）に設定される。
【０１６０】
次に、上記「ダブルタッチ操作」における２回目のタップ操作のタッチオフにおける処理について説明する。２回目のタップ操作においてプレイヤがタッチパネル１３からタッチオフした場合、１回目のタップの際にタッチモードが「集合」に設定された状態が維持されており（上記ステップ７９（図１６））、タッチ継続フラグがオン（ＯＮ）に設定されている（上記ステップ７２（図１６））ため、上記ステップ９０（図１７）で肯定判定されて上記ステップ９３（図１７）で否定判定されることによって、ステップ１０１（図１８）の処理が行われる。以下、図１８を参照して、ステップ１０１以降の処理について説明する。
【０１６１】
図１８において、ＣＰＵ３１は、ダブルタッチタイマフラグデータＤｏを参照して、ダブルタッチタイマフラグがオン（ＯＮ）に設定されているか否かを判断する（ステップ１０１）。ここで、上記ステップ１１０の処理について説明したように、上記「ダブルタッチ操作」における１回目のタップ操作のタッチオフに対応して、ダブルタッチタイマフラグがオン（ＯＮ）に設定されている。したがって、上記「ダブルタッチ操作」における２回目のタップ操作のタッチオフ時点では、ダブルタッチタイマフラグがオン（ＯＮ）に設定されているために、ＣＰＵ３１は、次のステップ１０２に処理を進める。
【０１６２】
ステップ１０２において、ＣＰＵ３１は、ダブルタッチタイマデータＤｊが示すダブルタッチタイマ値を参照して、当該ダブルタッチタイマ値が第４時間以内か否かを判断する。そして、ＣＰＵ３１は、ダブルタッチタイマ値が第４時間以内である場合、次のステップ１０３に処理を進める。一方、ＣＰＵ３１は、ダブルタッチタイマ値が第４時間より長い場合、次のステップ１０６に処理を進める。ここで、上述したように、ダブルタッチタイマ値は、上記「ダブルタッチ操作」における１回目のタップ操作のタッチオフに対応してカウントが開始されており（上記ステップ１０９）、当該タッチオフから２回目のタップ操作のタッチオフまでの時間をカウントしている。そして、上記ステップ１０２の判断処理で用いられる第４時間は、上述した「ダブルタッチ操作」において１回目のタップ操作のタッチオフから２回目のタップ操作のタッチオフまでの時間を判定するためのものであり、当該「ダブルタッチ操作」が行われたと認識する最長時間に設定される。つまり、１回目のタップ操作のタッチオフから２回目のタップ操作のタッチオフまでの時間が当該第４時間より長い場合（例えば、１回目のタップ操作から長い時間経過した後に２回目のタップ操作を行った場合等）、上記「ダブルタッチ操作」としては認められないことになる。
【０１６３】
ステップ１０３において、ＣＰＵ３１は、タッチ開始座標Ａと現在座標Ｂとの間の距離を算出し、当該距離が閾値以内か否かを判断する。そして、ＣＰＵ３１は、タッチ開始座標Ａと現在座標Ｂとの間の距離が閾値以内である場合、次のステップ１０４に処理を進める。一方、ＣＰＵ３１は、タッチ開始座標Ａと現在座標Ｂとの間の距離が閾値より長い場合、次のステップ１０６に処理を進める。例えば、上記ステップ１０３において、ＣＰＵ３１は、タッチ開始座標ＡデータＤｂが示すタッチ開始座標Ａと現在座標ＢデータＤｃが示す現在座標Ｂとを用いて、仮想ゲーム世界におけるタッチ開始座標Ａと現在座標Ｂとの間の距離を算出する。そして、タッチ開始座標Ａと現在座標Ｂとの間の距離が予め定められた閾値より長いか否かを判断する。ここで、上記「ダブルタッチ操作」は、プレイヤがプレイヤオブジェクトＰＯを集合させたい仮想ゲーム世界内の位置を２度タップ操作するものであり、仮想ゲーム世界に対して同じ位置（図１０に示すタッチ位置ＴＰ）が２度タッチ操作されるものである。したがって、１回目にタップ操作された位置と２回目にタップ操作された位置との間に大きな差（距離）がある場合、「ダブルタッチ操作」ではなく、別の位置をそれぞれタップ操作されたと認識する。しかしながら、厳密にプレイヤがタッチパネル１３に対して全く同じ位置を２度タップ操作することは希であり、ある程度の誤差を想定する必要もある。このような背景から、上記ステップ１０３では、ある程度の距離内（すなわち、上記閾値以内）で２回のタップ操作が行われたか否かを判断するために、１回目にタップ操作された位置（タッチ開始座標Ａ）と２回目にタップ操作された位置（現在座標Ｂ）との距離を用いて判定を行っている。そして、上記ステップ１０３で用いる閾値は、上記誤差を許容する範囲を示す距離の上限値として設定される。
【０１６４】
ステップ１０４において、ＣＰＵ３１は、ダブルタッチ中フラグをオン（ＯＮ）に設定してダブルタッチ中フラグデータＤｐを更新し、次のステップ１０５に処理を進める。このように、プレイヤが「ダブルタッチ操作」を行ったと認識された場合、ダブルタッチ中フラグがオン（ＯＮ）に設定される。
【０１６５】
次に、ＣＰＵ３１は、ダブルタッチ処理を行い（ステップ１０５）、ステップ６３（図１５）に処理を進める。以下、図２２を参照して、上記ステップ１０５で行うダブルタッチ処理の一例について説明する。
【０１６６】
図２２において、ＣＰＵ３１は、仮想ゲーム世界における現在座標Ｂの位置に第２集合目標オブジェクトＴＯ２を仮想ゲーム世界に配置して下側ＬＣＤ１２に表示し（ステップ１４１）、次のステップに処理を進める。例えば、ＣＰＵ３１は、仮想ゲーム世界において、現在座標ＢデータＤｃに格納されている現在座標Ｂの位置に第２集合目標オブジェクトＴＯ２に対応する画像を配置してゲーム画像を生成し（図１０〜図１３参照）、当該ゲーム画像を下側ＬＣＤ１２に表示する。この下側ＬＣＤ１２に対する表示制御処理によって、プレイヤが「ダブルタッチ操作」したタッチ位置ＴＰに応じた位置（典型的には、プレイヤのタッチ位置と重なる仮想ゲーム世界の位置）に、第２集合目標オブジェクトＴＯ２が表示される。
【０１６７】
次に、ＣＰＵ３１は、ダブルタッチタイマデータＤｊが示すダブルタッチタイマ値を参照して、当該ダブルタッチタイマ値が所定時間に到達したか否かを判断する（ステップ１４２）。そして、ＣＰＵ３１は、ダブルタッチタイマ値が第５時間に到達していない場合、次のステップ１４３に処理を進める。一方、ＣＰＵ３１は、ダブルタッチタイマ値が第５時間に到達している場合、次のステップ１４９に処理を進める。ここで、上述したように、ダブルタッチタイマ値は、上記「ダブルタッチ操作」における１回目のタップ操作のタッチオフに対応してカウントが開始されており（上記ステップ１０９）、当該タッチオフから現在までの時間をカウントしている。そして、上記ステップ１４２の判断処理で用いられる第５時間は、上述した「ダブルタッチ操作」に応じて仮想ゲーム世界に第２集合目標オブジェクトＴＯ２を登場させる制限時間、すなわち「ダブルタッチ操作」に応じてプレイヤオブジェクトＰＯを移動させる制限時間を設けるためのものであり、当該「ダブルタッチ操作」に応じた移動処理を有効に作用させる制限時間に設定される。つまり、上記「ダブルタッチ操作」における１回目のタップ操作のタッチオフから現在までの時間が、当該第５時間に到達した場合、当該「ダブルタッチ操作」に応じたプレイヤオブジェクトＰＯの移動処理が終了する。
【０１６８】
ステップ１４３において、ＣＰＵ３１は、現在設定されている移動対象の１つを選択して、次のステップに処理を進める。上述したように、上記ステップ８０（図１６）の処理では、タッチモード「集合」において移動対象となるプレイヤオブジェクトＰＯが設定されて、当該移動対象を示すデータが移動対象データＤｅに格納されている。例えば、ＣＰＵ３１は、上記ステップ１４３において、移動対象データＤｅが示す移動対象のうち、何れか１つのプレイヤオブジェクトＰＯを処理対象として選択する。
【０１６９】
次に、ＣＰＵ３１は、上記ステップ１４３で選択された移動対象が、仮想ゲーム世界のＸ軸方向（左右方向）に対して、第２集合目標オブジェクトＴＯ２のＸ軸座標を基準とした一定の範囲内に到達しているか否かを判断する（ステップ１４４）。例えば、ＣＰＵ３１は、第２集合目標オブジェクトＴＯ２のＸ軸座標を現在座標ＢデータＤｃが示す現在座標ＢのＸ軸座標とし、上記ステップ１４３で選択された移動対象となっているプレイヤオブジェクトＰＯが配置されているＸ軸座標をプレイヤオブジェクト位置データＤｈから取得して、当該Ｘ軸座標を比較することによって上記ステップ１４４の判断を行う。そして、ＣＰＵ３１は、上記ステップ１４３で選択された移動対象が第２集合目標オブジェクトＴＯ２のＸ軸座標を基準とした一定の範囲内に到達していない場合、次のステップ１４５に処理を進める。一方、ＣＰＵ３１は、上記ステップ１４３で選択された移動対象が第２集合目標オブジェクトＴＯ２のＸ軸座標を基準とした一定の範囲内に到達している場合、次のステップ１４６に処理を進める。
【０１７０】
ステップ１４５において、ＣＰＵ３１は、仮想ゲーム世界のＸ軸方向に対して第２集合目標オブジェクトＴＯ２に近づく方向に、上記ステップ１４３で選択された移動対象を所定距離だけ近づけて仮想ゲーム世界内で移動させて下側ＬＣＤ１２に表示し、次のステップ１４８に処理を進める。例えば、ＣＰＵ３１は、プレイヤオブジェクト位置データＤｈを参照して、上記ステップ１４３で選択された移動対象となっているプレイヤオブジェクトＰＯが配置されているＸ軸座標に所定値を加算、または当該Ｘ軸座標から所定値を減算することによって、当該移動対象を第２集合目標オブジェクトＴＯ２に近づけた新たなＸ軸座標を算出する。そして、算出された新たなＸ軸座標を用いて、上記ステップ１４３で選択された移動対象となっているプレイヤオブジェクトＰＯに対応するプレイヤオブジェクト位置データＤｈを更新すると共に、当該プレイヤオブジェクトＰＯを当該新たなＸ軸座標に応じた仮想ゲーム世界の位置に移動させて表示する。
【０１７１】
一方、ステップ１４６において、ＣＰＵ３１は、上記ステップ１４３で選択された移動対象が、仮想ゲーム世界のＹ軸方向（上下方向）に対して、第２集合目標オブジェクトＴＯ２のＹ軸座標を基準とした一定の範囲内に到達しているか否かを判断する。例えば、ＣＰＵ３１は、第２集合目標オブジェクトＴＯ２のＹ軸座標を現在座標ＢデータＤｃが示す現在座標ＢのＹ軸座標とし、上記ステップ１４３で選択された移動対象となっているプレイヤオブジェクトＰＯが配置されているＹ軸座標をプレイヤオブジェクト位置データＤｈから取得して、当該Ｙ軸座標を比較することによって上記ステップ１４６の判断を行う。そして、ＣＰＵ３１は、上記ステップ１４３で選択された移動対象が第２集合目標オブジェクトＴＯ２のＹ軸座標を基準とした一定の範囲内に到達していない場合、次のステップ１４７に処理を進める。一方、ＣＰＵ３１は、上記ステップ１４３で選択された移動対象が第２集合目標オブジェクトＴＯ２のＹ軸座標を基準とした一定の範囲内に到達している場合、次のステップ１４８に処理を進める。
【０１７２】
ステップ１４７において、ＣＰＵ３１は、仮想ゲーム世界のＹ軸方向に対して第２集合目標オブジェクトＴＯ２に近づく方向に、上記ステップ１４３で選択された移動対象を所定距離だけ近づけて仮想ゲーム世界内で移動させて下側ＬＣＤ１２に表示し、次のステップ１４８に処理を進める。例えば、ＣＰＵ３１は、プレイヤオブジェクト位置データＤｈを参照して、上記ステップ１４３で選択された移動対象となっているプレイヤオブジェクトＰＯが配置されているＹ軸座標に所定値を加算、または当該Ｙ軸座標から所定値を減算することによって、当該移動対象を第２集合目標オブジェクトＴＯ２に近づけた新たなＹ軸座標を算出する。そして、算出された新たなＹ軸座標を用いて、上記ステップ１４３で選択された移動対象となっているプレイヤオブジェクトＰＯに対応するプレイヤオブジェクト位置データＤｈを更新すると共に、当該プレイヤオブジェクトＰＯを当該新たなＹ軸座標に応じた仮想ゲーム世界の位置に移動させて表示する。
【０１７３】
このように、上記ステップ１４３〜ステップ１４７の処理が繰り返された場合、移動対象となったプレイヤオブジェクトＰＯは、Ｘ軸方向へ移動した後にＹ軸方向へ移動することによって第２集合目標オブジェクトＴＯ２に近づくように移動する（図１１〜図１３参照）。なお、ダブルタッチタイマ値が第５時間に到達した場合、仮想ゲーム世界から第２集合目標オブジェクトＴＯ２が消滅して、第２集合目標オブジェクトＴＯ２に向かって移動する移動制御も終了する。その後のプレイヤオブジェクトＰＯの移動制御については、仮想ゲーム世界に設定された環境に応じて動作（例えば、第２集合目標オブジェクトＴＯ２の位置まで到達していたプレイヤオブジェクトＰＯを仮想ゲーム世界の下方向に自由落下）させてもいいし、ＣＰＵ３１による自動制御によって移動させてもかまわない。なお、第２集合目標オブジェクトＴＯ２が消滅した後の移動制御を示す処理については、詳細な説明を省略する。
【０１７４】
ステップ１４８において、ＣＰＵ３１は、現在設定されている移動対象の全てに対して、上記ステップ１４３〜ステップ１４７の処理が終了したか否かを判断する。そして、ＣＰＵ３１は、上記ステップ１４３〜ステップ１４７の処理が行われていない移動対象が残っている場合、上記ステップ１４３に戻って処理を繰り返す。一方、ＣＰＵ３１は、現在設定されている移動対象の全てに対して、上記ステップ１４３〜ステップ１４７の処理が行われた場合、当該サブルーチンによる処理を終了する。
【０１７５】
一方、上記ステップ１４２でダブルタッチタイマ値が第５時間に到達していると判断された場合、ＣＰＵ３１は、ダブルタッチ中フラグをオフ（ＯＦＦ）に設定してダブルタッチ中フラグデータＤｐを更新する（ステップ１４９）。次に、ＣＰＵ３１は、ダブルタッチタイマのカウントを停止してダブルタッチタイマデータＤｊの更新も停止する（ステップ１５０）。そして、ＣＰＵ３１は、ダブルタッチタイマフラグをオフ（ＯＦＦ）に設定してダブルタッチタイマフラグデータＤｏを更新し（ステップ１５１）、当該サブルーチンによる処理を終了する。このように、「ダブルタッチ操作」に応じたプレイヤオブジェクトＰＯの移動制御が終了した場合、ダブルタッチ中フラグがオフ（ＯＦＦ）に設定される。
【０１７６】
図１８に戻り、ダブルタッチタイマ値が第４時間より長い場合（ステップ１０２でＮｏ）、またはタッチ開始座標Ａと現在座標Ｂとの間の距離が閾値より長い場合（ステップ１０３でＮｏ）、ＣＰＵ３１は、次のステップ１０６に処理を進める。すなわち、プレイヤがタッチパネル１３に対して２度のタップ操作を行ったが、当該タッチ操作が「ダブルタッチ操作」として認められない場合、ステップ１０６以降の処理によって、これまで行われてきた「ダブルタッチ操作」に応じた処理を解除する。すなわち、ＣＰＵ３１は、ダブルタッチタイマのカウントを停止してダブルタッチタイマデータＤｊの更新も停止する（ステップ１０６）。そして、ＣＰＵ３１は、ダブルタッチタイマフラグをオフ（ＯＦＦ）に設定してダブルタッチタイマフラグデータＤｏを更新し（ステップ１０７）、次のステップ６３（図１５）に処理を進める。
【０１７７】
次に、プレイヤがタッチパネル１３からタッチオフした時点で行われる処理（ステップ９１（図１７）以降の処理）が行われた後、プレイヤがタッチパネル１３をタッチしていない場合における処理について説明する。プレイヤがタッチパネル１３をタッチしていない場合、上記ステップ５３（図１５）において、ＣＰＵ３１は、次のステップ９０（図１７）に処理を進める。そして、上述したように、タッチ継続フラグがタッチオフ時点でオフ（ＯＦＦ）に設定されているため、上記ステップ９０において、ＣＰＵ３１は、次のステップ１１１（図１９）に処理を進める。
【０１７８】
図１９において、ＣＰＵ３１は、ダブルタッチ中フラグデータＤｐが示すダブルタッチ中フラグがオン（ＯＮ）に設定されているか否かを判断する（ステップ１１１）。そして、ＣＰＵ３１は、ダブルタッチ中フラグがオン（ＯＮ）に設定されている場合、次のステップ１１２に処理を進める。一方、ＣＰＵ３１は、ダブルタッチ中フラグがオフ（ＯＦＦ）に設定されている場合、次のステップ１１３に処理を進める。
【０１７９】
ステップ１１２において、ＣＰＵ３１は、ダブルタッチ処理を行い、次のステップ１１３に処理を進める。なお、上記ステップ１１２で行うダブルタッチ処理は、図２２を用いて説明した上記ステップ１０５の処理と同様であるため、詳細な説明を省略する。
【０１８０】
ステップ１１３において、ＣＰＵ３１は、はじき中フラグデータＤｎが示すはじき中フラグがオン（ＯＮ）に設定されているか否かを判断する。そして、ＣＰＵ３１は、はじき中フラグがオン（ＯＮ）に設定されている場合、次のステップ１１４に処理を進める。一方、ＣＰＵ３１は、はじき中フラグがオフ（ＯＦＦ）に設定されている場合、次のステップ６３（図１５）に処理を進める。
【０１８１】
ステップ１１４において、ＣＰＵ３１は、はじき処理を行い、次のステップ６３（図１５）に処理を進める。なお、上記ステップ１１４で行うはじき処理は、図２０を用いて説明した上記ステップ９８の処理と同様であるため、詳細な説明を省略する。
【０１８２】
次に、一旦、上記「はじき操作」としては認識されたものの、その後のタッチ操作によって「はじき操作」としては無効となった場合の処理について説明する。例えば、上述したように、タッチオンからタッチオフまでの時間が「はじき操作」として認識できる条件を満たさない場合、すなわち予め定められた「はじき操作」の最長時間より長い場合、プレイヤが「はじき操作」以外の操作をしていると判断され、はじき無効フラグがオン（ＯＮ）に設定される（ステップ６２（図１５））。このような場合、プレイヤがタッチパネル１３をタッチ操作していても、上記ステップ５４（図１５）において否定の判断がされて上記ステップ５２〜ステップ５４の処理が繰り返されるため、本実施形態ではプレイヤオブジェクトＰＯに対する移動処理が行われない。
【０１８３】
一方、はじき無効フラグがオン（ＯＮ）に設定された状態でプレイヤがタッチパネル１３からタッチオフした場合、ＣＰＵ３１は、上記ステップ５３で否定の判断を行い、タッチ継続フラグがオン（ＯＮ）に設定されているために上記ステップ９０（図１７）で肯定の判断を行う。そして、ＣＰＵ３１は、はじき無効フラグがオン（ＯＮ）に設定されているために上記ステップ９２において肯定の判断を行って、次のステップ９９に処理を進める。
【０１８４】
ステップ９９において、ＣＰＵ３１は、はじき無効フラグをオフ（ＯＦＦ）に設定してはじき無効フラグデータＤｍを更新し、次のステップ６３（図１５）に処理を進める。このように、一旦、上記「はじき操作」としては認識されたものの、その後のタッチ操作によって「はじき操作」としては無効となるようなタッチ操作をした場合、プレイヤオブジェクトＰＯに対する移動処理は行われることはない。そして、プレイヤがタッチパネル１３からタッチオフすることによってはじき無効フラグが初期化（オフ）され、プレイヤオブジェクトＰＯに対する移動処理における初期状態に復帰する。
【０１８５】
図１５に戻り、ステップ６３において、ＣＰＵ３１は、ゲーム処理を終了するか否かを判断する。ゲーム処理を終了する条件としては、例えば、少なくとも１つのプレイヤオブジェクトＰＯが仮想ゲーム世界における所定の位置（ゴール地点など）に到達することによって現在ゲーム処理されているゲームステージがクリアされたことや、敵オブジェクトに少なくとも１つのプレイヤオブジェクトが接触することによってゲームオーバーとされたこと等の他に、プレイヤがゲーム処理を終了する操作を行ったこと等がある。ＣＰＵ３１は、ゲーム処理を終了しない場合、次のステップ６７に処理を進める。一方、ＣＰＵ３１は、ゲーム処理を終了する場合、当該フローチャートによる処理を終了する。
【０１８６】
ステップ６７において、ＣＰＵ３１は、ダブルタッチタイマフラグデータＤｏを参照して、ダブルタッチタイマフラグがオン（ＯＮ）に設定されているか否かを判断する。そして、ＣＰＵ３１は、ダブルタッチタイマフラグがオン（ＯＮ）に設定されている場合、次のステップ６８に処理を進める。一方、ＣＰＵ３１は、ダブルタッチタイマフラグがオフ（ＯＦＦ）に設定されている場合、上記ステップ５２に戻って処理を繰り返す。
【０１８７】
ステップ６８において、ＣＰＵ３１は、ダブルタッチタイマ値をインクリメントして、上記ステップ５２に戻って処理を繰り返す。例えば、ＣＰＵ３１は、ダブルタッチタイマデータＤｊが示すダブルタッチタイマ値に１を加算して、加算された値を用いてダブルタッチタイマデータＤｊを更新する。なお、上述したように、上記「ダブルタッチ操作」における１回目のタップ操作のタッチオフに対応して、ダブルタッチタイマフラグがオン（ＯＮ）に設定され、上記ダブルタッチ処理が終了するまで、または上記「ダブルタッチ操作」が無効であると判定されるまでの間はダブルタッチタイマフラグがオン（ＯＮ）状態に維持されている。したがって、上記ステップ６８の処理は、上記「ダブルタッチ操作」における１回目のタップ操作のタッチオフした後に継続して行われる「ダブルタッチ操作」中または当該「ダブルタッチ操作」に応じて行われるダブルタッチ処理中に行われる処理となる。すなわち、ダブルタッチタイマ値は、ダブルダッチタイマフラグがＯＮの間、その値が単位時間毎にカウントされて更新されていく。
【０１８８】
このように、本実施形態に係るゲーム装置１は、プレイヤがタッチパネル１３にタッチオンした入力座標が何れかのプレイヤオブジェクトＰＯを指示している場合、当該プレイヤオブジェクトＰＯのみを操作対象としている。一方、ゲーム装置１は、プレイヤがタッチパネル１３にタッチオンした入力座標が何れのプレイヤオブジェクトＰＯも指示していない場合、複数のプレイヤオブジェクトＰＯを操作対象としている。したがって、ゲーム装置１は、簡単なタッチ入力によって操作対象とするプレイヤオブジェクトＰＯを選択することができる。
【０１８９】
なお、上述した説明では、「はじき操作」によって移動対象に設定されたプレイヤオブジェクトＰＯが、当該「はじき操作」におけるタッチオフ後に当該「はじき操作」に対応した移動を開始する態様を用いたが、他のタイミングで移動対象のプレイヤオブジェクトＰＯが移動を開始してもかまわない。例えば、「はじき操作」に対応する移動対象に設定された時点で、当該移動対象がプレイヤのタッチ位置に応じた仮想ゲーム世界の位置に逐次移動させてもかまわない。この場合、移動対象となったプレイヤオブジェクトＰＯは、「はじき操作」におけるタッチ位置に対応する仮想ゲーム世界の位置へ移動することになる。なお、移動対象となったプレイヤオブジェクトＰＯは、当該「はじき操作」におけるタッチオフ後も当該「はじき操作」によって設定された移動速度および移動方向（上記ステップ９６、ステップ９７）に基づいて移動するようにしてもよいし、当該タッチオフ後は移動を行わずに「はじき操作」におけるタッチ操作中のみ移動を行うようにしてもよい。
【０１９０】
また、上述した説明では、プレイヤオブジェクトＰＯ上にタッチオンしてからタッチオフまでの時間が第１時間未満であることを、「はじき操作」として認識する時間的条件とし、当該時間的条件を満たさない場合に「はじき操作」に応じた移動処理を行わない例を用いたが、タッチオンしてからタッチオフまでの時間に関わらずに移動処理を行ってもかまわない。すなわち、プレイヤオブジェクトＰＯ上にタッチオンしてからタッチオフまでの時間が所定時間以上となったとしても、「はじき操作」が行われたと認識され、当該「はじき操作」に応じて移動対象のプレイヤオブジェクトＰＯを移動させてもかまわない。また、プレイヤオブジェクトＰＯ上にタッチオンしてからタッチオフするまでの距離（すなわち、タッチ開始座標Ａと現在座標Ｂとの距離）が閾値以上であることを、「はじき操作」として認識する距離的条件とし、当該距離的条件を満たさない場合に「はじき操作」に応じた移動処理を行わない例を用いたが、タッチオンからタッチオフまでの距離に関わらずに移動処理を行ってもかまわない。さらに、上記距離的条件は、他の値を「はじき操作」として認識するための距離的条件としてもかまわない。例えば、「はじき操作」中におけるタッチ位置変化量の累積値が閾値以上であることを、「はじき操作」として認識する距離的条件としてもかまわない。
【０１９１】
また、上述した説明では、「はじき操作」中におけるタッチ位置変化量の平均値に応じて、当該「はじき操作」に対応する移動対象の移動速度を設定しているが、他の値に応じて移動速度を設定してもかまわない。例えば、プレイヤオブジェクトＰＯ上にタッチオンしてからタッチオフするまでの距離（すなわち、タッチ開始座標Ａと現在座標Ｂとの距離）に応じて、当該「はじき操作」に対応する移動対象の移動速度を設定してもかまわない。また、上述した説明では、図２３に示すようなデータテーブルを用いて、「はじき操作」に対応する移動対象の移動速度を設定する例を用いたが、予め定められた計算式にタッチ位置変化量の平均値および／またはタッチ開始座標Ａと現在座標Ｂとの距離を代入することによって、「はじき操作」に対応する移動速度を算出してもかまわない。
【０１９２】
また、上述した説明では、「はじき操作」に応じて仮想ゲーム世界を移動する移動対象の移動速度および移動方向が、当該「はじき操作」に応じた移動を開始した後に仮想ゲーム世界に設定された環境に応じて変化していく例を用いたが、移動開始時点で設定された移動速度および移動方向のまま当該移動対象を移動させてもかまわない。この場合、「はじき操作」に応じて仮想ゲーム世界を移動する移動対象は、仮想ゲーム世界に配置された他のオブジェクト（他のキャラクタ、壁、天井、地面等）と接触したり衝突したりするまで、移動開始時点で設定された移動速度および移動方向を用いて移動することになる。また、「はじき操作」によって設定された移動対象を、当該「はじき操作」におけるタッチオフ位置に応じた仮想ゲーム世界の位置まで、移動開始時点で設定された移動速度および移動方向に応じて移動させてもかまわない。
【０１９３】
また、上述した説明では、上記「継続タッチ操作」として認識されるために、タッチ操作を継続して行う時間が所定時間以上必要となるが、本発明はこのような処理に限定されない。例えば、プレイヤオブジェクトＰＯ上以外となる仮想ゲーム世界に対応する位置にタッチオンした時点で上記「継続タッチ操作」が行われたと認識し、当該タッチオンされた仮想ゲーム世界の位置に向かって移動対象の移動を開始してもかまわない。
【０１９４】
また、上記「継続タッチ操作」や「ダブルタッチ操作」は、プレイヤがタッチパネル１３にタッチオンした入力座標が何れのプレイヤオブジェクトＰＯも指示していないことを条件として認識される。したがって、タッチオンした入力座標が、仮想ゲーム世界に配置された他のオブジェクト（他のキャラクタ（敵オブジェクト、石や木等の背景オブジェクト等）、壁、天井、地面等）を示す場合であっても、上記「継続タッチ操作」や「ダブルタッチ操作」として認識される条件を満たすことになる。しかしながら、タッチオンした入力座標が、仮想ゲーム世界に配置された他のオブジェクトを示す場合、上記「継続タッチ操作」や「ダブルタッチ操作」としては無効（すなわち、上記「継続タッチ操作」や「ダブルタッチ操作」として認識される条件を満たさない）としてもかまわない。また、タッチオンした入力座標が、下側ＬＣＤ１２に表示された仮想ゲーム世界以外の領域を示す場合であっても、上記「継続タッチ操作」や「ダブルタッチ操作」としては有効（すなわち、上記「継続タッチ操作」や「ダブルタッチ操作」として認識される条件を満たす）にしてもかまわない。この場合、タッチオンした入力座標が示す位置が仮想ゲーム世界以外の領域であっても、下側ＬＣＤ１２に仮想ゲーム世界の一部が表示されている場合等では当該入力座標が示す位置に相当する仮想ゲーム世界における位置（典型的には、下側ＬＣＤ１２には表示されていない仮想ゲーム世界内の位置）が算出可能である。したがって、算出された仮想ゲーム世界の位置を集合処理の目標とすれば、プレイヤオブジェクトＰＯに対する同様の移動制御が可能となる。
【０１９５】
また、上述した説明では、上記「継続タッチ操作」中にタッチ位置が移動した場合、当該タッチ位置の移動に応じて第１集合目標オブジェクトＴＯ１の表示位置も移動するために、移動対象の移動目標も変化する。しかしながら、一例として、第１集合目標オブジェクトＴＯ１の表示位置は、「継続タッチ操作」に応じて最初に出現した仮想ゲーム世界の位置に固定してもかまわない。この場合、「継続タッチ操作」中にタッチ位置が移動した場合であっても、「継続タッチ操作」が有効と判定された時点におけるタッチ位置や当該「継続タッチ操作」においてタッチオンした位置に応じた仮想ゲーム世界内の位置に、移動対象の移動目標が固定されることになる。また、他の例として、最初に出現した第１集合目標オブジェクトＴＯ１の表示位置を基準として予め設定された範囲から外れる位置まで、上記「継続タッチ操作」中にタッチ位置が移動した場合、当該「継続タッチ操作」を無効としてもかまわない。
【０１９６】
また、上述した説明では、上記ステップ１０５およびステップ１１２で行われるダブルタッチ処理は、ダブルタッチタイマ値が所定時間に到達するまで継続して行われるが、当該継続中に他のタッチ操作が行われた場合に当該ダブルタッチ処理も終了する。しかしながら、ダブルタッチ処理継続中において、他のタッチ操作が行われた場合であっても当該タッチ操作を無効として当該ダブルタッチ処理を優先させて継続してもかまわない。
【０１９７】
また、上述した説明では、１回目のタップ操作におけるタッチオフから２回目のタップ操作におけるタッチオフまでの時間（ダブルタッチタイマ値）が第４時間以内であることを、上記「ダブルタッチ操作」として認識する時間的条件としているが、他の時間を「ダブルタッチ操作」の時間的認識条件としてもかまわない。第１の例として、１回目のタップ操作におけるタッチオンから２回目のタップ操作におけるタッチオフまでの時間が第４時間以内であることを、上記「ダブルタッチ操作」として認識する時間的条件とする。第２の例として、１回目のタップ操作におけるタッチオンから２回目のタップ操作におけるタッチオンまでの時間が第４時間以内であることを、上記「ダブルタッチ操作」として認識する時間的条件とする。第３の例として、１回目のタップ操作におけるタッチオフから２回目のタップ操作におけるタッチオンまでの時間が第４時間以内であることを、上記「ダブルタッチ操作」として認識する時間的条件とする。
【０１９８】
また、上述した説明では、上記「ダブルタッチ操作」において２回目のタップ操作のタッチオフ位置が示す仮想ゲーム世界の位置が移動対象の移動目標となるが、他の位置を移動目標としてもかまわない。例えば、「ダブルタッチ操作」において、１回目のタップ操作のタッチオン位置、１回目のタップ操作のタッチオフ位置、および２回目のタップ操作のタッチオン位置の何れか１つが示す仮想ゲーム世界の位置を、移動対象の移動目標としてもかまわない。また、１回目のタップ操作のタッチオン位置または１回目のタップ操作のタッチオフ位置と、２回目のタップ操作のタッチオン位置または２回目のタップ操作のタッチオフ位置とを平均した位置（中間点）が示す仮想ゲーム世界の位置を、移動対象の移動目標としてもかまわない。また、上記「ダブルタッチ操作」は、プレイヤが全てのプレイヤオブジェクトＰＯを集合させたい位置に、タップ操作を所定の時間以内に２度行うことによって成立する操作であるが、成立条件は２度のタップ操作に限られない。例えば、プレイヤが全てのプレイヤオブジェクトＰＯを集合させたい位置に、タップ操作を所定の時間以内に３度以上行うことによって「ダブルタッチ操作」が成立するような条件（いわゆる「トリプルタッチ操作」以上）としてもかまわない。
【０１９９】
また、上述した説明では、プレイヤのタッチ操作に応じて選択されたプレイヤオブジェクトＰＯが移動する例を用いたが、当該タッチ操作に応じて選択されたプレイヤオブジェクトＰＯが他の動作を行ってもかまわない。第１の例として、プレイヤがタッチパネル１３にタッチオンした入力座標が何れかのプレイヤオブジェクトＰＯを指示する場合、その後のスライド操作におけるタッチ位置の方向または所定の方向へ、指示されたプレイヤオブジェクトＰＯが別のオブジェクトを移動させる。一方、プレイヤがタッチパネル１３にタッチオンした入力座標が何れのプレイヤオブジェクトＰＯも指示しない場合、タッチ位置への方向へ、全てのプレイヤオブジェクトＰＯがそれぞれ別のオブジェクトを移動させる。例えば、指示されたプレイヤオブジェクトＰＯが弾や光線等の射出オブジェクトを上記方向へ射出するゲームや、ボール等のオブジェクトを上記方向へ投げる、蹴る、打つ、飛ばす等の球技を行う等、様々なゲームに適用可能である。第２の例として、プレイヤがタッチパネル１３にタッチオンした入力座標が何れかのプレイヤオブジェクトＰＯを指示する場合、指示されたプレイヤオブジェクトＰＯが向く方向（例えば、正面方向）が、その後のスライド操作におけるタッチ位置の方向または所定の方向に変化する。一方、プレイヤがタッチパネル１３にタッチオンした入力座標が何れのプレイヤオブジェクトＰＯも指示しない場合、全てのプレイヤオブジェクトＰＯが向く方向が、タッチ位置への方向または所定の方向に変化する。第３の例として、プレイヤがタッチパネル１３にタッチオンした入力座標が何れかのプレイヤオブジェクトＰＯを指示する場合、指示されたプレイヤオブジェクトＰＯの表示態様（例えば、色（色相、明度、彩度）、大きさ、模様、強調／非強調、表示／非表示等）が変化する。一方、プレイヤがタッチパネル１３にタッチオンした入力座標が何れのプレイヤオブジェクトＰＯも指示しない場合、全てのプレイヤオブジェクトＰＯの表示態様が変化する。
【０２００】
また、上述した実施形態では、「継続タッチ操作」および「ダブルタッチ操作」に応じて、移動対象の移動目標となる位置にオブジェクト（第１集合目標オブジェクトＴＯ１、第２集合目標オブジェクトＴＯ２）を表示している。これによって、プレイヤは、タッチ操作に応じて現時点で設定されている移動目標の位置を正確に把握することができる。しかしながら、このような効果を期待しない場合、移動対象の移動目標となる位置にオブジェクトを表示しなくてもかまわない。
【０２０１】
また、上述した実施形態では、２画面分の液晶表示部の一例として、物理的に分離された下側ＬＣＤ１２および上側ＬＣＤ２２を互いに上下に配置した場合（上下２画面の場合）を説明した。しかしながら、２画面分の表示画面の構成は、他の構成でもかまわない。例えば、下側ハウジング１１の一方主面に下側ＬＣＤ１２および上側ＬＣＤ２２を左右に配置してもかまわない。また、下側ＬＣＤ１２と横幅が同じで縦の長さが２倍のサイズからなる縦長サイズのＬＣＤ（すなわち、物理的には１つで、表示サイズが縦に２画面分あるＬＣＤ）を下側ハウジング１１の一方主面に配設して、２つの画像（例えば、撮像画像と操作説明画面を示す画像等）を上下に表示（すなわち上下の境界部分無しに隣接して表示）するように構成してもよい。また、下側ＬＣＤ１２と縦幅が同じで横の長さが２倍のサイズからなる横長サイズのＬＣＤを下側ハウジング１１の一方主面に配設して、横方向に２つの画像を左右に表示（すなわち左右の境界部分無しに隣接して表示）するように構成してもよい。すなわち、物理的に１つの画面を２つに分割して使用することにより２つの画像を表示してもかまわない。いずれの画像の形態に対しても、上述した下側ＬＣＤ１２に表示していたまた、物理的に１つの画面を２つに分割して使用することにより上記２つの画像を表示する場合、当該画面全面にタッチパネル１３を配設してもかまわない。
【０２０２】
また、上述した実施例では、ゲーム装置１にタッチパネル１３が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。また、上側ＬＣＤ２２の上面にタッチパネル１３を設けて上側ＬＣＤ２２に上述した下側ＬＣＤ１２に表示していた表示画像を表示しても良い。さらに、上記実施例では表示画面を２つ（下側ＬＣＤ１２、上側ＬＣＤ２２）を設けたが、表示画面は１つであってもかまわない。すなわち、上記実施例において、上側ＬＣＤ２２を設けず単に下側ＬＣＤ１２のみを表示画面としてタッチパネル１３を設けるように構成してもよい。また、上記実施例において、下側ＬＣＤ１２を設けずに上側ＬＣＤ２２の上面にタッチパネル１３を設けて、上述した下側ＬＣＤ１２に表示していた表示画像を上側ＬＣＤ２２に表示しても良い。
【０２０３】
また、上記実施例では、座標入力を実現するゲーム装置１の入力手段としてタッチパネル１３を用いたが、他のポインティングデバイスを用いてもかまわない。ここで、ポインティングデバイスは、画面上での入力位置や座標を指定する入力装置であり、例えば、マウス、トラックパッド、トラックボール、ペンタブレット、ジョイスティック等を入力手段として使用し、入力手段から出力される出力値から計算された画面座標系の位置情報を用いれば、本発明を同様に実現することができる。なお、マウス等のポインティングデバイスの場合、タッチ状態と非タッチ状態とをクリックボタンのオンオフに対応させ、マウス等から出力される出力値から座標を計算する処理を情報処理装置等で行えばよい。
【０２０４】
また、ゲームコントローラをプレイヤが把持してゲームを楽しむ据置型のゲーム装置の場合、他の態様のポインティングデバイスも考えられる。例えば、ゲームコントローラのハウジングに固設されたカメラを、上記ポインティングデバイスとして利用することも可能である。この場合、ゲームコントローラのハウジングで指し示した位置の変化に応じてカメラが撮像する撮像画像が変化する。したがって、この撮像画像を解析することにより、表示画面に対して上記ハウジングで指し示した座標を算出することができる。
【０２０５】
この場合、上記ハウジングで指し示した位置を示す座標を、上述した処理におけるタッチ座標として取り扱えば本発明を実現することが可能である。ただし、タッチパネル入力におけるタッチオンまたはタッチオフ等の入力有無判定については、上記座標入力とは異なった上記ゲームコントローラからの他の入力の有無や変化によって代用する。第１の例として、上記ゲームコントローラに設けられた操作ボタンの押下（例えば、Ａボタンを押下しているときタッチオン）しているか否かによって、上記タッチオンまたはタッチオフの判定を代用する。第２の例では、上記ゲームコントローラが２つのハウジングで構成されている。そして、これら２つのハウジングは、上記カメラが搭載されている一方ハウジングと、他方のハウジングの動きに応じた信号を出力する加速度センサ等の検出部が固設された当該他方のハウジングとで構成される。この場合、他方のハウジングの動き（例えば、ハウジングを所定方向に傾けているときにタッチオン）に応じて、上記タッチオンまたはタッチオフの判定を代用する。第３の例では、上記ゲームコントローラのハウジングにマイク等の音声入力手段が設けられている。この場合、プレイヤが所定の音声を発したときにタッチオンおよびタッチオフが切り替わる判定で代用する。
【０２０６】
また、上記実施例では、携帯型のゲーム装置１や据置型のゲーム装置を用いて説明したが、一般的なパーソナルコンピュータ等の情報処理装置で本発明の情報処理プログラムを実行して、本発明を実現してもかまわない。
【０２０７】
また、上述したゲーム装置１の形状や、それに設けられている各種操作ボタン１４やタッチパネル１３の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述したゲーム処理で用いられる処理順序、設定値、判定に用いられる値等は、単なる一例に過ぎず他の順序や値であっても、本発明を実現できることは言うまでもない。
【０２０８】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【産業上の利用可能性】
【０２０９】
本発明の情報処理プログラムおよび情報処理装置は、簡単な入力によって操作対象とするオブジェクトを選択することができ、複数のオブジェクトが表示されるゲーム装置等の情報処理装置に有用であり、当該情報処理装置で実行されるゲームプログラム等の情報処理プログラムとして有用である。
【符号の説明】
【０２１０】
１…ゲーム装置
１１…下側ハウジング
１２…下側ＬＣＤ
１３…タッチパネル
１４…操作ボタン
１５、２６…ＬＥＤ
１６…マイクロフォン用孔
２１…上側ハウジング
２２…上側ＬＣＤ
２３…内側カメラ
２４…音抜き孔
２５…外側カメラ
２７…タッチペン
２８、２９…メモリカード
３１…ＣＰＵ
３２…メインメモリ
３３…メモリ制御回路
３４…保存用データメモリ
３５…プリセットデータ用メモリ
３６、３７…メモリカードＩ／Ｆ
３８…無線通信モジュール
３９…ローカル通信モジュール
４０…ＲＴＣ
４１…電源回路
４２…Ｉ／Ｆ回路
４３…マイク
４４…アンプ
【図１】
0005466435.tif 000002
【図２】
0005466435.tif 000003
【図３】
0005466435.tif 000004
【図４】
0005466435.tif 000005
【図５】
0005466435.tif 000006
【図６】
0005466435.tif 000007
【図７】
0005466435.tif 000008
【図８】
0005466435.tif 000009
【図９】
0005466435.tif 000010
【図１０】
0005466435.tif 000011
【図１１】
0005466435.tif 000012
【図１２】
0005466435.tif 000013
【図１３】
0005466435.tif 000014
【図１４】
0005466435.tif 000015
【図１５】
0005466435.tif 000016
【図１６】
0005466435.tif 000017
【図１７】
0005466435.tif 000018
【図１８】
0005466435.tif 000019
【図１９】
0005466435.tif 000020
【図２０】
0005466435.tif 000021
【図２１】
0005466435.tif 000022
【図２２】
0005466435.tif 000023
【図２３】
0005466435.tif 000024