説明

オブジェクト移動制御プログラムおよび情報処理装置

【構成】情報処理装置では、オブジェクト70の移動が入力に応じて制御される。たとえば、オブジェクト70を含む第1領域74内の座標検出によって入力の始点が決定される。始点を基準として第2領域76が設定され、始点決定後の連続的な入力が第2領域外に出たとき、検出座標が入力の終点として決定される。この入力の終点と、たとえば始点またはオブジェクト位置とに基づいて、オブジェクトの移動方向が決定される。そして、オブジェクトは決定された移動方向に移動される。
【効果】入力の終点が決まる位置を明確にできるので、ユーザの意図通りにオブジェクトを移動できる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、オブジェクト移動制御プログラムおよび情報処理装置に関し、特にたとえば、タッチパネル上のスライド入力に応じて画面上のオブジェクトを移動させる、オブジェクト移動制御プログラムおよび情報処理装置に関する。
【背景技術】
【0002】
タッチパネルを用いた打撃模擬によって仮想球を移動させる技術が特許文献1に開示されている。具体的には、この特許文献1の技術では、ユーザがペンの先を仮想球の上に下ろし、続いてペンを振り上げたときのペンの軌跡に対応する座標が計測される。計測された軌跡のうち隣接する座標点間の距離が初めて所定値以上になったときが、振り上げ動作が始まったときと見なされ、そのときの座標点が打撃の始点として決定される。また、ペンが仮想球に下ろされてから所定時間経過したときのペンの位置に対応する座標点が終点として決定される。この始点と終点とを結ぶ線の角度が仮想球の打撃方向として決定される。また、終点から順に所定数個の隣接座標点間の距離の最大値が打撃力として決定される。さらに、終点が発生したときのタイミングすなわちペンダウンから所定時間経過時が打撃を行うタイミングとして決定される。
【特許文献1】特開平5−31256号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
上述の従来技術では、入力の開始から所定時間経過したときの座標点を、打撃方向を決めるための終点と認定するようにしていたので、ユーザにとっては仮想球の移動方向を意図通りに入力することが困難であった。たとえば、終点決定のために設定される所定時間が短いと、的確な軌跡を入力することができなくなる。つまり、ユーザがまだ入力中であるにもかかわらず終点が決定されてしまうので、ユーザの意図しない方向に仮想球が動き出してしまう事態が発生する。一方、所定時間が長いと、的確な軌跡を入力した後の冗長な入力まで計測されてしまうことになる。つまり、ユーザ自身は的確な入力をし終わったと思ってもまだ入力を受け付ける状態が継続しているので、意図的でない入力で終点が決定されてそのような入力が仮想球の移動動作に反映されてしまう。
【0004】
それゆえに、この発明の主たる目的は、新規な、オブジェクト移動制御プログラムおよび情報処理装置を提供することである。
【0005】
この発明の他の目的は、ユーザの意図通りにオブジェクトを移動させることができる、オブジェクト移動制御プログラムおよび情報処理装置を提供することである。
【課題を解決するための手段】
【0006】
第1の発明(請求項1の発明)は、入力手段の入力に応じて移動するオブジェクトを表示手段に表示する情報処理装置のオブジェクト移動制御プログラムである。このオブジェクト移動制御プログラムは、情報処理装置のプロセサを、座標検出手段、第1判定手段、第2判定手段、方向決定手段、および移動制御手段として機能させる。座標検出手段は、表示手段の画面に対して入力手段によって入力された座標を検出する。第1判定手段は、座標検出手段による検出座標が画面上の第1領域内の座標であるか否かを判定する。第2判定手段は、第1判定手段による判定結果が肯定的となった後に連続的に検出される座標が、画面上の第2領域外の座標になったか否かを判定する。方向決定手段は、第2判定手段による判定結果が肯定的となったときの検出座標に基づいて移動方向を決定する。移動制御手段は、オブジェクトが方向決定手段によって決定された移動方向に移動するように制御する。
【0007】
請求項1の発明では、情報処理装置(10)のプロセサ(42)は、オブジェクト移動制御プログラムに従って処理を実行し、入力手段(22)の入力に応じて移動するオブジェクト(70)を表示手段(14)に表示する。座標検出手段(S3−S7、S103−S107)は、表示画面に対して入力手段によって入力された座標を検出する。入力手段はたとえばタッチパネルのようなポインティングデバイスであり、この座標検出手段でユーザによって指示された位置に対応する座標が検出される。第1判定手段(S13、S111)は、検出座標が画面上の第1領域(74)内の座標であるか否かを判定する。第1領域は、たとえばユーザによるオブジェクト移動のための入力が開始されたか否かを判定するための領域である。たとえば、画面上にオブジェクトが表示されている場合には、第1領域は、オブジェクトの表示領域を含んでよい。第1領域は、オブジェクトの表示領域と一致していてもよいし、オブジェクトの表示領域を含み当該表示領域よりも広い領域としてもよいし、オブジェクトの表示領域の少なくとも1部(典型的にはオブジェクトの表示領域の中央部分)を含み当該表示領域よりも狭い領域としてもよい。なお、オブジェクトが画面上に表示されるタイミングは適宜に設定され、たとえば、オブジェクトは、ユーザによる入力前から所定位置(例えば、第1領域内の所定位置(典型的には中心位置))に表示されていてもよいし、あるいは入力が開始されてから所定位置、入力開始位置、現入力位置などに表示されてもよいし、あるいは移動方向が決定されたときに移動開始位置に表示されてもよい。第2判定手段(S27、S129)は、第1判定手段による判定結果が肯定的となった後に連続的に検出される座標が、画面上の第2領域(76)外の座標になったか否かを判定する。第2領域は、たとえばオブジェクトに対する入力の終点を判定するための領域である。第2領域は、たとえば第1領域内の所定位置を基準として設けられてよい。第2領域の基準点は、たとえば、オブジェクトの位置(たとえば中心座標)であってもよいし、入力の始点であってもよい。たとえば、この基準から所定の距離内の範囲が第2領域とされてよい。なお、第2領域は第1領域と同一の領域であっても良いし、異なる領域であってもよい。方向決定手段(S53、S167)は、第2判定手段による判定結果が肯定的となったときの検出座標に基づいて移動方向を決定する。移動方向は、たとえば、検出座標が第2領域外になったときの座標と検出座標が第1領域内になったときの座標とに基づいて決定されてよいし、検出座標が第2領域外になったときの座標とオブジェクトの位置に基づいて決定されてよいし、第1領域内の座標検出後の連続的な入力が所定の領域外に出たときの座標と検出座標が第2領域外になったときの座標とに基づいて決定されてもよい。移動制御手段(S57、S81、S87、S171)は、オブジェクトが方向決定手段によって決定された移動方向に移動するように制御する。
【0008】
なお、オブジェクトの移動開始位置は、第1領域内の所定位置、第1判定手段による判定結果が肯定的となったときの検出座標、後述の第3判定手段による判定結果が肯定的となったときの検出座標などに設定してもよい。この場合、オブジェクトは、当該開始位置から決定された移動方向に向けて移動する。
【0009】
また、オブジェクトの移動経路は、第2判定手段による判定結果が肯定的となったときの検出座標を含むようにしてもよい。すなわち、オブジェクトは、当該検出座標から決定された移動方向に向けて移動し、または、当該検出座標を通過するように決定された移動方向に向けて移動する。
【0010】
請求項1の発明によれば、第1領域内の座標検出後に連続的に検出される座標が第2領域外の座標になったと判定されるときの検出座標に基づいて、オブジェクトの移動方向を決定するようにした。このように、移動制御のための入力の範囲や、入力として受け付けられる終わりの位置を明確にすることができる。したがって、移動方向の決定に使用される入力の終わりの座標点をユーザの意識どおりに決めることができるので、ユーザの意図通りにオブジェクトを移動させることが可能になる。
【0011】
請求項2の発明は、請求項1の発明に従属し、移動制御手段は、第2判定手段による判定結果が肯定的となったタイミングで、オブジェクトの移動を開始する。したがって、第2領域外の座標が検出されたときに、オブジェクトの移動方向を決めるとともに、当該オブジェクトを当該移動方向に移動させ始めることができる。
【0012】
請求項3の発明は、請求項1または2の発明に従属し、プロセサを、第1領域内にオブジェクトの画像を表示するオブジェクト画像表示手段としてさらに機能させる。オブジェクト画像表示手段(S1、S65、S101、S181)によって、オブジェクトが画面上の第1領域内に表示される。したがって、たとえば、オブジェクトが最初から表示される場合には、オブジェクトの表示領域に対応する座標またはその近傍の座標を入力することが要求される。あるいは、オブジェクトが入力開始または移動方向決定に応じて表示される場合等には、入力に応じて第1領域内にオブジェクトを表示できる。
【0013】
請求項4の発明は、請求項1ないし3の発明のいずれかに従属し、第2領域は前記第1領域を包含する。このように、第2領域が第1領域を包含するようにして設けられるので、第1領域の全周囲に第2領域が存在することとなり、移動方向を決めるための座標点(たとえば入力の終点)を第1領域すなわちオブジェクトから360度全方向で決めることが可能になる。したがって、オブジェクトをあらゆる方向へ向けて移動させることができる。第2領域は、第1領域と同じ領域であってもよいし、異なる領域であってもよい。後者の場合には、第2領域は、第1領域を含み当該領域よりも広い領域となる。
【0014】
請求項5の発明は、請求項1ないし4の発明のいずれかに従属し、第2領域は、第1判定手段による判定結果が肯定的となったときの検出座標を基準として設けられる。つまり、第1領域内の検出座標を基準として、たとえばオブジェクトに対する入力の始点を基準として、移動方向の決定に使用される座標点(たとえば入力の終点)を決定するための第2領域を設定することができるので、第1領域(たとえばオブジェクトの表示領域)に対する入力の状況に応じて第2領域が決められることとなる。したがって、第1領域内の座標検出後のユーザの入力をより正確に測定することができるので、ユーザの入力の意図をより正確にオブジェクトの移動に反映することができる。
【0015】
請求項6の発明は、請求項1ないし4の発明のいずれかに従属し、第2領域は、第1領域内の所定位置を基準として設けられる。つまり、移動方向の決定に使用される座標点(たとえば入力の終点)を決めるための第2領域を、第1領域内の所定位置(たとえばオブジェクトの位置)を基準として設定することができる。したがって、入力を正確に測定することができるので、ユーザの意図を正確に反映させた移動を行わせることができる。
【0016】
請求項7の発明は、請求項1ないし6の発明のいずれかに従属し、方向決定手段は、第1領域内の所定位置と第2判定手段による判定結果が肯定的となったときの検出座標とに基づいて、移動方向を決定する。したがって、オブジェクトの移動方向を、第1領域内の所定位置(たとえばオブジェクトの位置)と検出座標が第2領域外の座標になったときの座標点(たとえば入力の終点)とに基づいて決定することができるので、たとえばオブジェクトからユーザに指示された座標点(終点)へ向かう方向へオブジェクトを移動させることができる。
【0017】
請求項8の発明は、請求項1ないし6の発明のいずれかに従属し、方向決定手段は、第1判定手段による判定結果が肯定的となったときの検出座標と第2判定手段による判定結果が肯定的となったときの検出座標とに基づいて、移動方向を決定する。したがって、オブジェクトの移動方向を、検出座標が第1領域内の座標になったときの座標点(たとえば入力の始点)と検出座標が第2領域外の座標になったときの座標点(たとえば入力の終点)とに基づいて決定することができることができるので、たとえばユーザが入力位置を移動させた方向へオブジェクトを移動させることができる。
【0018】
請求項9の発明は、請求項1ないし6の発明のいずれかに従属し、方向決定手段は、第1判定手段による判定結果が肯定的となってから第2判定手段による判定結果が肯定的となるまでに座標検出手段によって連続的に検出された座標のうち少なくとも2点の座標に基づいて、移動方向を決定する。
【0019】
請求項9の発明では、方向決定手段(S167)は、検出座標が第1領域内の座標になったときの座標点(たとえば入力の始点)から検出座標が第2領域外の座標になったときの座標点(たとえば入力の終点)までの複数の座標点のうち少なくとも2点の座標に基づいて移動方向を決定する。したがって、たとえば、ユーザの連続的な入力の意図を、オブジェクトの移動方向に反映させることができる。
【0020】
請求項10の発明は、請求項1ないし6の発明のいずれかに従属し、プロセサを、第1判定手段による判定結果が肯定的となった後に連続的に検出される座標が、画面上の少なくとも第2領域と異なる第3領域外の座標になったか否かを判定する第3判定手段としてさらに機能させる。方向決定手段は、第3判定手段による判定結果が肯定的となったときの検出座標と第2判定手段による判定結果が肯定的となったときの検出座標とに基づいて、移動方向を決定する。
【0021】
請求項10の発明では、第3判定手段(S21)は、第1領域内の座標検出後に連続的に検出される座標が第3領域(78)外の座標になったか否かを判定する。第3領域は、少なくとも第2領域とは異なる領域である。第3領域は、たとえば、第1領域内の所定位置を基準に設けられてもよいし、第1領域内の座標検出があったときの座標点を基準として設けられてもよい。そして、方向決定手段によって、検出座標が第3領域外になったときの座標点と検出座標が第2領域外になったときの座標点とに基づいて移動方向が決定される。したがって、たとえば、第1領域内の座標検出後の第3領域内の迷っているときの入力は移動方向に反映されず、ユーザが方向を決めて迷いが無くなった後の入力に基づいて移動方向を決定できるので、ユーザの意図をより正確に移動方向に反映できる。
【0022】
請求項11の発明は、請求項1ないし10の発明のいずれかに従属し、プロセサを、第1判定手段による判定結果が肯定的となってから第2判定手段による判定結果が肯定的となるまでに経過した時間に基づいて移動速度を決定する速度決定手段としてさらに機能させる。移動制御手段は、速度決定手段で決定された移動速度でオブジェクトが移動するように制御する。
【0023】
請求項11の発明では、速度決定手段(S169)は、第1領域内の座標が検出されてから検出座標が第2領域外に出たときまでに経過した時間に基づいて移動速度を決定する。つまり、第2領域は、移動方向を決定する座標点の判定領域であると同時に、移動速度を決定するための時間計測終了時点の判定領域でもある。移動制御手段は、決定された移動速度でオブジェクトを移動する。したがって、移動速度を決めるための入力の範囲が、第1領域内から第2領域外までに限られて明確にされるので、ユーザの入力を正確に計測することができ、ユーザの意図通りの速度で意図通りの方向にオブジェクトを移動させることができる。
【0024】
請求項12の発明は、請求項1ないし10の発明のいずれかに従属し、プロセサを、第1判定手段による判定結果が肯定的となった後に連続的に検出される座標が、画面上の少なくとも第2領域と異なる第3領域外の座標になったと判定されてから第2判定手段による判定結果が肯定的となるまでに経過した時間に基づいて移動速度を決定する速度決定手段としてさらに機能させる。移動制御手段は、速度決定手段で決定された移動速度でオブジェクトが移動するように制御する。
【0025】
請求項12の発明では、速度決定手段(S55)は、第1領域内の座標検出後の連続的な座標が第3領域外になったときから第2領域外になったときまでに経過した時間に基づいて移動速度を決定する。つまり、第2領域は、移動方向を決定する座標点の判定領域であると同時に、移動速度を決定するための時間計測終了時点の判定領域でもある。また、第3領域は、少なくとも第2領域と異なる領域であり、たとえば、第1領域内の所定位置を基準に設けられてもよいし、第1領域内の座標検出があったときの座標点を基準として設けられてもよいし、あるいは、第1領域と同一であってもよい。移動制御手段は、決定された移動速度でオブジェクトを移動する。このように、移動速度を決めるための入力の範囲が、第3領域を出てから第2領域外に出るまでに限られて明確にされるので、ユーザの入力をより正確に計測することができる。したがって、ユーザの意図をより的確に反映した速度で、意図通りの方向にオブジェクトを移動させることができる。
【0026】
請求項13の発明は、請求項1ないし12の発明のいずれかに従属し、方向決定手段は、第1判定手段による判定結果が肯定的となった後、第2判定手段による判定結果が肯定的となる前に、座標検出手段によって座標が検出されなくなったとき、第2判定手段による判定結果が肯定的となったときの検出座標に代えて、当該検出されなくなった直前の検出座標に基づいて、移動方向を決定する。
【0027】
請求項13の発明では、方向決定手段は、第1領域内の座標検出後の連続的な検出座標が第2領域外の座標になる前に、座標が検出されなくなった場合には、第2領域外の座標を検出することができないので、当該第2領域外の検出座標に代えて、座標が検出されなくなった直前の検出座標に基づいて、移動方向を決定する。つまり、第1領域内の座標検出後の連続的な入力が第2領域外に出る前に、ユーザによって入力が終了されたときには、その直前の入力座標に基づいて移動方向を決定することができる。このように、第2領域外まで入力を移動させなくても入力無し状態にすることによって移動方向を決定することができ、オブジェクトの移動を開始させることができる。したがって、たとえば、方向の指示が既に意図通りに入力できているとユーザが判断したときには、第2領域外になる前に入力を終了することによって、素早くオブジェクトの移動を開始させることができる。また、複数のオブジェクトを移動させる場合には、これらを素早くかつ簡単に移動させることができる。
【0028】
請求項14の発明は、請求項1ないし13の発明のいずれかに従属し、移動制御手段は、第1判定手段による判定結果が肯定的となった後に連続的に検出される座標が、画面上の少なくとも第2領域と異なる第3領域外の座標になったと判定される前に、座標検出手段によって座標が検出されなくなったときには、オブジェクトを移動させない。
【0029】
請求項14の発明では、移動制御手段(S49、S161)は、第1領域内の座標検出後の連続的な座標が第3領域外の座標になる前に、座標が検出されなくなったときには、オブジェクトを移動させない。第3領域は、少なくとも第2領域と異なる領域であり、たとえば、第1領域内の所定位置を基準に設けられてもよいし、第1領域内の座標検出があったときの座標点を基準として設けられてもよいし、あるいは、第1領域と同一であってもよい。このように、第1領域内の座標検出があっても第3領域外の座標が検出されなければ、オブジェクトが移動されないようにすることができるので、ユーザは、入力をキャンセルすることができ、入力をやり直すことができる。
【0030】
請求項15の発明は、請求項1ないし14の発明のいずれかに従属し、プロセサを、移動制御手段によってオブジェクトが移動されるとき、当該オブジェクトとは別のオブジェクトを発生させるオブジェクト発生手段としてさらに機能させる。
【0031】
請求項15の発明では、オブジェクト発生手段(S63、S179)は、オブジェクトが入力に応じて移動されるとき、別のオブジェクトを発生する。したがって、1つのオブジェクトを移動させるたびに別のオブジェクトを発生させることができるので、複数のオブジェクトを次々と移動させるようなゲームを実現できる。たとえば標的にボールを当てるようなゲームでは、複数のボールを次々と発生させながら各ボールを意図通りに移動させて標的に当てることができる。また、第1領域および第2領域に対する入力の出入に応じてオブジェクトの移動が制御されるようにしているので、入力の有無を切り替えたりすることなく入力を継続したままで複数のオブジェクトを次々と移動させることができる。
【0032】
請求項16の発明は、請求項1ないし15の発明のいずれかに従属し、第1領域はオブジェクトの表示領域よりも大きい。したがって、オブジェクトに対する入力の判定領域を当該オブジェクトの表示領域よりも大きく設定するので、オブジェクトの移動のための入力を素早く開始することができ、操作性がよい。
【0033】
請求項17の発明は、請求項1ないし16の発明のいずれかに従属し、第1領域はオブジェクトの表示領域と同等の大きさである。このように、オブジェクトに対する入力の判定領域を当該オブジェクトの表示領域と同等の大きさに設定するので、オブジェクトに対する入力を開始するために、ユーザに当該オブジェクトの表示領域に対応する位置への入力を行うことを、たとえばタッチパネルの場合にはオブジェクトにまさに触れることを、要求することができる。
【0034】
第2の発明(請求項18の発明)は、入力手段の入力に応じて移動するオブジェクトを表示手段に表示する情報処理装置のオブジェクト移動制御プログラムである。このオブジェクト移動制御プログラムは、情報処理装置のプロセサを、オブジェクト表示制御手段、座標検出手段、第1判定手段、第2判定手段、方向決定手段、および移動制御手段として機能させる。オブジェクト表示制御手段は、オブジェクトを表示手段に表示する。座標検出手段は、表示手段の画面に対して入力手段によって入力された座標を検出する。第1判定手段は、座標検出手段による検出座標が画面上の第1領域内の座標であるか否かを判定する。第2判定手段は、第1判定手段による判定結果が肯定的となった後に連続的に検出される座標が、画面上の第2領域外の座標になったか否かを判定する。方向決定手段は、第1判定手段による判定結果が肯定的となってから第2判定手段による判定結果が肯定的となるまでに座標検出手段によって連続的に検出された座標のうち少なくとも2点の座標に基づいて移動方向を決定する。移動制御手段は、第2判定手段による判定結果が肯定的となったタイミングで、方向決定手段によって決定された移動方向にオブジェクトを移動する。
【0035】
請求項18の発明では、情報処理装置(10)のプロセサ(42)は、オブジェクト移動制御プログラムに従って処理を実行し、入力手段(22)の入力に応じて移動するオブジェクト(70)を表示手段(14)に表示する。オブジェクト表示制御手段(S1、S65、S101、S181)は、オブジェクトを表示手段に表示する。なお、オブジェクトが画面上に表示されるタイミングは適宜に設定され、たとえば、オブジェクトは、最初から所定位置に表示されていてもよいし、あるいは入力が開始されたときに所定位置または入力位置などに表示されてもよいし、あるいは移動方向が決定されたときに所定位置、入力開始位置または現入力位置などに表示されてもよい。座標検出手段(S3−S7、S103−S107)は、表示画面に対して入力手段によって入力された座標を検出する。入力手段はたとえばタッチパネルのようなポインティングデバイスであり、この座標検出手段でユーザによって指示された位置に対応する座標が検出される。第1判定手段(S13、S111)は、検出座標が画面上の第1領域(74)内の座標であるか否かを判定する。第1領域は、たとえばユーザによるオブジェクト移動のための入力が開始されたか否かを判定するための領域である。たとえば、画面上にオブジェクトが表示されている場合には、第1領域は、オブジェクトの表示領域を含んでよい。第2判定手段(S27、S129)は、第1判定手段による判定結果が肯定的となった後に連続的に検出される座標が、画面上の第2領域(76)外の座標になったか否かを判定する。第2領域は、たとえばオブジェクトに対する入力の終点を判定するための領域である。第2領域は、たとえば第1領域内の所定位置を基準として設けられてよい。第2領域の基準点は、たとえば、オブジェクトの位置(たとえば中心座標)であってもよいし、入力の始点であってもよい。たとえば、この基準から所定の距離内の範囲が第2領域とされてよい。なお、第2領域は第1領域と同一の領域であっても良いし、異なる領域であってもよい。方向決定手段(S53、S167)は、第1領域内の座標が検出されてから第2領域外の座標が検出されるまでに連続的に検出された座標のうち少なくとも2点の座標に基づいて移動方向を決定する。移動方向は、たとえば、検出座標が第1領域内になったときの座標と検出座標が第2領域外になったときの座標の2点に基づいて決定されてよいし、あるいは複数の座標点に基づいて、たとえば第1領域内から第2領域外までの各隣接座標点同士を結ぶ直線の角度の平均などに基づいて、決定されてもよい。移動制御手段(S57、S81、S87、S171)は、第1領域内の座標検出後の連続的な座標が第2領域外になったと判定されるタイミングで、決定された移動方向にオブジェクトを移動する。
【0036】
請求項18の発明によれば、第1領域内の座標が検出されてから第2領域外の座標が検出されるまでの連続的な検出座標に基づいて移動方向を決定するとともに、当該連続的な検出座標が第2領域外になったときのタイミングで、オブジェクトを移動させるようにした。このように、移動制御のための入力の範囲や、入力として受け付けられる終わりの位置、オブジェクトの移動が開始される入力位置などを明確にすることができる。したがって、移動方向の決定に使用される入力の終わりの座標点をユーザの意識どおりに決めることができるので、ユーザの意図通りにオブジェクトを移動させることが可能になる。
【0037】
第3の発明(請求項19の発明)は、入力手段の入力に応じて移動するオブジェクトを表示手段に表示する情報処理装置である。この情報処理装置は、座標検出手段、第1判定手段、第2判定手段、方向決定手段、および移動制御手段を備える。座標検出手段は、表示手段の画面に対して入力手段によって入力された座標を検出する。第1判定手段は、座標検出手段による検出座標が画面上の第1領域内の座標であるか否かを判定する。第2判定手段は、第1判定手段による判定結果が肯定的となった後に連続的に検出される座標が、画面上の第2領域外の座標になったか否かを判定する。方向決定手段は、第2判定手段による判定結果が肯定的となったときの検出座標に基づいて移動方向を決定する。移動制御手段は、オブジェクトが方向決定手段によって決定された移動方向に移動するように制御する。
【0038】
請求項19の発明は、上述の第1の発明に対応する情報処理装置であり、上述の第1の発明と同様にして、ユーザの意図通りにオブジェクトを移動させることが可能になる。
【0039】
第4の発明(請求項20の発明)は、入力手段の入力に応じて移動するオブジェクトを表示手段に表示する情報処理装置である。この情報処理装置は、オブジェクト表示制御手段、座標検出手段、第1判定手段、第2判定手段、方向決定手段、および移動制御手段を備える。オブジェクト表示制御手段は、オブジェクトを表示手段に表示する。座標検出手段は、表示手段の画面に対して入力手段によって入力された座標を検出する。第1判定手段は、座標検出手段による検出座標が画面上の第1領域内の座標であるか否かを判定する。第2判定手段は、第1判定手段による判定結果が肯定的となった後に連続的に検出される座標が、画面上の第2領域外の座標になったか否かを判定する。方向決定手段は、第1判定手段による判定結果が肯定的となってから第2判定手段による判定結果が肯定的となるまでに座標検出手段によって連続的に検出された座標のうち少なくとも2点の座標に基づいて移動方向を決定する。移動制御手段は、第2判定手段による判定結果が肯定的となったタイミングで、方向決定手段によって決定された移動方向にオブジェクトを移動する。
【0040】
請求項20の発明は、上述の第2の発明に対応する情報処理装置であり、上述の第2の発明と同様にして、ユーザの意図通りにオブジェクトを移動させることできる。
【発明の効果】
【0041】
この発明によれば、第1領域によってオブジェクトの移動に対する入力の開始を判定し、第2領域によってオブジェクトの移動に対する入力の終了を判定するようにした。そして、第1領域内の座標検出後の連続的な座標が第2領域外になったときの座標に基づいて、あるいは第1領域内の座標検出から第2領域外の座標検出までに連続的に検出された座標のうちの少なくとも2点の座標に基づいて、オブジェクトの移動方向を決定して、当該決定した移動方向へオブジェクトを移動するようにした。このように、オブジェクトの移動を制御可能な入力の範囲や、移動方向を決める入力の終わりの位置を明確にすることができるので、移動方向の決定に使用される座標点をユーザの意識どおりに決めることができる。したがって、ユーザの入力の意図を移動方向に反映することができるので、ユーザの意図しない方向にオブジェクトが移動されるという事態を無くすことができ、ユーザの意図通りにオブジェクトを移動させることができる。
【0042】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0043】
図1を参照して、この発明の実施例である情報処理装置10は、一例としてゲーム装置の形態で実現される。情報処理装置すなわちゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。このLCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
【0044】
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【0045】
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも少し大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aよりも横長に選ばれ、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。また、下側ハウジング16bには、音抜き孔18が形成されるとともに、操作スイッチ20(20a,20b,20c,20d,20e,20Lおよび20R)が設けられる。
【0046】
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
【0047】
操作スイッチないし操作キー20は、方向指示スイッチ(十字スイッチ)20a,スタートスイッチ20b、セレクトスイッチ20c、動作スイッチ(Aボタン)20d、動作スイッチ(Bボタン)20e、動作スイッチ(Lボタン)20Lおよび動作スイッチ(Rボタン)20Rを含む。スイッチ20a,20bおよび20cは、下側ハウジング16bの一方主面において、LCD14の左側に配置される。また、スイッチ20dおよび20eは、下側ハウジング16bの一方主面において、LCD14の右側に配置される。さらに、スイッチ20Lおよびスイッチ20Rは、それぞれ、下側ハウジング16bの上端(天面)の一部であり上側ハウジング16aとの連結部以外の部分において、当該連結部を挟むようにして左右に配置される。
【0048】
なお、この実施例では、後述するように、タッチパネル22を用いて入力された座標に基づいてオブジェクトの移動を制御する処理が実行されるので、ここでは、操作スイッチ20の一般的な働きを説明しておく。
【0049】
方向指示スイッチ(方向キー)20aは、ディジタルジョイスティックとして機能し、操作対象の移動方向を指示するために用いられる。つまり、4つの押圧部の1つを操作することによって、プレイヤ(ユーザ)によって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)やカーソル等を当該操作した部分に対応する方向に移動させることができる。
【0050】
スタートスイッチ20bは、プッシュボタンで構成され、ゲームの開始(再開)、や一時停止等のために用いられる。セレクトスイッチ20cは、プッシュボタンで構成され、ゲームモードの選択等のために用いられる。
【0051】
動作スイッチ(動作キー)20dすなわちAボタンは、プッシュボタンで構成され、移動方向以外の動作の指示のために用いられる。たとえばプレイヤキャラクタに、打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプする、切る等の任意の動作(アクション)をさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。また、メニュー選択の際には、カーソルの表示された、すなわち、選択状態にあるメニュー項目を決定して当該項目に対応する動作ないし処理を実行させることが可能である。
【0052】
動作スイッチ20eすなわちBボタンは、プッシュボタンで構成され、たとえばセレクトスイッチ20cで選択したゲームモードの変更やAボタン20dで決定したアクションの取り消し等のために用いられる。また、Bボタン20eも、Aボタン20dと同様に、プレイヤキャラクタの動作を指示するための動作キーとして使用され得る。
【0053】
動作スイッチ20L(Lボタン)および動作スイッチ20R(Rボタン)は、プッシュボタンで構成され、Lボタン20LおよびRボタン20Rは、上述の各動作スイッチ20d、20eと同じまたは別の操作に用いることができ、また、上述の各動作スイッチ20d、20eの補助的な操作に用いることができる。なお、上述のプッシュボタンは、キートップを押し下げることにより作動するスイッチとして構成されてよい。したがって、各スイッチを押し下げるという簡単な操作によって、動作指示等を行うことができる。
【0054】
また、LCD14の上面には、タッチパネル22が装着される。タッチパネル22としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル22は、その上面をスティック24ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック24等」という場合がある。)で、押圧したり、撫でたり、触れたり、叩いたりすることによって操作すると、スティック24等によって指示された(つまり、タッチ入力された)位置の座標を検出して、当該検出した座標を示す座標データを出力する。したがって、プレイヤはスティック24等でタッチパネル22を操作することにより、タッチ位置に対応する座標を入力することができる。
【0055】
なお、この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル22の検出精度(操作面)も表示画面に対応して256dot×192dotとしてある。ただし、図1では、タッチパネル22を分かり易く示すために、タッチパネル22をLCD14と異なる大きさで示してあるが、LCD14の表示画面の大きさとタッチパネル22の操作面の大きさとは同じ大きさである。なお、タッチパネル22の検出精度は、表示画面の解像度よりも低くてもよく、高くてもよい。
【0056】
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この実施例では、LCD14)の上面にタッチパネル22が設けられるので、2画面ないし2表示領域(12,14)と2系統の操作部(20,22)とを有する構成になっている。
【0057】
なお、この実施例では、第1のLCD12と第2のLCD14とを縦方向に並べて配置するようにしているが、2つのLCDの配置は適宜に変更され得る。たとえば他の実施例のゲーム装置10では、第1のLCD12と第2のLCD14とを横方向に並べて配置するようにしてもよい。
【0058】
また、この実施例では、2つのゲーム画面をそれぞれ表示する2つのLCDを設けるようにしていたが、表示手段としてのLCDの数は適宜変更され得る。たとえば他の実施例のゲーム装置10では、縦長形状の1つのLCDを設けて、表示領域を上下に分けて、2つのゲーム画面をそれぞれの表示領域に表示するようにしてもよいし、あるいは、横長形状の1つのLCDを設けて、表示領域を左右に分割し、2つゲーム画面をそれぞれの表示領域に表示するようにしてもよい。
【0059】
スティック24は、たとえば上側ハウジング16aの側面(右側面)近傍に設けられる収納部(穴ないし凹部)26に収納することができ、必要に応じて取り出される。ただし、スティック24を設けない場合には、収納部26を設ける必要もない。
【0060】
さらに、ゲーム装置10はメモリカード(またはゲームカートリッジ)28を含む。このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは底面(下端)に設けられる挿入口30から挿入される。図1では省略するが、挿入口30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ46(図2参照)が設けられており、したがって、メモリカード28が挿入口30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア42(図2参照)がメモリカード28にアクセス可能となる。
【0061】
なお、図1では表現できないが、下側ハウジング16bの音抜き孔18と対応する位置であり、この下側ハウジング16bの内部には、スピーカ32(図2参照)が設けられる。
【0062】
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、電源スイッチ、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなども設けられてよい。
【0063】
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板40を含み、この電子回路基板40にはCPUコア42等の回路コンポーネントが実装される。CPUコア42は、バス44を介してコネクタ46に接続されるとともに、RAM48、第1のグラフィック処理ユニット(GPU)50、第2のGPU52、入出力インターフェイス回路(以下、「I/F回路」という。)54、LCDコントローラ60およびワイヤレス通信部64に接続される。
【0064】
コネコタ46には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ46と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア42は、ROM28aおよびRAM28bにアクセスすることができるのである。
【0065】
ROM28aは、ゲーム装置10で実行すべきゲーム(仮想ゲーム)のためのゲームプログラム、画像(キャラクタ画像、オブジェクト画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像、カーソル画像など)データおよびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。この実施例のオブジェクト移動制御プログラムはゲームプログラムに含まれる。RAM(バックアップRAM)28bは、そのゲームの途中データや結果データを記憶(セーブ)する。
【0066】
なお、ゲーム以外のアプリケーションが実行される場合、メモリカード28のROM28aには、当該アプリケーションについてのプログラムおよび当該アプリケーションの実行に必要な画像データ等が記憶される。また、必要に応じて音(音楽)データも記憶されてよい。
【0067】
RAM48は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア42は、メモリカード28のROM28aに記憶されたプログラム、画像データおよび音データ等をRAM48にロードし、ロードしたプログラムに従って処理を実行する。また、CPUコア42は、ゲーム等の進行に応じて発生または取得されるデータ(ゲームデータやフラグデータ等)をRAM48に記憶しつつ処理を実行する。
【0068】
なお、プログラム、画像データおよび音データ等は、ROM28aから一度に全部または必要に応じて部分的にかつ順次的に読み出され、RAM48に記憶される。ただし、この実施例のように、固定的にプログラムおよびデータを記憶している記憶媒体をCPUコア42に直接接続可能なゲーム装置10の場合には、CPUコア42が記憶媒体に直接アクセスできるので、RAM48にプログラムやデータを転送して保持しなくてよい。
【0069】
GPU50およびGPU52は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア42からのグラフィックスコマンド(graphics command :作画命令)を受け、そのグラフィックスコマンドに従ってゲーム画像データを生成する。ただし、CPUコア42は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU50およびGPU52のそれぞれに与える。
【0070】
また、GPU50には、第1のビデオRAM(以下、「VRAM」という。)56が接続され、GPU52には、第2のVRAM58が接続される。GPU50およびGPU52が作画コマンドを実行するにあたって必要なデータ(画像データ:キャラクタデータやテクスチャ等のデータ)は、GPU50およびGPU52が、それぞれ、第1のVRAM56および第2のVRAM58にアクセスして取得する。ただし、CPUコア42は、描画に必要な画像データをRAM48から読み出し、GPU50およびGPU52を介して第1のVRAM56および第2のVRAM58に書き込む。GPU50はVRAM56にアクセスして表示のためのゲーム画像データを作成し、その画像データをVRAM56の描画バッファに記憶する。GPU52はVRAM58にアクセスして描画のためのゲーム画像データを作成し、その画像データをVRAM58の描画バッファに記憶する。描画バッファとしてはフレームバッファまたはラインバッファ等が採用されてよい。
【0071】
VRAM56およびVRAM58は、LCDコントローラ60に接続される。LCDコントローラ60はレジスタ62を含み、レジスタ62はたとえば1ビットで構成され、CPUコア42の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ60は、レジスタ62のデータ値が「0」である場合には、GPU50によって作成されたゲーム画像データをLCD12に出力し、GPU52によって作成されたゲーム画像データをLCD14に出力する。一方、レジスタ62のデータ値が「1」である場合には、LCDコントローラ60は、GPU50によって作成されたゲーム画像データをLCD14に出力し、GPU52によって作成されたゲーム画像データをLCD12に出力する。
【0072】
なお、LCDコントローラ60は、VRAM56およびVRAM58から直接画像データを読み出すことができるし、あるいはGPU50およびGPU52を介してVRAM56およびVRAM58から画像データを読み出すこともできる。
【0073】
また、VRAM56およびVRAM58はRAM48に設けられてもよいし、あるいはその描画バッファおよびZバッファがRAM48に設けられてもよい。
【0074】
I/F回路54には、操作スイッチ20,タッチパネル22およびスピーカ32が接続される。ここで、操作スイッチ20は、上述したスイッチ20a,20b,20c,20d,20e,20Lおよび20Rであり、操作スイッチ20が操作されると、対応する操作信号(操作データ)がI/F回路54を介してCPUコア42に入力される。また、タッチパネル22から出力される操作データ(座標データ)がI/F回路54を介してCPUコア42に入力される。さらに、CPUコア42は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM48から読み出し、I/F回路54を介してスピーカ32からその音を出力する。
【0075】
ワイヤレス通信部64は他のゲーム装置10との間で無線によってデータを送受信するための通信手段である。すなわち、ワイヤレス通信部64は、CPUコア42からの相手方への通信データを無線信号に変調してアンテナから送信し、また、相手方のゲーム装置10からの無線信号を同じアンテナで受信して通信データに復調しCPUコア42に与える。
【0076】
情報処理装置10では、画面上に表示されたオブジェクトの移動がタッチパネル22の入力に応じて制御される。一例として、ゲーム画面上のゲームオブジェクトを移動させて標的に当てるようなゲームが実行される場合を説明する。なお、このオブジェクト移動制御処理は、この実施例のようなゲームに限られず、オブジェクトを画面上で別の場所に移動させるようなあらゆる場合で適用可能である。
【0077】
図3には、ゲーム画面の一例が示される。このゲーム画面はタッチパネル22の重ねられるLCD14に表示される。ゲームオブジェクトの一例としてのボール70は、たとえば画面上の所定位置に表示される。また、このボール70で狙うべき標的72も所定位置に表示されている。この実施例では、表示されたボール70に対するタッチパネル22上の対応する位置への入力に応じて、当該ボール70の移動の詳細が決められて、当該ボール70が移動される。プレイヤは、基本的にはボール70に触れてボール70から標的72へ向かう方向にスティック24等による指示位置を移動させるという直感的な操作によって、標的72の方向へボール70を移動させることができる。
【0078】
このボール70に対する入力の有無を判定するために、ボール70の表示領域に対応する領域を含む第1領域74が操作面ないし操作領域上に設けられる。この第1領域74は、ユーザのタッチパネル22における入力が、ボール70に触れてこれを移動させようとするものであるか否かを判定するための領域である。
【0079】
第1領域74は、この実施例ではボール70よりもやや大きいサイズを有し、この第1領域74内にボール70が配置される。この実施例では、ボール70および第1領域74はともに円形であり、ボール70は、第1領域74の中心座標にボール70の中心が一致するように配置される。一例として、ボール70の直径は18ドット程度に設定され、第1領域74の直径は30ドット程度に設定されてよい。なお、ボール70の形状は円形に限定されず、楕円、三角形、矩形など適宜変更されてよい。また、第1領域74はオブジェクト70の形状に合わせた形状に形成されてもよいし、オブジェクト70の形状に合わせず所定の形状であってもよい。この実施例のように、ボール70よりも第1領域74を大きく形成すれば、ボール70に対する入力をユーザに開始させ易くすることができるし、ボール70の移動のための入力を素早く開始することができ、操作性がよい。たとえばボール70が画面上で小さく表示されてしまうようなサイズに設定される場合には特に有効である。ボールのサイズが大きいか、或いは操作をわざと難しくする場合は、ボール70の表示領域と第1領域74の大きさを同一にしても良い。
【0080】
図4を参照して、具体的にボール70に対する入力の開始の判定について説明する。第1領域74への入力が開始されたと判定されるときに、ボール70に対する入力が開始されたと見なされる。すなわち、スティック24等により第1領域74外が指示されている状態から連続的に第1領域74内が指示されることとなったとき、または、タッチパネル22への入力無し状態から最初に第1領域74内が指示されたときに、ボール70に対する入力が開始されたと見なされる。
【0081】
この実施例では、第1領域74への入力が開始されたと判定されると、そのときの検出座標が始点として記憶される。そして、その後のユーザの入力の挙動の詳細を調査し測定するために、タッチパネル22の操作面上に、当該始点を基準として第2領域76および第3領域78が設定される。
【0082】
第2領域76は、第1領域74内の所定位置を基準として設けられ、この実施例では、上述のように、入力の始点を基準として設けられる。この第2領域76は、ボール70に対する入力の終点を判定するために設けられる。つまり、始点から連続するスライド入力が第2領域76外に出たときに、ボール70に対する入力が終了したと見なされる。スライド入力は、タッチパネル22上をスティック24等で触れたままでその指示位置を移動させる入力のことをいう。この第2領域76外に出たときの検出座標が入力の終点とされる。ボール70の移動方向は、少なくともこの終点に基づいて決定され、この実施例では、ボール70の中心と終点とに基づいて決定される。
【0083】
また、第3領域78は、ボール70の移動速度を決定するための時間の計測の開始点を判定するために設けられている。始点から連続するスライド入力が第3領域78を出たときに、時間の計測が開始され、その後、当該スライド入力が第2領域76を出たときに、時間の計測が終了される。この計測された時間、すなわち、スライド入力が第3領域78を出てから第2領域76を出るまでに掛かった時間に基づいて、ボール70の移動速度が決定される。
【0084】
また、始点から連続するスライド入力が第2領域76を出たときがボール70の移動が開始されるタイミングであり、上述のように決定される移動方向および移動速度に従ってボール70が移動し始める。
【0085】
具体的には、第2領域76は、始点から所定距離以下の範囲であり、すなわち、始点を中心としかつ所定距離を半径とする円の範囲内が第2領域76とされる。第2領域76の範囲を規定する所定距離は、たとえば円の半径データとして予め記憶されている。一例として、第2領域76の直径は118ドット程度に設定されてよい。この第2領域76の判定よって、ボール70の移動方向や移動速度が決定されてボール70が発射されることとなる。第2領域76のサイズは、標的72の存在する位置が第2領域76内に含まれないような値に設定される。これによって、スライド入力が標的72の位置に達する前に、移動方向および移動速度が決定されてボール70が発射されることとなるので、ゲーム性を確保することができる。なお、他の実施例では、第2領域76は第1領域78と同一の領域に設定されてもよい。
【0086】
また、第3領域78は、始点から所定距離以下の範囲であり、すなわち、始点を中心としかつ所定距離を半径とする円の範囲内が第3領域78とされる。この第3領域78を規定する所定距離の値は適宜に設定される。ただし、この第3領域78は第2領域76とは異なり、第3領域78を規定する所定距離は、上記第2領域76を規定する所定距離よりも小さい値である。第3領域78の範囲を規定する所定距離は、たとえば円の半径データとして予め記憶されている。一例として、第3領域78の直径は22ドット程度に設定されてよい。また、この第3領域78は、ユーザがボール70の発射方向を決める前に迷うことを許容するための遊び領域でもあり、この第3領域78内にある限りはスライド入力があちこち移動されても、ボール70の移動速度や移動方向は決められないし発射もされない。第3領域78がボール70を触れつつ発射を迷うことが可能な遊び領域であることを表現できればよいので、第3領域78のサイズは、ボール70と同程度かやや大きい値に設定される。図4では、第3領域78は、ボール70への入力開始を判定するための第1領域74よりも小さいサイズを有するが、第3領域78の大きさは、第1領域74と同程度でもよいし、第1領域74より大きくてもよいし、あるいは、ボール70と同程度でもよい。
【0087】
また、図4からわかるように、この実施例では、第2領域76は、ボール70をその内部に包含しボール70の全周囲を包囲することが可能なサイズに設定されている。したがって、ボール70から見て全方向に終点を決定することが可能なように第2領域76が設けられるので、ボール70の移動方向をスライド入力の移動方向に合わせて360度全方向に設定することができる。
【0088】
第1領域74、第2領域76および第3領域78は、この実施例では画面上に明示されていない。この実施例では、ボール70に触れてこれをつかみ所望の方向にスライドさせるという直感的な操作でその方向にボール70を移動させることができるようにしている。したがって、第1領域74、第2領域76および第3領域78をそれぞれ表示しなくても、各領域のサイズを適宜に設定しておくことで、ユーザの入力を正確に測定してその意図を的確に把握することが可能である。また、操作面上に設定した領域を基準として、ユーザの入力の挙動を解析し、ボール70の移動を制御するためのパラメータ(方向、速度)の値を決定するようにしているので、ユーザは上記直感的な操作を何度か繰返せば、自らのスライド入力がボール70の移動方向、移動速度および移動開始タイミングなどにどのように反映されるのかを理解することが可能である。このように、ユーザにとっても所望の入力を行い易い操作性が実現されている。
【0089】
なお、場合によっては、これら第1領域74、第2領域76および第3領域78のたとえば境界線を表示したり、各領域を他の場所と違う色などで表示したりしてもよい。ユーザに各領域を明示することができるので、ユーザが入力と移動制御との関係性をより早く、あるいは、より正確に把握することが可能になる。たとえば、初心者にこつをのみ込ませる場合などに有用である。
【0090】
図5には、移動速度のための時間計測開始時点の判定における条件が示される。図4に示した入力の始点決定後に連続的に検出される座標が第3領域78外の座標となったとき、時間計測が開始される。たとえば、そのときのフレーム番号が計測開始時点として記憶される。上述のように、第3領域78は遊び領域でもあり、スライド入力が第3領域78外に出なければボール70は発射されない。また、スライド入力が第3領域78外に出る前にスティック24等がタッチパネル22から離されたときには、入力のキャンセルと見なされてボール70は移動されない。一方、スライド入力が第3領域78外に一度でも出たときにはこの実施例ではボール70は終点の決定後に移動されることとなる。
【0091】
図6には、終点の判定における条件が示される。この終点決定条件は、移動方向のための終点および移動速度のための時間計測終了時点の決定条件であり、同時にボール70の発射条件である。始点決定後に連続的に検出される座標が第2領域76外の座標となったとき、当該座標点が入力の終点に決定される。また、時間計測が終了され、たとえば、そのときのフレーム番号が計測終了時点として記憶される。
【0092】
また、図7には、終点の判定における他の条件が示される。スライド入力が第3領域78外へ一度でも出た後にタッチオフされたとき、つまり、始点決定後の連続的な検出において第3領域78外の座標が一度でも検出されてから座標の検出がなくなったとき、入力の終了と見なされる。この場合、入力の終点はタッチオフの直前に検出された座標点となる。また、移動速度のための時間計測も終了され、たとえばタッチオフが検出されたときのフレーム番号が計測終了時点として記憶される。このように、第2領域76外まで入力を移動させなくても入力無し状態にすることによって終点を決定することができる。そして、オブジェクトの移動を開始させることができる。したがって、たとえば、方向の指示が既に意図通りに入力できているとユーザが判断したときには、第3領域78外で入力を終了することによって終点が決定されるので、素早くボール70の移動を開始させることができる。また、この実施例のように複数のボール70を次々に移動させる場合には、これらを素早くかつ簡単に移動させることができる。
【0093】
図8には、移動方向の決定方法の一例が示される。この実施例では、移動方向は、ボール70の位置(たとえば表示領域の中心)と入力の終点の2点に基づいて決定される。具体的には、ボール70の中心と終点とを結ぶ直線と、操作面における所定の方向(たとえば左右方向)とのなす角度θが算出されて、移動方向として決定される。また、移動速度は、時間計測の開始時点から終了時点までに経過したフレーム数、すなわち、スライド入力が第3領域78外に最初に出てから第2領域76外に出るまでに経過した時間に基づいて決定される。
【0094】
図9には、メモリカード28のROM28aのメモリマップの一例が示される。ROM28aはゲームプログラム記憶領域80およびデータ記憶領域82を含む。なお、図9にはメモリマップの一部が示されており、ROM28aにはその他の必要なプログラムおよびデータが予め記憶されている。
【0095】
記憶領域84には表示プログラムが記憶される。このプログラムによって、画像データ等を使用して、ボール70および標的72等が登場する画面を表示するための画像データが生成され、当該画面がLCD14に表示される。
【0096】
記憶領域86には入力座標検出プログラムが記憶される。このプログラムによって、タッチパネル22から取得された入力データから、タッチパネル22での入力の有無や、その操作面でスティック24等によって指示された位置の座標が検出される。タッチパネル22からの入力データは一定時間(たとえば1フレーム(1/60秒))ごとに検出される。
【0097】
記憶領域88には、始点判定プログラムが記憶される。このプログラムによって、ボール70に対する入力の始点の決定条件が満たされたか否かが判定される。この始点決定条件は、この実施例では、図4で示したように、ボール70への入力が開始されていない状態での検出座標が第1領域74内に入ったこと、または、タッチパネル22への入力無し状態での検出座標が第1領域74内の座標であったことである。また、このプログラムによって、移動速度のための時間計測開始時点の決定条件が満たされたか否かが判定される。この計測開始時点決定条件は、この実施例では、図5で示したように、始点決定後の連続的に検出される座標が初めて第3領域78外の座標になったことである。
【0098】
記憶領域90には、終点判定プログラムが記憶される。このプログラムによって、ボール70に対する入力の終点の決定条件が満たされたか否かが判定される。この入力の終点は、移動方向のための終点であり、移動速度のための時間計測終了時点でもある。この終点決定条件は、図6で示したように、始点決定後の連続的に検出される座標が第2領域76外の座標になったこと、または、図7で示したように、第3領域78外の座標が検出された後に座標が検出されなくなったこと(入力無し状態に変化した)ことである。
【0099】
記憶領域92には、移動方向決定プログラムが記憶される。このプログラムによって、ボール70の移動方向が、この実施例ではボール70の位置(中心座標)と終点とに基づいて決定される。具体的には、図8で示したように、ボール70の中心と終点とを結ぶ直線と、所定の方向(たとえば操作面の左右方向)とのなす角度θが移動方向として決定されてよい。
【0100】
記憶領域94には、移動速度決定プログラムが記憶される。このプログラムによって、ボール70の移動速度が、計測開始時点から計測終了時点までの経過時間に基づいて決定される。この実施例では、経過時間は、第3領域78を出てから第2領域76を出るまでに経過したフレーム数、または、第3領域78を出てからタッチオフが検出されるまでに経過したフレーム数で算出される。たとえば、代表的な経過時間と移動速度とを対応付けたテーブルデータを準備しておきて、当該テーブルデータを参照して経過時間に対応する移動速度を選択または算出するようにしてもよい。なお、経過時間を複数の時間区分に分割し、その区分ごとに移動速度を対応付けるようにしてもよい。あるいは、移動速度は経過時間に基づいて所定の関係式に従って算出されてもよい。なお、他の実施例では、移動速度は入力を反映せずに所定値に設定されてもよい。
【0101】
記憶領域98には、移動制御プログラムが記憶される。このプログラムによって、ボール70の移動が、決定した移動方向および移動速度に基づいて制御される。ボール70の移動は、終点判定プログラムによって終点決定条件が満足されたと判定されたときに、つまり、移動方向および移動速度が決定されたときに開始される。
【0102】
記憶領域100には画像データが記憶される。たとえば、ボール70、標的72などのオブジェクトの画像データや、背景の画像データ等が記憶されている。
【0103】
記憶領域102には、第1領域74を規定するためのデータが記憶される。この第1領域データは第1領域74の位置、範囲、サイズなどに関するデータを含む。この実施例のように円形の第1領域74である場合には、たとえばその中心座標データと半径データ(もしくは直径データ)とが記憶される。
【0104】
記憶領域104には第2領域76を規定するためのデータが記憶される。この第2領域データは第2領域76の範囲、サイズなどに関するデータを含む。第2領域76は、この実施例では、始点の決定後に、当該始点を基準として設けられる円内の範囲である。その円形の第2領域76の中心座標は、始点の座標で与えられる。第2領域データとしては、円形の第2領域76のたとえば半径データが予め記憶される。
【0105】
記憶領域106には、第3領域78を規定するためのデータが記憶される。この第3領域78も、第2領域76と同様に、この実施例では、始点の決定後に、当該始点を基準として設けられる円内の範囲であり、円形の第3領域78の中心座標は始点の座標で与えられる。第3領域データは、第3領域78の範囲、サイズなどに関するデータを含み、この第3領域データとしてたとえば半径データが記憶される。
【0106】
なお、検出座標が、第1領域74、第2領域76または第3領域78の範囲の内か外かの判定は、これら第1領域データ、第2領域データおよび第3領域データならびに始点座標データ等に基づく判定式に従って行われてよい。あるいは、第1領域74は、予め配置が決まるので、第1領域74内の全座標を示す参照用のデータを準備しておいてもよい。
【0107】
図10には、RAM48のメモリマップの一例が示される。なお、この図10はRAM48のメモリマップの一部を示しており、RAM48にはゲームの進行に必要な各種データが記憶される。
【0108】
入力座標記憶領域110には、入力座標検出プログラムの実行によって現フレームで検出された座標データが記憶される。入力履歴記憶領域112には、入力履歴として、現フレームで検出された座標を示す今回座標と前フレームで検出された座標を示す前回座標とが記憶される。タッチパネル22への入力が行われておらず座標データが検出されてない場合には、座標データの代わりに入力無しを示すデータが記憶される。この入力履歴に基づいて、タッチパネル22へのタッチが開始されたことを検出できるし、また、タッチパネル22へのタッチが離されたことを検出できる。
【0109】
始点記憶領域114には、始点判定プログラムの実行によって、始点決定条件が満足されたと判定されたときに検出された座標データが記憶される。この実施例では、始点は第2領域76および第3領域78の中心となる。
【0110】
開始フレーム番号記憶領域116には、始点判定プログラムの実行によって、移動速度のための時間計測開始時点の条件が満足されたと判定されたときのフレーム番号が記憶される。この記憶領域116には、初期値としてたとえば0が記憶され、また、入力キャンセルが検出されたときにも0が記憶される。
【0111】
終点記憶領域118には、終点判定プログラムの実行によって決定された終点の座標データが記憶される。具体的には、図6に示した条件の場合には、当該条件が満足されたと判定されたときに検出された座標が記憶され、図7に示した条件の場合には、当該条件が満足されたと判定されたときの直前のフレームで検出された座標が記憶される。この実施例では、この終点座標を用いて、ボール70の移動方向が決定されることとなる。
【0112】
終了フレーム番号記憶領域120には、終点判定プログラムの実行によって、移動速度のための時間計測終了時点の条件が満足されたと判定されたとき、つまり、終点が決定されたときのフレーム番号が記憶される。
【0113】
移動方向記憶領域122には、移動方向決定プログラムの実行によって決定された移動方向を示すデータが記憶される。移動速度記憶領域124には、移動速度決定プログラムの実行によって決定された移動速度を示すデータが記憶される。
【0114】
ボール制御データ記憶領域126には、複数のボール70の制御データが記憶され得る。なお、この実施例では、図3に示したように、1つのボール70が画面上の所定位置に発生されて、上述のようなユーザのスライド入力に応じて移動される。ボール70が移動されると、すぐに別のボール70が同じ所定位置に発生され、画面上に複数のボール70が同時に表示されることになる。この新たなボール70も、同様に、ユーザのスライド入力に応じて移動されることになる。したがって、ユーザは、スライド入力を連続的に行うことによって、複数のボール70を次々に発生させて移動させることができる。また、他の実施例では、画面上の複数の所定位置に複数のボール70をそれぞれ発生させるようにしてもよい。
【0115】
各ボール70の制御データは、当該ボール70の表示に使用する画像データの識別番号を指定するための画像指定データ、および当該ボール70の画面上の表示座標または仮想ゲーム空間中の座標を示す位置データ等を含む。位置データは、初期値としてボール70の発生する所定位置の座標が記憶される。この実施例では、初期位置は第1領域74の中心座標である。その後、位置データは、移動制御プログラムの実行によって移動方向および移動速度に基づいて算出される移動後の位置の座標に更新される。ボール70は、位置データの示す座標に画像指定データの示す画像データに基づいて表示される。
【0116】
標的制御データ記憶領域128には、複数の標的72の制御データが記憶され得る。画面上には、図3に示したように、複数の標的72が所定位置に発生されてよい。各標的72の制御データは、上述のボール70と同様に、画像指定データおよび位置データ等を含む。
【0117】
入力開始フラグ記憶領域130には、ユーザによるボール70に対する入力が行われているか否かを示すフラグが記憶される。この記憶領域130には初期値としてたとえば0が記憶されている。始点判定プログラムの実行によってボール70に対する入力が開始されたと判定されるとき、この記憶領域130にたとえば1が記憶されることによって、入力開始フラグはオンにされる。また、終点判定プログラムの実行によってボール70に対する入力が終了したと判定されるとき、この記憶領域130にたとえば0が記憶されて、入力開始フラグがオフにされる。
【0118】
発射フラグ記憶領域132は、ボール70を発射するか否かを示すフラグが記憶される。この記憶領域132には初期値としてたとえば0が記憶されている。ボール70の発射条件が満足されたとき、すなわち、終点判定プログラムの実行によって終点決定条件が満足されたと判定されたときに、この記憶領域132にたとえば1が記憶されて、発射フラグがオンにされる。この発射フラグがオンであるときには、当該ボール70の移動処理が開始されて、発射フラグがオフにされる。
【0119】
図11から図14にはゲーム装置10の動作の一例が示される。ゲーム処理を開始すると、CPUコア42は、まずステップS1で、表示プログラムに従って、ボール70と標的72を含むゲーム画面を生成してLCD14に表示する。具体的には、CPUコア42は、GPU50または52を用いて、画像データ記憶領域100の画像データに基づいて、ボール70および標的72を含むゲーム画面を表示するためのゲーム画像データをVRAM56または58の描画バッファに生成し、LCDコントローラ60を用いてLCD14にそのゲーム画面を表示する。これによって、図3に示したように、ボール70および標的72がそれぞれ初期位置に配置されたゲーム画面が、タッチパネル22の装着されたLCD14に表示される。ユーザは、タッチパネル22上でスティック24等を使ってボール70の表示領域およびその周辺領域に対応する場所、つまり、第1領域74上でスライド入力することによってボール70を移動させることができる。
【0120】
CPUコア42は、続くステップS3からステップS69(図14)までの処理を一定時間(たとえば1フレーム)ごとに繰り返し実行する。CPUコア42は、フレーム番号をカウントしつつそのフレームの処理を実行する。
【0121】
ステップS3では、CPUコア42は、入力座標検出プログラムに従って、I/F回路54を介してタッチパネル22からの入力データをRAM48に取得する。続いて、ステップS5で、CPUコア42は、入力があったか否かを入力データに基づいて判断する。
【0122】
ステップS5で“YES”であれば、CPUコア42は、ステップS7で、入力データから入力座標を示す座標データを検出して入力座標記憶領域110に記憶する。
【0123】
続くステップS9で、CPUコア42は、入力履歴を記憶する。たとえば、CPUコア42は、入力履歴記憶領域112における今回座標の記憶領域のデータを前回座標の記憶領域に書き込み、今回座標の記憶領域に入力座標記憶領域110のデータを書き込む。なお、入力履歴記憶領域112には初期設定で初期値として入力無しを示すデータが今回座標および前回座標ともに記憶されている。
【0124】
そして、CPUコア42は、ステップS11で、入力開始フラグがオフであるか否かを判定する。ここでは、ボール70に対する入力がまだ開始されていないことを確認している。ステップS11で“YES”であれば、CPUコア42は、ステップS13で、始点判定プログラムに従って、入力座標が第1領域74内の座標であるか否かを、入力座標記憶領域110のデータおよび第1領域データ記憶領域102のデータ等に基づいて判定する。このようにして、ボール70に対する入力が開始されていない状態で、スライド入力が第1領域74内に進入したか否かを判定することができ、また、第1領域74内でタッチが開始されたか否かを判定することができる。
【0125】
ステップS13で“YES”であれば、つまり、ボール70に対する入力の始点条件が満足されたと判定される場合には、CPUコア42は、ステップS15で、現フレームのステップS7で検出された入力座標を始点として決定し、当該入力座標データを始点記憶領域114に記憶する。第2領域76および第3領域78は、この始点を基準として設定される。そして、ステップS17で、CPUコア42は、入力開始フラグ記憶領域130にたとえば1を書き込んで、入力開始フラグをオンにする。ステップS17を終了すると、処理は図14のステップS51へ進む。
【0126】
なお、ステップS13で“NO”であれば、つまり、ボール70に対する入力が開始されていない段階で第1領域74外がタッチされている場合には、処理はそのまま図14のステップS51へ進む。
【0127】
一方、ステップS11で“NO”であれば、つまり、ボール70に対する入力が行われている最中である場合には、CPUコア42は、ステップS19で、開始フレーム番号が0であるか否かを判断する。ここでは、始点決定後に時間計測開始時点の条件が満足されていないこと、つまり、始点決定後に連続的に検出される座標が一度も第3領域78外の座標になっていないことを確認している。
【0128】
ステップS19で“YES”であれば、CPUコア42は、ステップS21で、始点判定プログラムに従って、入力座標が第3領域78外の座標であるか否かを、始点記憶領域114のデータおよび第3領域データ記憶領域106のデータ等に基づいて判定する。
【0129】
ステップS21で“YES”であれば、つまり、時間計測開始時点の条件が満足されたと判定される場合には、CPUコア42は、ステップS23で、現フレーム番号を開始フレーム番号記憶領域116に記憶する。これによって、移動速度のための時間計測が開始されたこととなる。ステップS23を終了すると処理は図14のステップS51へ進む。
【0130】
なお、ステップS21で“NO”であれば、つまり、始点決定後のスライド入力が第3領域78外に出ていない場合には、処理はそのまま図14のステップS51へ進む。
【0131】
一方、ステップS19で“NO”であれば、つまり、始点決定後のスライド入力が第3領域78外に出て、既に時間計測が開始されている場合には、入力終点の条件を判定すべく、処理は図12のステップS27へ進む。
【0132】
また、ステップS5で“NO”であれば、つまり、タッチパネル22への入力が行われていない場合には、CPUコア42は、ステップS25で、入力履歴を記憶する。つまり、CPUコア42は、入力履歴記憶領域112の今回座標のための記憶領域に記憶されているデータを、前回座標のための記憶領域に記憶し、入力無しを示すデータを今回座標のための記憶領域に記憶する。ステップS27を終了すると、処理は図13のステップS37へ進む。
【0133】
時間計測が開始されている場合、つまり、ステップS19で“NO”の場合、CPUコア42は、図12のステップS27で、終点判定プログラムに従って、入力座標が第2領域76外の座標であるか否かを、始点データおよび第2領域データ記憶領域104のデータ等に基づいて判定する。つまり、入力の終点決定条件、時間計測終了時点決定条件、および発射条件の判定が行われる。
【0134】
ステップS27で“YES”であれば、つまり、始点決定後のスライド入力が第2領域76を出た場合には、CPUコア42は、ステップS29で、現フレームのステップS7で検出された入力座標を終点として決定し、当該入力座標データを終点記憶領域118に記憶する。また、ステップS31で、CPUコア42は、現フレーム番号を終了フレーム番号記憶領域120に記憶する。これによって、移動速度のための時間計測を終了する。
【0135】
また、ボール70に対する入力終点条件が満足されたので、CPUコア42は、ステップS33で、入力開始フラグ記憶領域130にたとえば0を書き込んで、入力開始フラグをオフにする。また、同時にボール70の発射条件も満足されたので、ステップS35で、CPUコア42は、発射フラグ記憶領域132にたとえば1を書き込んで、発射フラグをオンにする。これによって、ボール70の移動が開始されることとなる。ステップS35を終了すると処理は図14のステップS51へ進む。
【0136】
なお、ステップS27で“NO”であれば、つまり、始点決定後のスライド入力が第2領域76外に未だ出ていない場合には、処理はそのまま図14のステップS51へ進む。
【0137】
タッチパネル22への入力が検出されなかった場合、つまり、ステップS5で“NO”の場合、CPUコア42は上述のようにステップS25で入力履歴更新を行って、図13のステップS37およびS39で、終点判定プログラムに従って終点判定を行う。すなわち、ステップS37で、CPUコア42は、入力開始フラグがオンであるか否かを判断し、“YES”であれば、ステップS39で、開始フレーム番号は0であるか否かを判断する。これらのステップでは、ボール70に対する入力が開始された後に入力オフがあったのか否かを判定し、また、時間計測が開始された後に入力オフがあったのか否かを判定している。
【0138】
ステップS39で“NO”であれば、つまり、始点決定後のスライド入力が一度でも第3領域78外に出た後に入力オフになった場合には、終点条件が満足されたので、CPUコア42は、ステップS41で、タッチオフ直前に検出された座標点を終点として決定し、入力履歴記憶領域112の前回座標データを終点記憶領域118に記憶する。また、時間計測終了時点の決定条件が満足されたので、ステップS43で、CPUコア42は、現フレーム番号を終了フレーム番号記憶領域120に記憶する。これによって、移動速度のための時間計測が終了する。さらに、ボール70に対する入力が終了したので、ステップS45で、CPUコア42は、入力開始フラグをオフにする。また、発射条件が満足されたので、ステップS47で、CPUコア42は、発射フラグをオンにする。ステップS47を終了すると、処理は図14のステップS51へ進む。
【0139】
一方、ステップS39で“YES”であれば、つまり、始点決定後に連続的に検出された座標が第3領域78外へ出ることなくタッチオフがあった場合には、このスライド入力のキャンセルであると見なして、CPUコア42は、ステップS49で、入力開始フラグをオフにする。ステップS49を終了すると、処理は図14のステップS51へ進む。
【0140】
なお、ステップS37で“NO”であれば、つまり、ボール70に対する入力が開始されていない場合には、処理はそのまま図14のステップS51へ進む。
【0141】
図14のステップS51では、CPUコア42は、発射フラグがオンであるか否かを判断する。ステップS51で“YES”であれば、つまり、発射条件が満足された場合には、CPUコア42は、ステップS53で、移動方向決定プログラムに従って、ボール70の中心と終点とに基づいて、ボール70の移動方向を決定する。ボール70の中心座標は、ボール制御データ記憶領域126の当該ボール70に対応する位置データとして記憶されており、始点座標は始点記憶領域114に記憶されている。たとえば、CPUコア42は、図8に示したように、ボール70の中心と終点とを結ぶ直線と、タッチパネル22の操作面の所定方向とのなす角度θを算出し、当該角度の示す方向を移動方向として決定する。
【0142】
また、ステップS55で、CPUコア42は、移動速度プログラムに従って、終了フレーム番号記憶領域120の値と開始フレーム番号記憶領域116の値との差を算出して、当該差、すなわち、スライド入力が第3領域78外に初めて出たときから第2領域76外に出るまでに経過した時間に基づいて、移動速度を決定する。
【0143】
そして、CPUコア42は、ステップS57で、当該ボール70のための移動処理の実行を開始する。この移動制御プログラムに従った移動処理の実行によって、当該ボール70が、決定された方向に決定された速度で移動されることとなる。この移動処理はボール70ごとに実行されるものであり、その動作の一例は後述する図15に詳細に示される。なお、CPUコア42は、このステップS57で移動処理の実行を開始すると、図15の移動処理と図11から図14の処理とを並列的に実行する。
【0144】
続くステップS59からS65では、新たなボール70のための処理が行われる。すなわち、CPUコア42は、ステップS59で、開始フレーム番号記憶領域116および終了フレーム番号記憶領域120のデータを消去する。さらに、ステップS61で、CPUコア42は、発射フラグ記憶領域126にたとえば0を記憶して、発射フラグをオフにする。
【0145】
続いて、ステップS63で、CPUコア42は、新たなボール70のためのデータをボール制御データ記憶領域126に生成する。画像指定データには、新たなボール70のための所定の画像を示す識別番号が設定され、位置データには、所定位置すなわちこの実施例では第1領域74の中心座標を示すデータが設定される。
【0146】
そして、ステップS65で、CPUコア42は、当該新たなボール70を第1領域74の中心に表示する。これによって、既存のボール70が移動した後の所定位置(第1領域74の中心)に新たなボール70が発生する画面が表示されることとなる。
【0147】
なお、この実施例では、ボール70の移動が開始されるとすぐにこの新たなボール70を発生させるようにしているが、他の実施例では、ボール70の移動開始から一定時間経過後に、新たなボール70を発生させるようにしてもよい。
【0148】
ステップS65を終了したとき、または、ステップS51で“NO”である場合、つまり、発射条件が満足されていない場合には、CPUコア42は、ステップS67で、標的72を制御する。たとえば、CPUコア42は、必要に応じて標的制御データ記憶領域128の各標的72の制御データのうち位置データを更新し、当該更新された位置に当該標的72を表示する。
【0149】
続いて、ステップS69で、CPUコア42は、ゲーム終了であるか否かを判定する。ステップS69で“NO”であれば、CPUコア42は図11のステップS3に戻って、次のフレームの処理を実行する。一方、ステップS69で“YES”であれば、つまり、ゲームクリア条件またはゲームオーバ条件が満足されたときには、このゲーム処理を終了する。
【0150】
図15には、図14のステップS57で開始されるボール70ごとの移動処理の動作の一例が示される。移動処理を開始すると、CPUコア42は、まず、ステップS81で、移動方向、移動速度および現在の位置に基づいて、当該ボール70の移動先の位置の座標を算出する。そして、CPUコア42は、ステップS83で、算出した移動先の位置が標的72の当たり領域内であるか否かを判定する。標的72の当たり領域は、たとえば標的72の表示領域およびその近傍に設定され、たとえば、標的制御データ記憶領域128に各標的72ごとに当たり領域を示すデータが記憶されていてよい。
【0151】
ステップS83で“NO”であれば、CPUコア42は、ステップS85で、移動先の位置が表示画面外の座標になったか否かを判定する。ステップS85で“NO”であれば、つまり、ボール70が標的72に当たらずにまだ画面内に存在する場合には、CPUコア42は、ステップS87で、当該ボール70の制御データのうち位置データを、算出した移動先の座標を示すデータに更新し、当該ボール70を移動先の位置に表示する。これによって、当該ボール70が決定された移動方向および移動速度で移動する画面が表示されることとなる。ステップS87を終了すると、CPUコア42は、ステップS81に戻って、次のフレームの処理を実行する。
【0152】
一方、ステップS83で“YES”であれば、つまり、ボール70が標的72に衝突した場合には、CPUコア42は、ステップS89で、当たった標的72の制御データを標的制御データ記憶領域128から消去するとともに、VRAM56または58における当該標的72の画像データを消去する。これによって、画面上から当該標的72が消去される。
【0153】
ステップS89を終了すると、処理はステップS91へ進む。また、ステップS85で“YES”であれば、つまり、ボール70が標的72に当たらずに画面に表示される範囲外に移動した場合には、処理はステップS91に進む。
【0154】
ステップS91では、CPUコア42は、当該ボール70の制御データをボール制御データ記憶領域126から消去するとともに、VRAM56または58における当該ボール70の画像データを消去する。これによって、画面上から当該ボール70が消去される。ステップS91を終了すると、CPUコア42はこのボール70のための移動処理を終了する。
【0155】
この実施例によれば、ボール70を含む第1領域74内の座標の検出によって、当該ボール70に対する入力の始点を決定し、当該始点を基準として、ボール70に対するスライド入力の挙動を測定するための第2領域76および第3領域78を設けるようにした。そして、始点決定後のスライド入力が第2領域76外へ出たときの座標を、ボール70に対する入力の終点として検出し、この入力の終点とボール70の位置とに基づいて、ボール70の移動方向を決定するようにした。このように、操作面上に設けた第2領域76に基づいて入力の終点を決定するようにしたので、ボール70の移動を制御しようとしている入力として入力を受け付ける範囲を明確にすることができ、つまり、入力の終点が決まる位置を明確にすることができる。このため、移動方向の決定に使用される終点をユーザの意識したとおりに決めることができるので、ユーザは所望の移動方向を入力することが可能になり、したがって、ユーザの意図通りの方向にボール70を移動させることができる。
【0156】
また、始点決定後のスライド入力が第3領域78外へ初めて出たときを、時間計測開始時点として決定し、その後のスライド入力が第2領域76外へ出たときを、時間計測終了時点として決定し、これら開始時点から終了時点までの経過時間に基づいて、移動速度を決定するようにした。このように、操作面上に設けた第2領域76および第3領域78に基づいて、移動速度のための入力の開始時点と終了時点とを決定するようにしたので、ボール70の移動を制御する入力として受け付ける範囲を明確にすることができる。たとえば、ユーザは、入力方向を決めるまでは第3領域78内で入力を迷うことができ、その後どのような速度でどの方向にスティック24等を移動させるかを決めてからの入力を正確に測定することができる。あるいは、ユーザは第3領域78内でタッチオフによって入力をキャンセルすることもできる。したがって、ユーザの意識したとおりに移動速度のための時間計測の開始時点と終了時点とを決めることができるので、ユーザの意図通りの速度でボール70を移動させることが可能になる。
【0157】
また、ボール70に対する入力の始点が決定されてから、当該始点を基準として、第2領域76および第3領域78を設けるようにした。つまり、ユーザのボール70に対する入力の開始位置に対応する場所に、その後のスライド入力を計測するための第2領域76および第3領域78を設定することができる。したがって、ユーザの入力の挙動をより正確に把握することができるので、ボール70の移動制御にユーザの意図をより的確に反映することができる。
【0158】
また、ボール70への入力が開始されていない状態で第1領域74内の座標が検出されたことに応じて始点を決定し、その後のスライド入力が第2領域76外に出たことに応じて終点を決定し、ボール70を移動させるようにした。したがって、ユーザは、入力の有無を切替えたりすることなく、つまり、タッチパネル22へのタッチを継続したままで、複数のボール70を次々と移動させることができる。このように、操作性が良いので、複数のボール70であっても簡単に意図通りの移動を行わせることができる。
【0159】
なお、上述の実施例では、ボール70に対する入力を判定するための第1領域74は、ボール70の表示領域およびその近傍の領域を含み、ボール70よりもやや大きいサイズに形成された。しかし、他の実施例では、第1領域74はボール70の表示領域と同一に設定されてもよい。この場合には、ボール70を移動させるにはまさにボール70に触れることをユーザに要求することができ、つまり、ユーザにボール70に対する正確な入力を要求できるので、ユーザの意思がより正確に反映された入力を計測することができる。
【0160】
また、上述の各実施例では、移動方向は、ボール70の位置(中心座標)と入力の終点とに基づいて決定するようにしていた。つまり、スライド入力が第2領域76外に出たときの座標点に向かってボール70を移動させるようにしていた。しかし、他の実施例では、移動方向は、入力の始点と終点とに基づいて決定されてもよい。この場合には、スライド入力が移動した方向、すなわち、始点から終点へ向かう方向へ、ボール70を移動させることができる。なお、この場合において、移動方向を決定するための始点は、第1領域74内の入力があったときの検出座標ではなく、第1領域74内の入力があった後のスライド入力が第3領域78外へ出たときの検出座標、すなわち、時間計測開始時点が決定されたときの検出座標であってもよい。
【0161】
また、上述の各実施例では、ユーザのボール70に対するスライド入力のうち、第2領域76等の設定や移動方向の算出のために、始点と終点の座標だけを記憶するようにしていた。しかし、他の実施例では、ボール70に対するスライド入力の軌跡を記憶するようにして、当該軌跡上の座標に基づいて移動方向を決定するようにしてもよい。
【0162】
また、上述の各実施例では、入力の始点の決定に応じて、当該始点を基準として第2領域76および第3領域78を設定するようにしていた。しかし、他の実施例では、第2領域76および/または第3領域78は、第1領域74と同様に、所定の位置を基準として予め設けられるようにしてもよい。その場合には、第2領域76および/または第3領域78の基準座標(円形の場合には中心座標)は、第1領域74と同様に、ボール70の位置座標(円形の場合には中心座標)に設定されてよい。
【0163】
また、上述の各実施例では、ボール70に対する入力の判定のための第1領域74と、時間計測開始時点の判定領域である第3領域78とを別個に設けるようにしていた。しかし、他の実施例では、第3領域78は第1領域74と同一にされてもよい。つまり、第1領域74が、ボール70に対する入力の判定領域であるとともに時間計測開始時点の判定領域であってよい。
【0164】
たとえば、図16から図25を参照して説明される次の実施例では、ボール70に対する入力を判定するための第1領域74が、時間計測開始時点を判定するための領域を兼ねるようにされる。また、入力の終点を判定するための第2領域76が、ボール70の中心を基準として予め設けられる。また、この実施例では、ボール70の移動方向を決定するために、スライド入力の軌跡が取得される。
【0165】
具体的には、図16を参照して、第1領域74および第2領域76が操作面上に予め設けられている。第2領域76の中心座標は、第1領域74の中心座標と同じに設定され、第2領域76は、第1領域74を包含するように設けられる。
【0166】
この実施例では、後述するように、第1領域74への入力が開始されてスライド入力が第2領域76の範囲外に出たときまでに検出された座標に基づいて移動方向が決定される。したがって、第2領域76は、ユーザのボール70に対するスライド入力の意図を的確に把握できるように、適切な大きさに設定される。第2領域76の半径データは、たとえば上述の実施例と同程度の値に設定されてよい。
【0167】
図16に示すように、第1領域74に対する入力が検出されたとき、当該ボール70の移動のための入力が開始されたものと見なして、入力軌跡の取得を開始する。つまり、スティック24等による入力座標が第1領域74内の座標であることが検出されたとき、当該座標点が始点に決定されて、その後のスライド入力による連続した座標が入力軌跡として記憶される。なお、図16では、既に行われている連続的な入力が第1領域74に進入したときに、入力の始点が決定される場合が示されているが、始点の決定条件は、第1領域74内で入力が開始されたことであってもよい。その後、当該スライド入力が第2領域76外に出たときに軌跡の取得が終了され、そのときの検出座標が終点とされることとなる。ボール70の移動方向は、入力軌跡の始点から終点までの複数の座標点のうちの少なくとも2点、たとえば始点と終点に基づいて決定される。
【0168】
その後、図17に示すように、軌跡の始点決定後に連続的に検出される座標が第1領域74外の座標となったとき、移動速度のための時間計測開始時点が決定される。なお、この実施例では、第1領域74が、入力を迷うことの可能な遊び領域である。たとえば、第1領域74を出る前にタッチオフがあったときは、入力のキャンセルと見なされる。
【0169】
そして、図18に示すように、軌跡の始点決定後に連続的に検出される座標が第2領域76外の座標となったとき、当該座標点が終点に決定されて、入力軌跡の取得が終了される。同時に、移動速度のための時間計測終了時点が決定される。
【0170】
また、図示は省略されるが、軌跡の始点決定後のスライド入力が第2領域76でタッチオフされたとき、つまり、始点決定後の連続的な座標が第2領域76で途絶えたことが検出されたときにも、移動方向のための入力軌跡の取得が終了される。この場合、入力軌跡の終点はタッチオフ直前に検出された座標点となる。また、移動速度のための時間計測が終了され、たとえばタッチオフが検出されたときのフレーム番号が計測終了時点として記憶される。第1領域74外で入力を終了することによって終点が決定されるので、素早くボール70の移動を開始させることができる。
【0171】
なお、スライド入力が、第1領域74を出て第2領域76外に出る前に、再び第1領域74内に進入したときには、この実施例では、入力のキャンセルと見なして、そのときの検出座標が始点に決定され、入力軌跡の取得が改めて開始される。
【0172】
また、スライド入力が第2領域76を出たときは、ボール70の移動開始タイミングでもある。移動方向および移動速度が決定され、当該移動方向および移動速度に従ったボール70の移動が開始される。図19に示すように、移動方向は、入力軌跡に基づいて決定される。たとえば、移動方向は、入力軌跡のうちの少なくとも2点の座標に基づいて決定されてよい。具体的には、入力軌跡の始点と終点を結ぶ直線と、操作面の所定方向(たとえば左右方向)とのなす角度θが、移動方向として決定されてよい。あるいは、移動方向は、入力軌跡のうちの終点とその直前の座標点とを結ぶ直線と、所定方向とのなす角度であってもよいし、入力軌跡のうち隣接座標点同士を結んだ各直線と所定の方向とのなす角度の平均値であってもよい。あるいは、スライド入力が第1領域74外に出たときの検出座標、すなわち、時間計測開始時点が決定されたときの検出座標と終点とに基づいて、移動方向が決定されてもよく、この場合には移動方向と移動速度の決定が、同一の検出時点に基づいて行われる。
【0173】
図20には、ROM28aのメモリマップの一部が示される。記憶領域140には、軌跡取得プログラムが記憶される。このプログラムによって、ユーザによるボール70に対するスライド入力の軌跡が取得される。具体的には、始点判定プログラムに従って入力の始点の決定条件が満足されたと判定されたときの座標が軌跡の始点として記憶される。さらに、始点に続けて連続的に検出される複数の座標が記憶される。終点判定プログラムに従って入力の終点の決定条件が満たされたと判定されるまで、入力軌跡は取得される。
【0174】
また、第2領域76が予め設けられるので、第2領域データ記憶領域140には、さらに第2領域76の基準点を示すデータが予め記憶される。円形の第2領域76の場合には、中心座標データが半径データとともに記憶されている。
【0175】
また、図21には、RAM48のメモリマップの一部が示される。入力軌跡記憶領域142には、軌跡取得プログラムの実行によって取得されたスライド入力による軌跡を示す複数の座標点の座標データが記憶される。始点判定プログラムの実行によって始点条件が満足されたと判定されたときの入力座標(すなわち始点)から、終点判定プログラムの実行によって終点条件が満足されたと判定されたときの入力座標(すなわち終点)までの複数の座標が記憶される。
【0176】
図22から図25にはこの実施例におけるゲーム装置10の動作の一例が示される。ゲーム処理を開始すると、CPUコア42は、まずステップS101で、ボール70と標的72を含むゲーム画面を生成してLCD14に表示する。上述の実施例と同様に、CPUコア42は、続くステップS103からS185(図25)までの処理を、一定時間(たとえば1フレーム)ごとに繰り返し実行する。
【0177】
ステップS103では、CPUコア42は、I/F回路54を介してタッチパネル22からの入力データをRAM48に取得する。続いて、ステップS105で、CPUコア42は、入力があったか否かを入力データに基づいて判断する。
【0178】
ステップS105で“YES”であれば、CPUコア42は、ステップS107で、入力データから入力座標を示す座標データを検出して入力座標記憶領域110に記憶する。続くステップS109で、CPUコア42は、入力履歴を記憶する。たとえば、CPUコア42は、入力履歴記憶領域112における今回座標の記憶領域のデータを前回座標の記憶領域に書き込み、今回座標の記憶領域に入力座標記憶領域110のデータを書き込む。
【0179】
そして、続くステップS111からS115で、始点判定プログラムに従って、始点決定条件が満足されたか否かの判定を行う。すなわち、まず、ステップS111で、CPUコア42は、入力座標が第1領域74内の座標であるか否かを、入力座標記憶領域110のデータおよび第1領域データ記憶領域102のデータ等に基づいて判定する。ステップS111で“YES”であれば、CPUコア42は、ステップS113で、入力がオフからオンになったか否かを入力履歴データに基づいて判断する。たとえば、CPUコア42は、入力履歴記憶領域112のデータを参照して、前回座標に入力無しを示すデータが記憶され、かつ、今回座標に座標データが記憶されているか否かを判断する。ステップS113で“YES”であれば、つまり、第1領域74内で入力が開始された場合には、始点決定条件が満足されたので、処理はステップS121に進む。
【0180】
一方、ステップS113で“NO”であれば、つまり、連続タッチ中である場合には、CPUコア42は、ステップS115で、前回座標が第1領域74外の座標であるか否かを、入力履歴記憶領域112の前回座標を示すデータおよび第1領域データ等に基づいて判断する。ステップS115で“YES”であれば、つまり、スライド入力が第1領域74外から第1領域74内に進入した場合には、図16に示した始点決定条件が満足されたので、入力軌跡の取得を開始すべく、CPUコア42は、ステップS117で、入力軌跡記憶領域142のデータを消去し、ステップS119で開始フレーム番号記憶領域116のデータを消去して初期値を設定する。ここでは、たとえば、第2領域76でスライド入力が行われていたが第2領域76外に出る前にスライド入力が再び第1領域74に進入した場合に、入力軌跡の取得および時間計測をやり直す必要があるので、各記憶領域をクリアしている。
【0181】
続いて、ステップS121で、CPUコア42は、入力座標記憶領域110の入力座標を入力軌跡記憶領域142に記憶する。これによって、入力軌跡の始点が記憶される。そして、ステップS123で、CPUコア42は、入力開始フラグをオンにする。ステップS123を終了すると、処理は図25のステップS165へ進む。
【0182】
一方、ステップS115で“NO”であれば、つまり、第1領域74内で始点決定後の連続的な入力が行われている場合には、CPUコア42は、ステップS125で、入力座標記憶領域110の入力座標を入力軌跡記憶領域142に追加して、入力軌跡として記憶する。ステップS125を終了すると処理は図25のステップS165へ進む。
【0183】
また、ステップS111で“NO”であれば、つまり、第1領域74外がタッチされている場合には、処理は図23のステップS129へ進む。
【0184】
また、ステップS105で“NO”であれば、つまり、タッチパネル22で入力が行われていない場合には、CPUコア42は、ステップS127で、入力履歴を記憶する。つまり、CPUコア42は、入力履歴記憶領域112の今回座標の記憶領域に記憶されているデータを前回座標の記憶領域に記憶し、入力無しを示すデータを今回座標の記憶領域に記憶する。ステップS127を終了すると、処理は図24のステップS149へ進む。
【0185】
第1領域74外がタッチされているとき、CPUコア42は、次の図23のステップS129で、入力座標が第2領域76内の座標であるか否かを、入力座標データおよび第2領域データ記憶領域104のデータ等に基づいて判断する。ステップS129で“YES”であれば、CPUコア42は、ステップS131で、入力開始フラグはオンであるか否かを判断する。ステップS131で“YES”であれば、つまり、第2領域76内で始点決定後の連続的な入力が行われている場合には、CPUコア42は、ステップS133で、入力座標記憶領域110のデータを入力軌跡記憶領域142に追加する。
【0186】
続くステップS135で、移動速度のための時間計測開始時点の決定条件が満足されたか否かを判定する。すなわち、ステップS135で、CPUコア42は、開始フレーム番号記憶領域116に初期値ゼロが記憶されているか否かを判定する。つまり、ここでは、始点決定後のスライド入力が初めて第2領域76内に進入したか否かを判定している。このステップS135で“YES”であれば、図17の開始時点決定条件が満足されたので、CPUコア42は、ステップS137で、現在のフレーム番号を開始フレーム番号記憶領域116に記憶する。ステップS137を終了すると処理は図25のステップS165へ進む。
【0187】
なお、ステップS135で“NO”の場合には、つまり、既に移動速度のための時間計測が開始されている場合には、処理はそのまま図25のステップS165へ進む。また、ステップS131で“NO”である場合、つまり、始点決定条件が満足されずに単に第2領域76内がタッチされているに過ぎない場合にも、処理はそのまま図25のステップS165へ進む。
【0188】
一方、ステップS129で“NO”であれば、つまり、第2領域76外がタッチされている場合には、次のステップS139で、終点判定プログラムに従って、図18に示したような終点決定条件が満足されたか否かが判定される。すなわち、CPUコア42は、ステップS141で、入力開始フラグがオンであるか否かを判定する。つまり、始点決定後のスライド入力が初めて第2領域76外に出たか否かを判定している。
【0189】
ステップS139で“YES”であれば、つまり、終点条件が満足されたと判定されたときには、CPUコア42は、ステップS141で、入力座標記憶領域110の入力座標を入力軌跡記憶領域142に追加する。この追加された座標が入力軌跡の終点となる。
【0190】
また、CPUコア42は、ステップS143で、現在のフレーム番号を終了フレーム番号記憶領域118に記憶する。さらに、ステップS145で、CPUコア42は、入力開始フラグをオフにする。これによって、入力軌跡の取得を終了する。さらに、ステップS147で、CPUコア42は、ボール70の発射条件が満足されたので、発射フラグをオンにする。ステップS147を終了すると、処理は図25のステップS165へ進む。
【0191】
なお、ステップS139で“NO”であれば、つまり、第2領域76外がボール70に対する入力に関係なくタッチされている場合には、処理はそのまま図25のステップS165へ進む。
【0192】
また、図22のステップS105で“NO”であり、つまり、入力が行われていない場合には、ステップS127で入力履歴を更新した後、CPUコア42は、図24のステップS149およびS151で、タッチオフに基づく終点判定を行う。すなわち、CPUコア42は、ステップS149で、入力がオンからオフになったか否かを、入力履歴記憶領域112のデータに基づいて判断する。ステップS149で“YES”であれば、つまり、タッチパネル22からスティック24等がちょうど離れたときには、CPUコア42は、ステップS151で、開始フレーム番号記憶領域116がゼロであるか否かを判定する。ここでは、スライド入力が第1領域74外に出ているか否かを判定している。
【0193】
ステップS151で“NO”であれば、つまり、始点決定後のスライド入力が第1領域74外に出ている場合において入力がオフされたときには、CPUコア42は、終点条件が満足されたので、ステップS153で、現在のフレーム番号を終了フレーム番号記憶領域118に記憶する。また、ステップS155で、CPUコア42は、入力開始フラグをオンにする。なお、入力軌跡の終点は既に前回のフレームのステップS133(図23)の処理で記憶領域142に記憶されている。さらに、ステップS157で、CPUコア42は、発射フラグをオンにする。ステップS157を終了すると、処理は図25のステップS165に進む。
【0194】
一方、ステップS151で“YES”であれば、CPUコア42は、ステップS159で、前回座標が第1領域74内の座標であったか否かを、入力履歴データに基づいて判断する。ここでは、スライド入力が第1領域74内で終了されたのか否かを判定している。ステップS159で“YES”であれば、スライド入力のキャンセルであると見なして、CPUコア42は、ステップS161で、入力開始フラグをオフする。また、ステップS163でCPUコア42は入力軌跡記憶領域142のデータを消去する。ステップS163を終了すると、処理は図25のステップS165へ進む。
【0195】
なお、ステップS159で“NO”の場合、つまり、ボール70に対する入力が開始されていない段階でタッチパネル22からスティック24等が離された場合には、処理はそのまま図25のステップS165へ進む。また、ステップS149で“NO”の場合、つまり、入力無し状態が継続中の場合にも、処理はそのまま図25のステップS165へ進む。
【0196】
図25のステップS165では、CPUコア42は、発射フラグがオンであるか否かを判断する。ステップS165で“YES”であれば、CPUコア42は、ステップS167で、入力軌跡記憶領域142のデータに基づいて、ボール70の移動方向を決定する。たとえば、CPUコア42は、図19に示したように、入力軌跡のうち始点と終点とを結ぶ直線と、タッチパネル22の操作面の所定方向とのなす角度θを算出し、当該角度の示す方向を移動方向として決定する。
【0197】
また、ステップS169で、CPUコア42は、終了フレーム番号と開始フレーム番号との差を算出して、当該差に基づいて移動速度を決定する。
【0198】
そして、CPUコア42は、ステップS171で、当該ボール70のための移動処理の実行を開始し、これによって、当該ボール70が、決定された方向に決定された速度で移動される。この移動処理の動作は上述した図15と同様である。
【0199】
続くステップS173からS181では、別のボール70のための処理が行われる。すなわち、CPUコア42は、ステップS173で、入力軌跡記憶領域142のデータを消去する。また、ステップS175で、CPUコア42は開始フレーム番号記憶領域116および終了フレーム番号記憶領域120のデータを消去する。さらに、ステップS177で、CPUコア42は発射フラグをオフにする。
【0200】
続いて、ステップS179で、CPUコア42は、新たなボール70のためのデータをボール制御データ記憶領域120に生成する。そして、ステップS181で、CPUコア42は、当該新たなボール70を第1領域74の中心に表示する。これによって、既存のボール70が移動した後の所定位置に新たなボール70が発生する画面が表示されることとなる。
【0201】
ステップS181を終了したとき、または、ステップS165で“NO”である場合には、CPUコア42は、ステップS183で、標的72を制御し、たとえば、必要に応じて各標的72の制御データのうち位置データを更新し、当該更新された位置に当該標的72を表示する。
【0202】
続いて、ステップS185で、CPUコア42は、ゲーム終了であるか否かを判定し、“NO”であれば、CPUコア42は図22のステップS103に戻って、次のフレームの処理を実行する。一方、ステップS185で“YES”であれば、このゲーム処理を終了する。
【0203】
この実施例によれば、ボール70の表示される第1領域74内の座標が検出されたときに、入力軌跡の取得を開始し、その後の連続した座標が第2領域76外へ出たときに、入力軌跡の取得を終了するようにした。そして、第1領域74内の座標が検出されてから第2領域76外の座標が検出されるまでに取得した複数の座標点のうち少なくとも2点に基づいて、ボール70の移動方向を決定し、当該決定した方向にボール70を移動させるようにした。また、始点決定後のスライド入力が第1領域74外へ出たときを、時間計測開始時点として決定し、その後のスライド入力が第2領域76外へ出たときを、時間計測終了時点として決定し、これら開始時点から終了時点までの経過時間に基づいて、移動速度を決定するようにした。このように、操作面上に設けた第1領域74および第2領域76に基づいて、入力の始点および終点を決定するようにしたので、上述の実施例と同様に、ボール70の移動制御のための入力領域の範囲を明確にすることができる。したがって、移動方向の決定に使用される入力軌跡の始点および終点、ならびに移動速度の決定に使用される時間の計測開始時点および終了時点を、ユーザの意識した通りに決定することができるので、ユーザは、所望の移動方向および移動速度を入力することができ、その意図通りにボール70を移動させることができる。
【0204】
また、第1領域74および第2領域76に対するスライド入力の進入および進出に応じてボール70の移動が制御され、既存のボール70が移動されると新しいボール70が発生されるようにしたので、上述の実施例と同様に、ユーザは、入力の有無を切り替えたりすることなく、複数のボール70を次々と移動させることができる。
【0205】
また、移動方向を入力軌跡に基づいて決定するようにしたので、たとえば第2領域76の大きさを適宜調節することによって、ユーザに対して様々な方向入力を行わせることが可能になる。たとえば、第2領域76を大きく形成した場合には、連続的な入力が第1領域74に入って第2領域76外に出るまでの間に、複雑な軌跡を入力することが可能になる。あるいは、入力の途中で入力軌跡の方向を微調整することも可能になる。このように、より複雑な移動方向を入力することが可能になり、たとえば、より複雑にボール70を移動させるように制御することもできる。一方、第1領域74および第2領域76を小さくした場合には、少数の座標の入力によって移動方向が決定されるので、複数のボール70を次々に移動させるのに便利である。
【0206】
なお、上述の各実施例では、第2領域76は、第1領域74の全周を包囲するようにして設けられていた。これによって、ボール70の移動方向を360度全方向に決定可能にしていた。しかし、第2領域76は入力の終点を決定するために設けられ、この終点を用いて移動方向が決定されるので、第2領域76は、ボール70または第1領域74と目的地(標的72)との間に第2領域76の縁が存在するようにして設けられればよい。つまり、第2領域76の第1領域74に対する設置方法は適宜変更され得る。たとえば図26(A)に示すように、第2領域76は、第1領域74の全周を包囲しなくてもよい。この図26(A)の第2領域76は、第1領域74の上側180度方向のみを覆うようにして設けられる。たとえばボール70の中心と終点とに基づいて移動方向を決定する場合には、ボール70の上側180度が移動方向になり得るので、標的72の配置がボール70の上側に限られるような場面に適用できる。また、上述の各実施例では、第2領域76は、第1領域74を包含するようにして設けられていたが、たとえば図26(B)に示すように、第2領域76は、第1領域74を包含しなくてもよい。この図26(B)の第2領域76は、左右方向に長く延びた矩形状を有しており、第1領域74と離れた位置に設けられる。たとえば入力の始点と終点とに基づいて移動方向を決定する場合には、第1領域74内の各座標点と第2領域76の周縁上の各座標点とを結ぶ全ての直線の方向が移動方向になり得る。第2領域76は、第1領域74内の所定位置(たとえば中心座標)を基準として、標的72の存在する方向へ移動可能な移動方向が決定され得るような所定位置に配置される。この第2領域76は第1領域74と離れているので、入力の終点を決定する場合には、スライド入力が第2領域76内に入ってから第2領域76外へ出たことが条件とされる。
【0207】
また、上述の各実施例では、ステップS1(図11)またはステップS101(図22)で最初からボール70を表示するようにしていた。しかしながら、ボール70の表示タイミングは適宜変更され得る。他の実施例では、たとえば、タッチパネル22への入力が開始されたときに、所定位置または入力位置等にボール70を表示するようにしてもよい。あるいは、移動方向が決定されたときに、所定位置、入力開始位置または現入力位置等にボール70を表示するとともに決定された方向へ移動させるようにしてもよい。
【0208】
また、上述の各実施例では、LCD14の画面上に設けられたタッチパネル22で座標を入力するようにしていた。しかし、他の実施例では、マウスのような他のポインティングデバイスが適用されてもよい。この場合には、ゲーム画面にマウスポインタを表示することによって入力位置を明示する。また、マウスのボタンが押されているときを入力有り状態とみなし、かつ、マウスのボタンが放されているときを入力無し状態とみなすことによって、ポインティングデバイスでの入力の有無を判別することができる。
【図面の簡単な説明】
【0209】
【図1】この発明の一実施例のゲーム装置の一例を示す外観図である。
【図2】図1実施例の電気的な構成を示すブロック図である。
【図3】LCD14に表示されるゲーム画面の一例を示す図解図である。
【図4】ボールに対する入力の始点の判定と第2領域および第3領域の設定とを説明するための図解図である。
【図5】移動速度を決定するための時間計測開始時点の判定を説明するための図解図である。
【図6】ボールに対する入力の終点の判定を説明するための図解図である。
【図7】終点の判定の他の例を説明するための図解図である。
【図8】移動方向の決定方法を説明するための図解図である。
【図9】メモリカードのROMのメモリマップの一例を示す図解図である。
【図10】RAMのメモリマップの一例を示す図解図である。
【図11】図1実施例のゲーム装置の動作の一例の一部を示すフロー図である。
【図12】図11の続きの一部を示すフロー図である。
【図13】図11の続きの他の一部を示すフロー図である。
【図14】図11、図12および図13の続きを示すフロー図である。
【図15】図14でその実行が開始されるボールごとの移動処理の動作の一例を示すフロー図である。
【図16】他の実施例における入力の始点の判定と第2領域とを説明するための図解図である。
【図17】他の実施例における時間計測開始時点の判定を説明するための図解図である。
【図18】他の実施例における終点の判定を説明するための図解図である。
【図19】他の実施例における入力軌跡に基づく移動方向の決定方法の一例を説明するための図解図である。
【図20】他の実施例におけるROMのメモリマップの一部を示す図解図である。
【図21】他の実施例におけるRAMのメモリマップの一部を示す図解図である。
【図22】他の実施例におけるゲーム装置の動作の一例の一部を示すフロー図である。
【図23】図22の続きの一部を示すフロー図である。
【図24】図22の続きの他の一部を示すフロー図である。
【図25】図22、図23および図24の続きを示すフロー図である。
【図26】第1領域に対する第2領域の配置の変形例を示す図解図である。
【符号の説明】
【0210】
10 …ゲーム装置
12,14…LCD
22 …タッチパネル
28 …メモリカード
28a …ROM
42 …CPUコア
48 …RAM
50,52 …GPU
54 …I/F回路
60 …LCDコントローラ
70 …ボール
74 …第1領域
76 …第2領域
78 …第3領域

【特許請求の範囲】
【請求項1】
入力手段の入力に応じて移動するオブジェクトを表示手段に表示する情報処理装置のオブジェクト移動制御プログラムであって、
前記情報処理装置のプロセサを、
前記表示手段の画面に対して前記入力手段によって入力された座標を検出する座標検出手段、
前記座標検出手段による検出座標が前記画面上の第1領域内の座標であるか否かを判定する第1判定手段、
前記第1判定手段による判定結果が肯定的となった後に連続的に検出される座標が、前記画面上の第2領域外の座標になったか否かを判定する第2判定手段、
前記第2判定手段による判定結果が肯定的となったときの前記検出座標に基づいて移動方向を決定する方向決定手段、および
前記オブジェクトが前記方向決定手段によって決定された前記移動方向に移動するように制御する移動制御手段として機能させる、オブジェクト移動制御プログラム。
【請求項2】
前記移動制御手段は、前記第2判定手段による判定結果が肯定的となったタイミングで、前記オブジェクトの移動を開始する、請求項1記載のオブジェクト移動制御プログラム。
【請求項3】
前記プロセサを、前記第1領域内に前記オブジェクトの画像を表示するオブジェクト画像表示手段としてさらに機能させる、請求項1または2記載のオブジェクト移動制御プログラム。
【請求項4】
前記第2領域は前記第1領域を包含する、請求項1ないし3のいずれかに記載のオブジェクト移動制御プログラム。
【請求項5】
前記第2領域は、前記第1判定手段による判定結果が肯定的となったときの前記検出座標を基準として設けられる、請求項1ないし4のいずれかに記載のオブジェクト移動制御プログラム。
【請求項6】
前記第2領域は、前記第1領域内の所定位置を基準として設けられる、請求項1ないし4のいずれかに記載のオブジェクト移動制御プログラム。
【請求項7】
前記方向決定手段は、前記第1領域内の所定位置と前記第2判定手段による判定結果が肯定的となったときの前記検出座標とに基づいて、前記移動方向を決定する、請求項1ないし6のいずれかに記載のオブジェクト移動制御プログラム。
【請求項8】
前記方向決定手段は、前記第1判定手段による判定結果が肯定的となったときの前記検出座標と前記第2判定手段による判定結果が肯定的となったときの前記検出座標とに基づいて、前記移動方向を決定する、請求項1ないし6のいずれかに記載のオブジェクト移動制御プログラム。
【請求項9】
前記方向決定手段は、前記第1判定手段による判定結果が肯定的となってから前記第2判定手段による判定結果が肯定的となるまでに前記座標検出手段によって連続的に検出された座標のうち少なくとも2点の座標に基づいて、移動方向を決定する、請求項1ないし6のいずれかに記載のオブジェクト移動制御プログラム。
【請求項10】
前記プロセサを、前記第1判定手段による判定結果が肯定的となった後に連続的に検出される座標が、前記画面上の少なくとも前記第2領域と異なる第3領域外の座標になったか否かを判定する第3判定手段としてさらに機能させ、
前記方向決定手段は、前記第3判定手段による判定結果が肯定的となったときの前記検出座標と前記第2判定手段による判定結果が肯定的となったときの前記検出座標とに基づいて、前記移動方向を決定する、請求項1ないし6のいずれかに記載のオブジェクト移動制御プログラム。
【請求項11】
前記プロセサを、前記第1判定手段による判定結果が肯定的となってから前記第2判定手段による判定結果が肯定的となるまでに経過した時間に基づいて移動速度を決定する速度決定手段としてさらに機能させ、
前記移動制御手段は、前記速度決定手段で決定された前記移動速度で前記オブジェクトが移動するように制御する、請求項1ないし10のいずれかに記載のオブジェクト移動制御プログラム。
【請求項12】
前記プロセサを、前記第1判定手段による判定結果が肯定的となった後に連続的に検出される座標が、前記画面上の少なくとも前記第2領域と異なる第3領域外の座標になったと判定されてから前記第2判定手段による判定結果が肯定的となるまでに経過した時間に基づいて移動速度を決定する速度決定手段としてさらに機能させ、
前記移動制御手段は、前記速度決定手段で決定された前記移動速度で前記オブジェクトが移動するように制御する、請求項1ないし10のいずれかに記載のオブジェクト移動制御プログラム。
【請求項13】
前記方向決定手段は、前記第1判定手段による判定結果が肯定的となった後、前記第2判定手段による判定結果が肯定的となる前に、前記座標検出手段によって座標が検出されなくなったとき、前記第2判定手段による判定結果が肯定的となったときの前記検出座標に代えて、当該検出されなくなった直前の検出座標に基づいて、前記移動方向を決定する、請求項1ないし12のいずれかに記載のオブジェクト移動制御プログラム。
【請求項14】
前記移動制御手段は、前記第1判定手段による判定結果が肯定的となった後に連続的に検出される座標が、前記画面上の少なくとも前記第2領域と異なる第3領域外の座標になったと判定される前に、前記座標検出手段によって座標が検出されなくなったときには、前記オブジェクトを移動させない、請求項1ないし13のいずれかに記載のオブジェクト移動制御プログラム。
【請求項15】
前記プロセサを、前記移動制御手段によって前記オブジェクトが移動されるとき、当該オブジェクトとは別のオブジェクトを発生させるオブジェクト発生手段としてさらに機能させる、請求項1ないし14のいずれかに記載のオブジェクト移動制御プログラム。
【請求項16】
前記第1領域は前記オブジェクトの表示領域よりも大きい、請求項1ないし15のいずれかに記載のオブジェクト移動制御プログラム。
【請求項17】
前記第1領域は前記オブジェクトの表示領域と同等の大きさである、請求項1ないし16のいずれかに記載のオブジェクト移動制御プログラム。
【請求項18】
入力手段の入力に応じて移動するオブジェクトを表示手段に表示する情報処理装置のオブジェクト移動制御プログラムであって、
前記情報処理装置のプロセサを、
前記オブジェクトを前記表示手段に表示するオブジェクト表示制御手段、
前記表示手段の画面に対して前記入力手段によって入力された座標を検出する座標検出手段、
前記座標検出手段による検出座標が前記画面上の第1領域内の座標であるか否かを判定する第1判定手段、
前記第1判定手段による判定結果が肯定的となった後に連続的に検出される座標が、前記画面上の第2領域外の座標になったか否かを判定する第2判定手段、
前記第1判定手段による判定結果が肯定的となってから前記第2判定手段による判定結果が肯定的となるまでに前記座標検出手段によって連続的に検出された座標のうち少なくとも2点の座標に基づいて移動方向を決定する方向決定手段、および
前記第2判定手段による判定結果が肯定的となったタイミングで、前記方向決定手段によって決定された前記移動方向に前記オブジェクトを移動する移動制御手段として機能させる、オブジェクト移動制御プログラム。
【請求項19】
入力手段の入力に応じて移動するオブジェクトを表示手段に表示する情報処理装置であって、
前記表示手段の画面に対して前記入力手段によって入力された座標を検出する座標検出手段、
前記座標検出手段による検出座標が前記画面上の第1領域内の座標であるか否かを判定する第1判定手段、
前記第1判定手段による判定結果が肯定的となった後に連続的に検出される座標が、前記画面上の第2領域外の座標になったか否かを判定する第2判定手段、
前記第2判定手段による判定結果が肯定的となったときの前記検出座標に基づいて移動方向を決定する方向決定手段、および
前記オブジェクトが前記方向決定手段によって決定された前記移動方向に移動するように制御する移動制御手段を備える、情報処理装置。
【請求項20】
入力手段の入力に応じて移動するオブジェクトを表示手段に表示する情報処理装置であって、
前記オブジェクトを前記表示手段に表示するオブジェクト表示制御手段、
前記表示手段の画面に対して前記入力手段によって入力された座標を検出する座標検出手段、
前記座標検出手段による検出座標が前記画面上の第1領域内の座標であるか否かを判定する第1判定手段、
前記第1判定手段による判定結果が肯定的となった後に連続的に検出される座標が、前記画面上の第2領域外の座標になったか否かを判定する第2判定手段、
前記第1判定手段による判定結果が肯定的となってから前記第2判定手段による判定結果が肯定的となるまでに前記座標検出手段によって連続的に検出された座標のうち少なくとも2点の座標に基づいて移動方向を決定する方向決定手段、および
前記第2判定手段による判定結果が肯定的となったタイミングで、前記方向決定手段によって決定された前記移動方向に前記オブジェクトを移動する移動制御手段を備える、情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate


【公開番号】特開2007−102499(P2007−102499A)
【公開日】平成19年4月19日(2007.4.19)
【国際特許分類】
【出願番号】特願2005−291785(P2005−291785)
【出願日】平成17年10月4日(2005.10.4)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】