(57)【要約】【課題】  タッチ操作に生じる入力ぶれの影響を低減した入力情報に基づいてゲーム処理を行うゲーム装置およびゲームプログラムを提供する。【解決手段】  ＣＰＵコア２１は、前回から現在のタッチ座標までの移動ベクトルを算出し（Ｓ８１）、移動ベクトルの大きさを速度Ｖとする（Ｓ８２）。ＣＰＵコア２１は、速度Ｖｐと速度Ｖとの平均を新たな速度Ｖとし（Ｓ８６）、速度Ｖを速度Ｖｐとして保存する（Ｓ８７）。ＣＰＵコア２１は、移動ベクトルの角度θを算出し（Ｓ８８）、前回に設定された角度θｐと現在設定されている角度θとの平均を新たな角度θとして算出する（Ｓ９０）。そして、ＣＰＵコア２１は、現在設定されている角度θを角度θｐとして保存する（Ｓ９１）。これらの処理がゲーム処理の単位時間毎に繰り返される。【選択図】  図７
2006122240.tif 000002
【特許請求の範囲】
【請求項１】
プレイヤがゲーム空間に登場する第１オブジェクトを操作することにより、当該第１オブジェクトとは異なる第２オブジェクトの位置を変化させるゲームを表現するゲーム装置であって、
前記ゲーム空間を表示画面に表示する表示部と、
前記表示部の表示画面上を覆って設けられるタッチパネルと、
所定周期毎に前記タッチパネルがタッチ操作された位置座標を検出する操作位置検出部と、
前記操作位置検出部が検出した位置座標を記憶する位置座標記憶部と、
前回検出した位置座標および現在の位置座標に基づいて、移動速度および移動方向の少なくとも一方を前記第２オブジェクトの移動パラメータとして算出する移動パラメータ算出部と、
過去に決定した前記移動パラメータと前記移動パラメータ算出部が算出した移動パラメータとを用いて、新たな移動パラメータを決定する移動パラメータ決定部と、
前記移動パラメータ決定部が決定した移動パラメータを記憶する移動パラメータ記憶部と、
前記操作位置検出部が検出した位置座標に応じて、前記第１オブジェクトを表示制御する第１オブジェクト表示制御部と、
前記第１オブジェクトと前記第２のオブジェクトとが所定の位置関係を満たしたとき、前記移動パラメータ記憶部が記憶している最新の移動パラメータに基づいて、前記第２オブジェクトを移動させて表示制御する第２オブジェクト表示制御部とを備える、ゲーム装置。
【請求項２】
前記移動パラメータ決定部は、前記移動パラメータ記憶部に記憶されている過去に決定した複数の移動パラメータと前記移動パラメータ算出部が算出した移動パラメータとを平均して、新たな移動パラメータを決定することを特徴とする、請求項１に記載のゲーム装置。
【請求項３】
前記移動パラメータ決定部は、前記移動パラメータ記憶部に記憶されている前回決定した移動パラメータと前記移動パラメータ算出部が算出した移動パラメータとを平均して、新たな移動パラメータを決定することを特徴とする、請求項１に記載のゲーム装置。
【請求項４】
前記移動パラメータ算出部は、移動速度および移動方向を共に前記第２オブジェクトの移動パラメータとして算出し、
前記移動パラメータ決定部は、前記移動パラメータ記憶部に記憶されている前回決定した移動方向と前記移動パラメータ算出部が算出した移動方向とを平均することによって、新たな移動方向を決定し、
前記移動パラメータ決定部は、前記移動パラメータ記憶部に記憶されている前回決定した移動速度に対して前記移動パラメータ算出部が算出した移動速度が遅いとき、前回決定した移動速度と前記移動パラメータ算出部が算出した移動速度とを平均して新たな移動速度を決定し、
前記移動パラメータ決定部は、前記移動パラメータ算出部が算出した移動速度が前回決定した移動速度以上のとき、前記移動パラメータ算出部が算出した移動速度を新たな移動速度に決定することを特徴とする、請求項１に記載のゲーム装置。
【請求項５】
前記移動パラメータ算出部は、前記所定周期の前周期に検出した位置座標を前回検出した位置座標とし、現周期に検出した位置座標を現在の位置座標として前記移動パラメータを前記所定周期毎に算出することを特徴とする、請求項１に記載のゲーム装置。
【請求項６】
前記移動パラメータ算出部は、前回検出した位置座標から現在の位置座標までの移動ベクトルを求め、当該移動ベクトルに基づいて移動速度および移動方向の少なくとも一方を前記移動パラメータとして算出することを特徴とする、請求項５に記載のゲーム装置。
【請求項７】
前記ゲーム装置は、前記第１オブジェクトを最初に前記表示画面上に表示するための初期位置座標を記憶する初期位置記憶部を、さらに備え、
前記第１オブジェクト表示制御手段は、前記操作位置検出部が前記タッチパネルに対してタッチ操作された位置座標を検出したことに応じて、当該位置座標と前記初期位置座標との相対的な位置関係を示す相対位置データを用いて前記第１オブジェクトを表示制御することを特徴とする、請求項１に記載のゲーム装置。
【請求項８】
前記ゲーム装置は、前記ゲーム空間に前記第２オブジェクトの移動目標となる目標物を設定して前記表示画面に表示する目標物表示部を、さらに備え、
前記第２オブジェクト表示制御手段は、前記移動パラメータに基づいて移動する前記第２オブジェクトを所定量ずつ減速させて表示制御し、
前記ゲーム装置は、前記第２オブジェクトの移動速度がゼロになったときの位置座標と前記目標物の位置座標との位置関係を用いてゲームの得点を算出する得点算出部を、さらに備える、請求項１に記載のゲーム装置。
【請求項９】
プレイヤがゲーム空間に登場するオブジェクトを操作することにより、当該オブジェクトの位置を変化させるゲームを表現するゲーム装置であって、
前記ゲーム空間を表示画面に表示する表示部と、
前記表示部の表示画面上を覆って設けられるタッチパネルと、
所定周期毎に前記タッチパネルがタッチ操作された位置座標を検出する操作位置検出部と、
前記操作位置検出部が検出した位置座標を記憶する位置座標記憶部と、
前回検出した位置座標および現在の位置座標に基づいて、移動速度および移動方向の少なくとも一方を前記オブジェクトの移動パラメータとして算出する移動パラメータ算出部と、
過去に決定した前記移動パラメータと前記移動パラメータ算出部が算出した移動パラメータとを用いて、新たな移動パラメータを決定する移動パラメータ決定部と、
前記移動パラメータ決定部が決定した移動パラメータを記憶する移動パラメータ記憶部と、
前記操作位置検出部が検出した位置座標に応じて前記オブジェクトを表示制御し、所定の条件を満たしたとき、前記移動パラメータ記憶部が記憶している最新の移動パラメータに基づいて前記オブジェクトを移動させて表示制御するオブジェクト表示制御部とを備える、ゲーム装置。
【請求項１０】
プレイヤがゲーム空間に登場する第１オブジェクトを操作することにより、当該第１オブジェクトとは異なる第２オブジェクトの位置を変化させるゲームを表現するゲーム装置のコンピュータで実行されるゲームプログラムであって、
前記ゲーム装置は、前記ゲーム空間を表示画面に表示する表示部、当該表示部の表示画面上を覆って設けられるタッチパネル、および記憶部を備えており、
前記コンピュータに、
所定周期毎に前記タッチパネルがタッチ操作された位置座標を検出する操作位置検出ステップと、
前記操作位置検出ステップが検出した位置座標を前記記憶部に記憶する位置座標記憶ステップと、
前回検出した位置座標および現在の位置座標に基づいて、移動速度および移動方向の少なくとも一方を前記第２オブジェクトの移動パラメータとして算出する移動パラメータ算出ステップと、
過去に決定した前記移動パラメータと前記移動パラメータ算出ステップが算出した移動パラメータとを用いて、新たな移動パラメータを決定する移動パラメータ決定ステップと、
前記移動パラメータ決定ステップが決定した移動パラメータを前記記憶部に記憶する移動パラメータ記憶ステップと、
前記操作位置検出ステップが検出した位置座標に応じて、前記第１オブジェクトを表示制御する第１オブジェクト表示制御ステップと、
前記第１オブジェクトと前記第２のオブジェクトとが所定の位置関係を満たしたとき、前記移動パラメータ記憶ステップで記憶した最新の移動パラメータに基づいて、前記第２オブジェクトを移動させて表示制御する第２オブジェクト表示制御ステップとを実行させる、ゲームプログラム。
【請求項１１】
前記移動パラメータ決定ステップは、前記移動パラメータ記憶ステップで前記記憶部に記憶した過去に決定した複数の移動パラメータと前記移動パラメータ算出ステップが算出した移動パラメータとを平均して、新たな移動パラメータを決定することを特徴とする、請求項１０に記載のゲームプログラム。
【請求項１２】
前記移動パラメータ決定ステップは、前記移動パラメータ記憶ステップで前記記憶部に記憶した前回決定した移動パラメータと前記移動パラメータ算出ステップが算出した移動パラメータとを平均して、新たな移動パラメータを決定することを特徴とする、請求項１０に記載のゲームプログラム。
【請求項１３】
前記移動パラメータ算出ステップは、移動速度および移動方向を共に前記第２オブジェクトの移動パラメータとして算出し、
前記移動パラメータ決定ステップは、前記移動パラメータ記憶ステップで前記記憶部に記憶した前回決定した移動方向と前記移動パラメータ算出ステップが算出した移動方向とを平均することによって、新たな移動方向を決定し、
前記移動パラメータ決定ステップは、前記移動パラメータ記憶ステップで前記記憶部に記憶した前回決定した移動速度に対して前記移動パラメータ算出ステップが算出した移動速度が遅いとき、前回決定した移動速度と前記移動パラメータ算出ステップが算出した移動速度とを平均して新たな移動速度を決定し、
前記移動パラメータ決定ステップは、前記移動パラメータ算出ステップが算出した移動速度が前回決定した移動速度以上のとき、前記移動パラメータ算出ステップが算出した移動速度を新たな移動速度に決定することを特徴とする、請求項１０に記載のゲームプログラム。
【請求項１４】
前記移動パラメータ算出ステップは、前記所定周期の前周期に検出した位置座標を前回検出した位置座標とし、現周期に検出した位置座標を現在の位置座標として前記移動パラメータを前記所定周期毎に算出することを特徴とする、請求項１０に記載のゲームプログラム。
【請求項１５】
前記移動パラメータ算出ステップは、前回検出した位置座標から現在の位置座標までの移動ベクトルを求め、当該移動ベクトルに基づいて移動速度および移動方向の少なくとも一方を前記移動パラメータとして算出することを特徴とする、請求項１４に記載のゲームプログラム。
【請求項１６】
前記ゲームプログラムは、前記第１オブジェクトを最初に前記表示画面上に表示するための初期位置座標を前記記憶部に記憶する初期位置記憶ステップを、さらに前記コンピュータに実行させ、
前記第１オブジェクト表示制御手段は、前記操作位置検出ステップが前記タッチパネルに対してタッチ操作された位置座標を検出したことに応じて、当該位置座標と前記初期位置座標との相対的な位置関係を示す相対位置データを用いて前記第１オブジェクトを表示制御することを特徴とする、請求項１０に記載のゲームプログラム。
【請求項１７】
前記ゲームプログラムは、前記ゲーム空間に前記第２オブジェクトの移動目標となる目標物を設定して前記表示画面に表示する目標物表示ステップを、さらに前記コンピュータに実行させ、
前記第２オブジェクト表示制御手段は、前記移動パラメータに基づいて移動する前記第２オブジェクトを所定量ずつ減速させて表示制御し、
前記ゲームプログラムは、前記第２オブジェクトの移動速度がゼロになったときの位置座標と前記目標物の位置座標との位置関係を用いてゲームの得点を算出する得点算出ステップを、さらに前記コンピュータに実行させる、請求項１０に記載のゲームプログラム。
【請求項１８】
プレイヤがゲーム空間に登場するオブジェクトを操作することにより、当該オブジェクトの位置を変化させるゲームを表現するゲーム装置のコンピュータに実行されるゲームプログラムであって、
前記ゲーム装置は、前記ゲーム空間を表示画面に表示する表示部、当該表示部の表示画面上を覆って設けられるタッチパネル、および記憶部を備えており、
前記コンピュータに、
所定周期毎に前記タッチパネルがタッチ操作された位置座標を検出する操作位置検出ステップと、
前記操作位置検出ステップが検出した位置座標を前記記憶部に記憶する位置座標記憶ステップと、
前回検出した位置座標および現在の位置座標に基づいて、移動速度および移動方向の少なくとも一方を前記オブジェクトの移動パラメータとして算出する移動パラメータ算出ステップと、
過去に決定した前記移動パラメータと前記移動パラメータ算出ステップが算出した移動パラメータとを用いて、新たな移動パラメータを決定する移動パラメータ決定ステップと、
前記移動パラメータ決定ステップが決定した移動パラメータを前記記憶部に記憶する移動パラメータ記憶ステップと、
前記操作位置検出ステップが検出した位置座標に応じて前記オブジェクトを表示制御し、所定の条件を満たしたとき、前記移動パラメータ記憶ステップで前記記憶部に記憶した最新の移動パラメータに基づいて前記オブジェクトを移動させて表示制御するオブジェクト表示制御ステップとを実行させる、ゲームプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲーム装置およびゲームプログラムに関し、より特定的には、表示画面を覆うタッチパネルを利用して当該表示画面に表示されたオブジェクトを移動させるゲームを実現するゲーム装置およびゲームプログラムに関する。
【背景技術】
【０００２】
従来、プレイヤが表示画面を覆って設けられたタブレットやタッチパネルを用いて、当該表示画面に表示されたオブジェクトやキャラクタをタッチ操作して、コンピュータ操作やゲーム操作を行うゲームが知られている（例えば、特許文献１および２参照）。
【０００３】
上記特許文献１では、タブレットとペンを利用してタッチ操作するゴルフゲームが開示されている。このゴルフゲームでは、ペンが動いた軌跡の情報に基づいてタブレット上におけるペンの計測位置を比較し、最も大きい計測間距離をボールの打撃力としてゴルフゲームを進行している。
【０００４】
上記特許文献２では、タッチパネルを用いてタッチ操作するゴルフゲームが開示されている。このゴルフゲームでは、タッチパネルをタッチ操作して操作オブジェクト（ｐｕｓｈボタン）を左にドラッグすることによりスイング操作となり、右にドラッグすることでショット操作となる。このとき、スイング操作をしたあと、ショットする前にドラッグ操作を停止した段階で、このスイング操作のドラッグ距離から、ボールの飛距離を計算する。そして、ショット操作をしたときの操作の速度を求めて、最終的なボールの飛距離が計算される。
【特許文献１】特開平５−３１２５６号公報
【特許文献２】特開２００２−９３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記特許文献１および特許文献２で開示されたいずれの技術においても、プレイヤがタッチ操作した情報をゲーム内容に反映している。すなわち、上記特許文献１に開示された技術では、計測間距離で最も大きかったものをそのまま利用して、ボールの飛距離に反映させている。また、上記特許文献２では、ドラッグの距離やショット操作のスピードがボールの飛距離に反映させている。
【０００６】
しかしながら、タブレットやタッチパネルにタッチ操作から得られる入力情報に基づいてゲーム処理を行う場合、当該タッチ操作における入力ぶれの影響が問題となる。例えば、入力方向（角度）をタッチパネルに対するタッチ操作で取得する場合、タッチパネルの検出精度（例えば、２５６ｄｏｔ×１９２ｄｏｔ）やプレイヤが、指やペンなどを用いてタッチパネルを叩いたり、押さえたり、触れたりするときの操作方向に応じて得られる入力情報の値に操作面の滑りや力の入り具合などによって、予想と異なる値が入力されることがある。このようなぶれを伴う入力情報に基づいて入力方向を決定してしまうと、入力したと想定された方向とは異なる入力方向がゲーム処理に反映されてしまう。また、入力速度をタッチパネルに対するタッチ操作で取得する場合も同様に入力情報の値に想定とは異なる値が入力される場合生じ、ぶれに伴って想定と異なる入力速度がゲーム処理に反映されてしまう。
【０００７】
例えば、タッチ操作におけるドラッグ操作において、ボールを打撃するときの入力角度や入力速度のみがゲーム内容に反映される場合、打撃時のみに対するタッチ操作の入力角度のぶれや入力速度のぶれがゲーム内容に反映されるため、プレイヤに対して操作技術以上の正確さを要求することになる。したがって、プレイヤが行ったタッチ操作と画像表示との間で違和感が生じることがある。
【０００８】
また、上記特許文献１および特許文献２で開示されたいずれの技術においても、タッチパネルやタブレットで操作対象に直接触れる必要があり、タッチパネル操作ならではのゲーム操作を楽しむことについては主眼が置かれていなかった。
【０００９】
それ故に、本発明の目的は、タッチ操作に生じる入力ぶれの影響を低減した入力情報に基づいてゲーム処理を行うゲーム装置およびゲームプログラムを提供することである。また、本発明の他の目的は、ゲーム装置用コントローラのスイッチやジョイスティック操作では体験できないような、タッチパネル特有の操作感を提供できるゲーム装置およびゲームプログラムを提供することである。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号やステップ番号（「Ｓ」と略称する）等は、本発明の理解を助けるために、後述する図面との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【００１１】
第１の発明は、プレイヤがゲーム空間に登場する第１オブジェクト（バーＢ）を操作することにより、その第１オブジェクトとは異なる第２オブジェクト（甲羅Ｓ）の位置を変化させるゲームを表現するゲーム装置（１）である。ゲーム装置は、表示部（１２）、タッチパネル（１３）、操作位置検出部（Ｓ５２）、位置座標記憶部（Ｓ５７）、移動パラメータ算出部（Ｓ８１）、移動パラメータ決定部（Ｓ８２〜Ｓ８６、Ｓ８８〜Ｓ９０）、移動パラメータ記憶部（Ｓ８７、Ｓ９１）、第１オブジェクト表示制御部（Ｓ６０〜Ｓ６４）、および第２オブジェクト表示制御部（Ｓ６５、Ｓ７１〜Ｓ７４）を備える。表示部は、ゲーム空間を表示画面に表示する。タッチパネルは、表示部の表示画面上を覆って設けられる。操作位置検出部は、所定周期毎にタッチパネルがタッチ操作された位置座標（ｔｘ、ｔｙ）を検出する。位置座標記憶部は、操作位置検出部が検出した位置座標（ｔｐｘ、ｔｐｙ）を記憶する。移動パラメータ算出部は、前回検出した位置座標（ｔｐｘ、ｔｐｙ）および現在の位置座標（ｔｘ、ｔｙ）に基づいて、移動速度（Ｖ）および移動方向（θ）の少なくとも一方を第２オブジェクトの移動パラメータとして算出する。移動パラメータ決定部は、過去に決定した移動パラメータ（Ｖｐ、θｐ）と移動パラメータ算出部が算出した移動パラメータ（Ｖ、θ）とを用いて、新たな移動パラメータ（Ｖ、θ）を決定する（Ｓ８６、Ｓ９０）。移動パラメータ記憶部は、移動パラメータ決定部が決定した移動パラメータを記憶する。第１オブジェクト表示制御部は、操作位置検出部が検出した位置座標に応じて、第１オブジェクトを表示制御する。第２オブジェクト表示制御部は、第１オブジェクトと第２のオブジェクトとが所定の位置関係を満たしたとき（Ｓ６５でＹｅｓ）、移動パラメータ記憶部が記憶している最新の移動パラメータに基づいて、第２オブジェクトを移動させて表示制御する。
【００１２】
第２の発明は、上記第１の発明において、移動パラメータ決定部は、移動パラメータ記憶部に記憶されている過去に決定した複数の移動パラメータと移動パラメータ算出部が算出した移動パラメータとを平均して、新たな移動パラメータを決定する。
【００１３】
第３の発明は、上記第１の発明において、移動パラメータ決定部は、移動パラメータ記憶部に記憶されている前回決定した移動パラメータと移動パラメータ算出部が算出した移動パラメータとを平均して、新たな移動パラメータを決定する。
【００１４】
第４の発明は、上記第１の発明において、移動パラメータ算出部は、移動速度および移動方向を共に第２オブジェクトの移動パラメータとして算出する。移動パラメータ決定部は、移動パラメータ記憶部に記憶されている前回決定した移動方向と移動パラメータ算出部が算出した移動方向とを平均することによって、新たな移動方向を決定する（Ｓ９０）。移動パラメータ決定部は、移動パラメータ記憶部に記憶されている前回決定した移動速度に対して移動パラメータ算出部が算出した移動速度が遅いとき（Ｓ８５でＹｅｓ）、前回決定した移動速度と移動パラメータ算出部が算出した移動速度とを平均して新たな移動速度を決定する。移動パラメータ決定部は、移動パラメータ算出部が算出した移動速度が前回決定した移動速度以上のとき（Ｓ８５でＮｏ）、移動パラメータ算出部が算出した移動速度を新たな移動速度に決定する。
【００１５】
第５の発明は、上記第１の発明において、移動パラメータ算出部は、所定周期の前周期に検出した位置座標を前回検出した位置座標とし、現周期に検出した位置座標を現在の位置座標として移動パラメータを所定周期毎に算出する。
【００１６】
第６の発明は、上記第５の発明において、移動パラメータ算出部は、前回検出した位置座標から現在の位置座標までの移動ベクトル（Δｔｘ、Δｔｙ）を求め、その移動ベクトルに基づいて移動速度および移動方向の少なくとも一方を移動パラメータとして算出する。
【００１７】
第７の発明は、上記第１の発明において、ゲーム装置は、初期位置記憶部（Ｓ５１）をさらに備える。初期位置記憶部は、第１オブジェクトを最初に表示画面上に表示するための初期位置座標（Ｂｘ、Ｂｙ）を記憶する。第１オブジェクト表示制御手段は、操作位置検出部がタッチパネルに対してタッチ操作された位置座標を検出したことに応じて、その位置座標と初期位置座標との相対的な位置関係を示す相対位置データ（Ｒｘ、Ｒｙ）を用いて第１オブジェクトを表示制御する。
【００１８】
第８の発明は、上記第１の発明において、ゲーム装置は、目標物表示部（２３１）および得点算出部（Ｓ７５）をさらに備える。目標物表示部は、ゲーム空間に第２オブジェクトの移動目標となる目標物（的Ｔ）を設定して表示画面に表示する。第２オブジェクト表示制御手段は、移動パラメータに基づいて移動する第２オブジェクトを所定量ずつ減速させて表示制御する（Ｓ７３）。得点算出部は、第２オブジェクトの移動速度がゼロになったときの位置座標と目標物の位置座標との位置関係を用いてゲームの得点を算出する。
【００１９】
第９の発明は、プレイヤがゲーム空間に登場するオブジェクトを操作することにより、そのオブジェクトの位置を変化させるゲームを表現するゲーム装置である。ゲーム装置は、表示部、タッチパネル、操作位置検出部、位置座標記憶部、移動パラメータ算出部、移動パラメータ決定部、移動パラメータ記憶部、およびオブジェクト表示制御部を備える。表示部は、ゲーム空間を表示画面に表示する。タッチパネルは、表示部の表示画面上を覆って設けられる。操作位置検出部は、所定周期毎にタッチパネルがタッチ操作された位置座標を検出する。位置座標記憶部は、操作位置検出部が検出した位置座標を記憶する。移動パラメータ算出部は、前回検出した位置座標および現在の位置座標に基づいて、移動速度および移動方向の少なくとも一方をオブジェクトの移動パラメータとして算出する。移動パラメータ決定部は、過去に決定した移動パラメータと移動パラメータ算出部が算出した移動パラメータとを用いて、新たな移動パラメータを決定する。移動パラメータ記憶部は、移動パラメータ決定部が決定した移動パラメータを記憶する。オブジェクト表示制御部は、操作位置検出部が検出した位置座標に応じてオブジェクトを表示制御し、所定の条件を満たしたとき、移動パラメータ記憶部が記憶している最新の移動パラメータに基づいてオブジェクトを移動させて表示制御する。
【００２０】
第１０の発明は、プレイヤがゲーム空間に登場する第１オブジェクトを操作することにより、その第１オブジェクトとは異なる第２オブジェクトの位置を変化させるゲームを表現するゲーム装置のコンピュータで実行されるゲームプログラムである。ゲーム装置は、ゲーム空間を表示画面に表示する表示部、その表示部の表示画面上を覆って設けられるタッチパネル、および記憶部（２２）を備えている。ゲームプログラムは、操作位置検出ステップ（Ｓ５２）、位置座標記憶ステップ（Ｓ５７）、移動パラメータ算出ステップ（Ｓ８１）、移動パラメータ決定ステップ（Ｓ８２〜Ｓ８６、Ｓ８８〜Ｓ９０）、移動パラメータ記憶ステップ（Ｓ８７、Ｓ９１）、第１オブジェクト表示制御ステップ（Ｓ６０〜Ｓ６４）、および第２オブジェクト表示制御ステップ（Ｓ６５、Ｓ７１〜Ｓ７４）をコンピュータに実行させる。操作位置検出ステップは、所定周期毎にタッチパネルがタッチ操作された位置座標を検出する。位置座標記憶ステップは、操作位置検出ステップが検出した位置座標を記憶部に記憶する。移動パラメータ算出ステップは、前回検出した位置座標および現在の位置座標に基づいて、移動速度および移動方向の少なくとも一方を第２オブジェクトの移動パラメータとして算出する。移動パラメータ決定ステップは、過去に決定した移動パラメータと移動パラメータ算出ステップが算出した移動パラメータとを用いて、新たな移動パラメータを決定する。移動パラメータ記憶ステップは、移動パラメータ決定ステップが決定した移動パラメータを記憶部に記憶する。第１オブジェクト表示制御ステップは、操作位置検出ステップが検出した位置座標に応じて、第１オブジェクトを表示制御する。第２オブジェクト表示制御ステップは、第１オブジェクトと第２のオブジェクトとが所定の位置関係を満たしたとき、移動パラメータ記憶ステップで記憶した最新の移動パラメータに基づいて、第２オブジェクトを移動させて表示制御する。
【００２１】
第１１の発明は、上記第１０の発明において、移動パラメータ決定ステップは、移動パラメータ記憶ステップで記憶部に記憶した過去に決定した複数の移動パラメータと移動パラメータ算出ステップが算出した移動パラメータとを平均して、新たな移動パラメータを決定する。
【００２２】
第１２の発明は、上記第１０の発明において、移動パラメータ決定ステップは、移動パラメータ記憶ステップで記憶部に記憶した前回決定した移動パラメータと移動パラメータ算出ステップが算出した移動パラメータとを平均して、新たな移動パラメータを決定する。
【００２３】
第１３の発明は、上記第１０の発明において、移動パラメータ算出ステップは、移動速度および移動方向を共に第２オブジェクトの移動パラメータとして算出する。移動パラメータ決定ステップは、移動パラメータ記憶ステップで記憶部に記憶した前回決定した移動方向と移動パラメータ算出ステップが算出した移動方向とを平均することによって、新たな移動方向を決定する。移動パラメータ決定ステップは、移動パラメータ記憶ステップで記憶部に記憶した前回決定した移動速度に対して移動パラメータ算出ステップが算出した移動速度が遅いとき、前回決定した移動速度と移動パラメータ算出ステップが算出した移動速度とを平均して新たな移動速度を決定する。移動パラメータ決定ステップは、移動パラメータ算出ステップが算出した移動速度が前回決定した移動速度以上のとき、移動パラメータ算出ステップが算出した移動速度を新たな移動速度を決定する。
【００２４】
第１４の発明は、上記第１０の発明において、移動パラメータ算出ステップは、所定周期の前周期に検出した位置座標を前回検出した位置座標とし、現周期に検出した位置座標を現在の位置座標として移動パラメータを所定周期毎に算出する。
【００２５】
第１５の発明は、上記第１４の発明において、移動パラメータ算出ステップは、前回検出した位置座標から現在の位置座標までの移動ベクトルを求め、その移動ベクトルに基づいて移動速度および移動方向の少なくとも一方を移動パラメータとして算出する。
【００２６】
第１６の発明は、上記第１０の発明において、ゲームプログラムは、初期位置記憶ステップ（Ｓ５１）をさらにコンピュータに実行させる。初期位置記憶ステップは、第１オブジェクトを最初に表示画面上に表示するための初期位置座標を記憶部に記憶する。第１オブジェクト表示制御手段は、操作位置検出ステップがタッチパネルに対してタッチ操作された位置座標を検出したことに応じて、その位置座標と初期位置座標との相対的な位置関係を示す相対位置データを用いて第１オブジェクトを表示制御する。
【００２７】
第１７の発明は、上記第１０の発明において、ゲームプログラムは、目標物表示ステップ（２３１）および得点算出ステップ（Ｓ７５）をさらにコンピュータに実行させる。目標物表示ステップは、ゲーム空間に第２オブジェクトの移動目標となる目標物を設定して表示画面に表示する。第２オブジェクト表示制御手段は、移動パラメータに基づいて移動する第２オブジェクトを所定量ずつ減速させて表示制御する。得点算出ステップは、第２オブジェクトの移動速度がゼロになったときの位置座標と目標物の位置座標との位置関係を用いてゲームの得点を算出する。
【００２８】
第１８の発明は、プレイヤがゲーム空間に登場するオブジェクトを操作することにより、そのオブジェクトの位置を変化させるゲームを表現するゲーム装置のコンピュータに実行されるゲームプログラムである。ゲーム装置は、ゲーム空間を表示画面に表示する表示部、その表示部の表示画面上を覆って設けられるタッチパネル、および記憶部を備えている。ゲームプログラムは、操作位置検出ステップ、位置座標記憶ステップ、移動パラメータ算出ステップ、移動パラメータ決定ステップ、移動パラメータ記憶ステップ、およびオブジェクト表示制御ステップをコンピュータに実行させる。操作位置検出ステップは、所定周期毎にタッチパネルがタッチ操作された位置座標を検出する。位置座標記憶ステップは、操作位置検出ステップが検出した位置座標を記憶部に記憶する。移動パラメータ算出ステップは、前回検出した位置座標および現在の位置座標に基づいて、移動速度および移動方向の少なくとも一方をオブジェクトの移動パラメータとして算出する。移動パラメータ決定ステップは、過去に決定した移動パラメータと移動パラメータ算出ステップが算出した移動パラメータとを用いて、新たな移動パラメータを決定する。移動パラメータ記憶ステップは、移動パラメータ決定ステップが決定した移動パラメータを記憶部に記憶する。オブジェクト表示制御ステップは、操作位置検出ステップが検出した位置座標に応じてオブジェクトを表示制御し、所定の条件を満たしたとき、移動パラメータ記憶ステップで記憶部に記憶した最新の移動パラメータに基づいてオブジェクトを移動させて表示制御する。
【発明の効果】
【００２９】
第１の発明によれば、プレイヤがタッチ操作によって第１オブジェクトを操作し、その操作の仕方によって、第２オブジェクトの動作内容が変わるようなゲームを提供できる。そして、第２オブジェクトの移動パラメータは、プレイヤがタッチパネルをタッチ操作した入力情報に基づいて算出されているが、移動パラメータがそれぞれ過去に決定された移動パラメータと現在算出した移動パラメータとを用いて新たな移動パラメータが決定されるため、タッチ操作に生じる入力ぶれの影響を低減することができる。また、プレイヤがタッチパネルをタッチ操作した全ての入力情報が累積されて最終的な移動パラメータが決定されるため、ゲーム装置用コントローラのスイッチやジョイスティック操作では体験できないような、タッチパネル特有の操作感をプレイヤに提供することができる。
【００３０】
第２の発明によれば、新たな移動パラメータが過去に決定された複数の移動パラメータと現在算出された移動パラメータとを平均して求められるため、タッチ操作に生じる入力ぶれの影響をさらに低減することができる。
【００３１】
第３の発明によれば、新たな移動パラメータが前回決定された複数の移動パラメータと現在算出された移動パラメータとを平均して求められるため、処理負荷を軽減してタッチ操作に生じる入力ぶれの影響を低減することができる。
【００３２】
第４の発明によれば、第２オブジェクトに与える移動方向および移動速度をタッチ操作に生じる入力ぶれの影響を低減して求めることができる。また、第２オブジェクトに与える移動速度は、プレイヤがタッチパネルに対してタッチ操作する速度を加速しているときはその速度をそのまま入力情報とし、減速しているときはその速度を鈍らせるような処理を行うため、加速するタッチ操作を優先にして速度を維持する処理を行うことができる。
【００３３】
第５の発明によれば、所定周期（表示フレーム毎など）に一度、タッチ操作のタッチ位置座標を検出することによって、処理負荷を軽減した処理を行うことができる。
【００３４】
第６の発明によれば、タッチ操作の位置の差（移動ベクトル）から、移動速度または移動角度を算出するため、利用しやすいデータを提供できる。
【００３５】
第７の発明によれば、第１オブジェクトが相対的な入力データで表示制御されるので、タッチパネルにおける全ての操作面を用いて第１オブジェクトを移動させる操作を行うことができ、必ずしも操作対象の第１オブジェクトを直接触れるようにする必要が無くなり、プレイヤが第１オブジェクトを視認しやすくなる。
【００３６】
第８の発明によれば、第２オブジェクトの表示制御において、第２オブジェクトが徐々に減速して停止した位置と目標物の位置との位置関係に基づいて、ゲームの得点を計算するので、プレイヤが第１オブジェクトの操作をいかに第２オブジェクトの動作に反映させるかを考慮しなければならなくなり、ゲームの興趣性が高めることができる。
【００３７】
第９の発明によれば、プレイヤがタッチ操作によってオブジェクトを操作し、その操作の仕方によって、オブジェクトの動作内容が変わるようなゲームを提供できる。そして、オブジェクトの移動パラメータは、プレイヤがタッチパネルをタッチ操作した入力情報に基づいて算出されているが、移動パラメータがそれぞれ過去に決定された移動パラメータと現在算出した移動パラメータとを用いて新たな移動パラメータが決定されるため、タッチ操作に生じる入力ぶれの影響を低減することができる。また、プレイヤがタッチパネルをタッチ操作した全ての入力情報が累積されて最終的な移動パラメータが決定されるため、ゲーム装置用コントローラのスイッチやジョイスティック操作では体験できないような、タッチパネル特有の操作感をプレイヤに提供することができる。
【００３８】
また、本発明のゲームプログラムによれば、コンピュータに実行されることによって上述したゲーム装置と同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００３９】
図面を参照して、本発明の一実施形態に係るゲームプログラムを実行するゲーム装置について説明する。なお、図１は、本発明のゲームプログラムを実行するゲーム装置１の外観図である。ここでは、ゲーム装置１の一例として、携帯ゲーム装置を示す。
【００４０】
図１において、本実施形態のゲーム装置１は、２つの液晶表示器（ＬＣＤ）１１および１２を所定の配置位置となるように、ハウジング１８に収納して構成される。具体的には、第１液晶表示器（以下、「ＬＣＤ」という）１１および第２ＬＣＤ１２を互いに上下に配置して収納する場合は、ハウジング１８が下部ハウジング１８ａおよび上部ハウジング１８ｂから構成され、上部ハウジング１８ｂが下部ハウジング１８ａの上辺の一部で回動自在に支持される。上部ハウジング１８ｂは、第１ＬＣＤ１１の平面形状よりも少し大きな平面形状を有し、一方主面から第１ＬＣＤ１１の表示画面を露出するように開口部が形成される。下部ハウジング１８ａは、その平面形状が上部ハウジング１８ｂよりも横長に選ばれ、横方向の略中央部に第２ＬＣＤ１２の表示画面を露出する開口部が形成され、第２ＬＣＤ１２を挟む何れか一方にスピーカ１５の音抜き孔が形成されるとともに、第２ＬＣＤ１２を挟む左右に操作スイッチ部１４が装着される。
【００４１】
操作スイッチ部１４は、第２ＬＣＤ１２の右横における下部ハウジング１８ａの一方主面に装着される動作スイッチ（Ａボタン）１４ａおよび動作スイッチ（Ｂボタン）１４ｂと、第２ＬＣＤ１２の左横における下部ハウジング１８ａの一方主面に装着される方向指示スイッチ（十字キー）１４ｃと、スタートスイッチ１４ｄと、セレクトスイッチ１４ｅと、側面スイッチ１４ｆおよび１４ｇとを含む。動作スイッチ１４ａおよび１４ｂは、例えばサッカーゲーム等のスポーツゲームにおいてはパスやシュートを行う等の指示、アクションゲームにおいてはジャンプ、パンチ、武器を動かす等の指示、ロールプレイングゲーム（ＲＰＧ）やシミュレーションＲＰＧにおいてはアイテムの取得、武器またはコマンドの選択決定等の指示入力に使用される。方向指示スイッチ１４ｃは、プレイヤによって操作スイッチ部１４を用いて操作可能なプレイヤオブジェクト（またはプレイヤキャラクタ）の移動方向を指示したり、カーソルの移動方向を指示したりする等のゲーム画面における方向指示に用いられる。側面スイッチ（Ｌボタン）１４ｆおよび側面スイッチ（Ｒボタン）１４ｇは、下部ハウジング１８ａにおける上部面（上部側面）の左右に設けられる。また、必要に応じて、動作スイッチをさらに追加してもかまわない。
【００４２】
また、第２ＬＣＤ１２の上面には、タッチパネル１３（図１における破線領域）が装着される。タッチパネル１３は、例えば、抵抗膜方式、光学式（赤外線方式）、静電容量結合式の何れの種類でもよく、その上面をスタイラス１６（または指でも可）で押圧操作、移動操作、または撫でる操作をしたとき、スタイラス１６の座標位置を検出して座標データを出力する２次元ポインティングデバイスである。
【００４３】
上部ハウジング１８ｂの側面近傍には、必要に応じてタッチパネル１３を操作するスタイラス１６を収納するための収納孔（図１における二点破線領域）が形成される。この収納孔には、スタイラス１６が収納される。下部ハウジング１８ａの側面の一部には、ゲームプログラムを記憶したメモリ（例えば、ＲＯＭ）を内蔵したゲームカートリッジ１７（以下、単にカートリッジ１７と記載する）を着脱自在に装着するためのカートリッジ挿入部（図１における一点破線領域）が形成される。カートリッジ１７は、ゲームプログラムを記憶する情報記憶媒体であり、例えば、ＲＯＭまたはフラッシュメモリのような不揮発性半導体メモリが用いられる。カートリッジ挿入部の内部には、カートリッジ１７と電気的に接続するためのコネクタ（図２参照）が内蔵される。さらに、下部ハウジング１８ａ（または上部ハウジング１８ｂでも可）には、ＣＰＵ等の各種電子部品を実装した電子回路基板が収納される。なお、ゲームプログラムを記憶する情報記憶媒体としては、上記不揮発性半導体メモリに限らず、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
【００４４】
図２は、ゲーム装置１のブロック図である。図２において、ハウジング１８に収納される電子回路基板２０には、ＣＰＵコア２１が実装される。ＣＰＵコア２１には、所定のバスを介して、コネクタ２８が接続されるとともに、入出力インターフェース（Ｉ／Ｆ）回路２７、第１グラフィック処理ユニット（第１ＧＰＵ）２４、第２グラフィック処理ユニット（第２ＧＰＵ）２６、ＷＲＡＭ２２、およびＬＣＤコントローラ２９が接続される。コネクタ２８には、カートリッジ１７が着脱自在に接続される。カートリッジ１７は、ゲームプログラムを格納するための記憶媒体であり、具体的には、ゲームプログラムを記憶するＲＯＭ１７１とバックアップデータを書き換え可能に記憶するＲＡＭ１７２とを搭載する。カートリッジ１７のＲＯＭ１７１に記憶されたゲームプログラムは、ＷＲＡＭ２２にロードされ、当該ＷＲＡＭ２２にロードされたゲームプログラムがＣＰＵコア２１によって実行される。ＣＰＵコア２１は、ゲームプログラムを実行して得られる一時的なデータや画像を生成するためのデータをＷＲＡＭ２２に記憶する。Ｉ／Ｆ回路２７には、操作スイッチ部１４およびタッチパネル１３が接続されるとともに、スピーカ１５が接続される。
【００４５】
第１ＧＰＵ２４には、第１ビデオＲＡＭ（第１ＶＲＡＭ）２３が接続され、第２ＧＰＵ２６には、第２ビデオＲＡＭ（第２ＶＲＡＭ）２５が接続される。第１ＧＰＵ２４は、ＣＰＵコア２１からの指示に応じて、ＷＲＡＭ２２に記憶されている、画像を生成するためのデータに基づいて第１のゲーム画像を生成し、第１ＶＲＡＭ２３に描画（格納）する。第２ＧＰＵ２６は、ＣＰＵコア２１からの指示に応じて、ＷＲＡＭ２２に記憶されている、画像を生成するためのデータに基づいて第２のゲーム画像を生成し、第２ＶＲＡＭ２５に描画（格納）する。第１ＶＲＡＭ２３および第２ＶＲＡＭ２５はＬＣＤコントローラ２９に接続される。
【００４６】
ＬＣＤコントローラ２９は、レジスタ２９１を含む。レジスタ２９１は、ＣＰＵコア２１からの指示に応じて０または１の値を記憶する。ＬＣＤコントローラ２９は、レジスタ２９１の値が０の場合は、第１ＶＲＡＭ２３に描画されたゲーム画像を第１ＬＣＤ１１に出力し、第２ＶＲＡＭ２５に描画されたゲーム画像を第２ＬＣＤ１２に出力する。また、レジスタ２９１の値が１の場合は、第１ＶＲＡＭ２３に描画されたゲーム画像を第２ＬＣＤ１２に出力し、第２ＶＲＡＭ２５に描画されたゲーム画像を第１ＬＣＤ１１に出力する。
【００４７】
Ｉ／Ｆ回路２７は、操作スイッチ部１４、タッチパネル１３、およびスピーカ１５などの外部入出力装置とＣＰＵコア２１との間のデータの受け渡しを行う回路である。タッチパネル１３（タッチパネル用のデバイスドライバを含む）は、第２ＶＲＡＭ２５の座標系に対応する座標系を有し、スタイラス１６によって入力（指示）された位置に対応する位置座標のデータを出力するものである。なお、本実施例では、第２ＬＣＤ１２の表示画面の解像度は２５６ｄｏｔ×１９２ｄｏｔであり、タッチパネル１３の検出精度も第２ＬＣＤ１２の表示画面に対応した２５６ｄｏｔ×１９２ｄｏｔとして説明するが、タッチパネル１３の検出精度は第２ＬＣＤ１２の表示画面の解像度よりも低いものであってもよいし、高いものであってもよい。
【００４８】
以下、図３を参照して、上記ゲーム装置１によって実行されるゲームプログラムによる具体的な表示画面例を説明する。なお、図３は、第１ＬＣＤ１１および第２ＬＣＤ１２にそれぞれ表示されたゲーム画面の一例である。
【００４９】
本実施例においてゲーム装置１によって実行されるゲームは、同一のゲーム空間に対してそれぞれ一部の空間が第１ＬＣＤ１１および第２ＬＣＤ１２に表示される。そして、本実施例のゲームは、ゲーム空間に設定された目標物（図３では平面上に設けられた的Ｔが示されている）に第２オブジェクト（図３では上記平面上を移動する甲羅Ｓが示されている）を近づけることによって得点を競う。プレイヤは、第１オブジェクト（図３ではバーＢが示されている）のみをタッチ操作で移動させることが可能であり、プレイヤが第１オブジェクトを操作して第２オブジェクトと衝突させることによって、当該第２オブジェクトが上記平面上を移動する。
【００５０】
上述したように第２ＬＣＤ１２はタッチパネル１３で覆われており、第２ＬＣＤ１２に表示されるゲーム画面には、バーＢと打撃前の平面上初期位置に配置された甲羅Ｓが表示される。また、第１ＬＣＤ１１に表示されるゲーム画面には、同じ平面上に描かれた的Ｔが表示され、図３では既に的Ｔ近傍で停止して配置されている甲羅Ｓａが示されている。プレイヤは、タッチパネル１３をタッチ操作することによって、バーＢのみを移動させることができる。そして、プレイヤは、タッチ操作によってバーＢをコントロールして初期位置に配置された甲羅Ｓを的Ｔ方向へ打撃する。甲羅Ｓは、バーＢに打撃されることによって打撃された速度および方向に応じて平面上を移動し、やがてその速度が０となって平面上で停止する。そして、甲羅Ｓが停止した位置と的Ｔとの位置関係に応じて得点が加算される。具体的には、甲羅Ｓの停止位置が的Ｔの中心に近いほど、加算される得点が高くなる。
【００５１】
より具体的に、上述したタッチ操作とゲーム処理との関係を説明する。プレイヤがタッチパネル１３の任意の位置（バーＢが表示された位置でなくてもよい）をタッチ操作すると、当該タッチ操作された位置とバーＢの位置との相対的な位置関係が求められる。そして、プレイヤがタッチ操作位置をドラッグ（スライド）すると、上記相対的な位置関係を維持したままバーＢが移動する。なお、単位時間あたりのタッチ操作位置の移動量が所定ドット数（例えば２ドット）より小さいときは、バーＢを移動させない。また、バーＢの移動によって予め設定された移動範囲を当該バーＢが逸脱するときは、当該移動範囲内にバーＢが配置されるように移動を制限する。そして、打撃後に甲羅Ｓに与えられる移動速度および移動方向が、バーＢの移動時おいて単位時間毎に更新されて潜在的に計算されている。そして、バーＢと甲羅Ｓとが衝突したとき、バーＢの移動時に計算されている更新された移動速度および移動方向に基づいて、甲羅Ｓがゲーム空間の平面上を移動する。なお、打撃後に甲羅Ｓに与えられる移動速度および移動方向が本発明の移動パラメータに相当する。
【００５２】
図４は、カートリッジ１７から適時読み出して格納されるＷＲＡＭ２２のイメージを示す図である。図４に示すように、ＷＲＡＭ２２には、ゲーム装置１のコンピュータ、特にＣＰＵコア２１によって実行可能な形式の命令群を記憶するプログラム記憶領域２２ａおよびデータ群を記憶するデータ記憶領域２２ｂと有している。なお、本実施例では、ゲームプログラムやデータをカートリッジ１７に記録させたが、これらプログラムおよびデータを他の媒体や通信回線を通じて供給することもできる。
【００５３】
プログラム記憶領域２２ａに適時格納されるゲームプログラムは、ゲーム装置１に実行させる機能ごとに分解したプログラムとして示せば、例えば、ゲームメインプログラム２２１、タッチ座標検出プログラム２２２、タッチオン・オフ検出プログラム２２３、相対座標算出プログラム２２４、座標変化算出プログラム２２５、速度計算プログラム２２６、角度計算プログラム２２７、第１オブジェクト表示制御プログラム２２８、第２オブジェクト表示制御プログラム２２９、オブジェクト衝突検出プログラム２３０、目標物表示プログラム２３１、および得点算出プログラム２３２などによって構成される。
【００５４】
ゲームメインプログラム２２１は、ゲーム処理全体の動作を制御するためのプログラムである。タッチ座標検出プログラム２２２は、後述するタッチパネルデータバッファ２３３からのデータを読み出すことによって、プレイヤがタッチパネル１３を操作したタッチパネル座標位置（タッチ座標）を検出するプログラムである。タッチオン・オフ検出プログラム２２３は、プレイヤがタッチパネル１３をタッチしているか否かを検出するプログラムである。
【００５５】
相対座標算出プログラム２２４は、タッチ座標と第１オブジェクト（バーＢ）の表示位置との間の相対座標を算出するプログラムである。座標変化算出プログラム２２５は、単位時間毎にタッチ座標の変化を算出するプログラムである。速度計算プログラム２２６および角度計算プログラム２２７は、単位時間毎のタッチ座標変化を示す移動ベクトルに基づいて、打撃後に第２オブジェクト（甲羅Ｓ）に与えられる移動速度および移動方向を潜在的に計算するプログラムである。なお、速度計算プログラム２２６および角度計算プログラム２２７は、前回計算した第２オブジェクトの移動速度および移動方向とタッチ座標変化とに基づいて、新たな移動速度および移動方向に更新する。
【００５６】
第１オブジェクト表示制御プログラム２２８は、第１オブジェクト（バーＢ）の画像を第２ＬＣＤ１２に表示させるためのものである。第２オブジェクト表示制御プログラム２２９は、第２オブジェクト（甲羅Ｓ）の画像を第１ＬＣＤ１１および第２ＬＣＤ１２に表示させるためのものである。目標物表示プログラム２３１は、目標物（的Ｔ）の画像を第１ＬＣＤ１１に表示させるためのものである。
【００５７】
オブジェクト衝突検出プログラム２３０は、第１オブジェクトと第２オブジェクトとが衝突したか否かを検出するプログラムであり、それぞれのオブジェクトのゲーム空間座標に基づいて判断する。得点算出プログラム２３２は、停止した第２オブジェクトと目標物とのゲーム空間に置ける位置関係に基づいて、ゲームで加算される得点を算出するためのプログラムである。
【００５８】
データ記憶領域２２ｂに適時格納されるデータ群は、例えばタッチパネルデータバッファ２３３、座標変化値格納バッファ２３４、速度記憶バッファ２３５、角度記憶バッファ２３６、第１オブジェクト表示位置データ２３７、第２オブジェクト表示位置データ２３８、第１オブジェクト画像データ２３９、第２オブジェクト画像データ２４０、目標物表示データ２４１、および得点データバッファ２４２などである。
【００５９】
タッチパネルデータバッファ２３３は、タッチパネル１３から入力する入力情報（タッチパネル座標位置；タッチ座標）を一時的に保存しておく記憶領域である。座標変化値格納バッファ２３４は、座標変化算出プログラム２２５が算出した単位時間毎のタッチ座標の変化を一時的に保存しておく記憶領域である。速度記憶バッファ２３５および角度記憶バッファ２３６は、それぞれ速度計算プログラム２２６および角度計算プログラム２２７が第２オブジェクトに与えられる移動速度および移動方向を更新するために、前回計算した第２オブジェクトの移動速度および移動方向を一時的に保存しておく記憶領域である。得点データバッファ２４２は、得点算出プログラム２３２が算出した得点を一時的に保存しておく記憶領域である。
【００６０】
第１オブジェクト表示位置データ２３７は、第１オブジェクトをゲーム空間内に設けられた平面上に配置するための位置データであり、具体的には以下の説明でバー座標（Ｂｘ、Ｂｙ）として示される座標データである。第２オブジェクト表示位置データ２３８は、第２オブジェクトをゲーム空間内に設けられた平面上に配置するための位置データであり、具体的には以下の説明で甲羅Ｓを配置するための位置を示す座標データである。第１オブジェクト画像データ２３９、第２オブジェクト画像データ２４０、および目標物表示データ２４１は、それぞれゲーム画面にオブジェクトを表示するための画像データであり、具体的には以下の説明でバーＢ、甲羅Ｓ、および的Ｔをゲーム画面に表示するための画像データである。
【００６１】
次に、図５〜図９を参照して、ゲーム装置１で処理されるゲーム処理の動作について説明する。なお、図５は、ゲーム装置１で処理されるゲーム処理の動作の前半部を示すフローチャートである。図６は、ゲーム装置１で処理されるゲーム処理の動作の後半部を示すフローチャートである。図７は、図５のステップ６６における甲羅移動用データ算出処理の詳細な動作を示すサブルーチンである。図８は、図６のステップ７１におけるθ補正処理を説明するための説明図である。図９は、図７のステップ８９におけるθ補正処理を説明するための説明図である。
【００６２】
まず、ゲーム装置１の電源（図示せず）がＯＮされると、ＣＰＵコア２１によってブートプログラム（図示せず）が実行され、これによりカートリッジ１７に格納されているゲームプログラムがＷＲＡＭ２２にロードされる。当該ロードされたゲームプログラムがＣＰＵコア２１に実行されることによって、図５および図６に示すステップ（図５〜図７では「Ｓ」と略称する）が実行される。そして、上記ゲームプログラムを実行することによって、当該ゲームプログラムに応じたゲーム画像などが第１ＬＣＤ１１および第２ＬＣＤ１２に描画される。
【００６３】
図５において、ＣＰＵコア２１は、ゲーム処理における初期化処理を行い、（ステップ５１）処理を次のステップに進める。具体的には、ＣＰＵコア２１は、タッチ中フラグをオフに設定し、移動速度Ｖｐ＝０、移動方向は、基準値としてｘ軸の正方向を０°としたときにはθｐ＝９０°（ｙ軸の正方向）に設定し、バー座標（Ｂｘ、Ｂｙ）を初期位置に設定する。なお、座標系によっては、タッチパネル下向きをｙ軸の正方向とすることがあるので、この場合はθｐ＝２７０°に設定する。
【００６４】
次に、ＣＰＵコア２１は、プレイヤがタッチパネル１３をタッチ操作することによって得られるタッチ座標（ｔｘ、ｔｙ）を検出する（ステップ５２）。なお、ステップ５２は、他のステップを含めてゲーム処理の処理単位である表示フレーム毎に繰り返されて処理される。そして、ＣＰＵコア２１は、プレイヤがタッチパネル１３をタッチ操作しているか否かを判断する（ステップ５３）。プレイヤがタッチパネル１３をタッチ操作している場合、ＣＰＵコア２１は、処理を次のステップ５４に進める。一方、プレイヤがタッチパネル１３をタッチ操作していない場合、ＣＰＵコア２１は、タッチ中フラグをオフに設定し（ステップ５８）、上記ステップ５２に戻って処理を繰り返す。
【００６５】
ステップ５４において、ＣＰＵコア２１は、タッチ中フラグがオンに設定されているか否かを判断する。そして、ＣＰＵコア２１は、タッチ中フラグがオンの場合に処理を次のステップ５９に進め、タッチ中フラグがオフの場合に処理を次のステップ５５に進める。
【００６６】
ステップ５５において、ＣＰＵコア２１は、バー座標とタッチ座標との相対座標を求める。具体的には、ＣＰＵコア２１は、バー座標（Ｂｘ、Ｂｙ）およびタッチ座標（ｔｘ、ｔｙ）を用いて、相対座標（Ｒｘ、Ｒｙ）を
Ｒｘ＝Ｂｘ−ｔｘ
Ｒｙ＝Ｂｙ−ｔｙ
で求める。そして、ＣＰＵコア２１は、タッチ中フラグをオンに設定し（ステップ５６）、処理を次のステップに進める。
【００６７】
次に、ＣＰＵコア２１は、現在のタッチ座標を保存し（ステップ５７）、上記ステップ５２に戻って処理を繰り返す。具体的には、ＣＰＵコア２１は、現在のタッチ座標（ｔｘ、ｔｙ）をタッチ座標（ｔｐｘ、ｔｐｙ）として保存する。
【００６８】
上記ステップ５４でタッチ中フラグがオンに設定されている場合、ＣＰＵコア２１は、前回のタッチ座標と現在のタッチ座標との間の距離が２ドット以上離れているか否かを判断する（ステップ５９）。具体的には、ＣＰＵコア２１は、上記ステップ５７で保存したタッチ座標（ｔｐｘ、ｔｐｙ）と上記ステップ５２で検出した現在のタッチ座標（ｔｘ、ｔｙ）との距離を算出し、当該距離が２ドット以上か否かを判断する。そして、２ドット以上である場合、ＣＰＵコア２１は、処理を次のステップ６０に進める。一方、２ドット未満である場合、ＣＰＵコア２１は、上記ステップ５２に戻って処理を繰り返す。
【００６９】
ステップ６０において、ＣＰＵコア２１は、現在のタッチ座標および相対座標を用いて、バー座標を求める。具体的には、ＣＰＵコア２１は、タッチ座標（ｔｘ、ｔｙ）および相対座標（Ｒｘ、Ｒｙ）を用いて、バー座標（Ｂｘ、Ｂｙ）を
Ｂｘ＝Ｒｘ＋ｔｘ
Ｂｙ＝Ｒｙ＋ｔｙ
で求める。そして、ＣＰＵコア２１は、処理を次のステップに進める。
【００７０】
次に、ＣＰＵコア２１は、上記ステップ６０で求められたバー座標（Ｂｘ、Ｂｙ）が所定領域外か否かを判断する（ステップ６１）。ここで、所定領域とは、バーＢ（図３参照）がゲーム空間に設定された平面上を移動できる範囲として予め設定された領域である。そして、ＣＰＵコア２１は、バー座標が所定領域外である場合に処理を次のステップ６２に進め、所定領域内である場合に処理を次のステップ６４に進める。
【００７１】
ステップ６２において、ＣＰＵコア２１は、バー座標（Ｂｘ、Ｂｙ）が所定領域内になるようにバー座標（Ｂｘ、Ｂｙ）を補正する。そして、ＣＰＵコア２１は、上記ステップ６２で補正されたバー座標（Ｂｘ、Ｂｙ）に基づいて、新たな相対座標を求め（ステップ６３）、処理を次のステップ６４に進める。具体的には、ＣＰＵコア２１は、バー座標（Ｂｘ、Ｂｙ）およびタッチ座標（ｔｘ、ｔｙ）を用いて、新たな相対座標（Ｒｘ、Ｒｙ）を
Ｒｘ＝Ｂｘ−ｔｘ
Ｒｙ＝Ｂｙ−ｔｙ
で求める。
【００７２】
ステップ６４において、ＣＰＵコア２１は、上記ステップ６０またはステップ６２で求められたバー座標（Ｂｘ、Ｂｙ）に基づいて、第２ＬＣＤ１２に表示するバーＢの表示を更新する。そして、ＣＰＵコア２１は、甲羅ＳとバーＢが衝突したか否かを判断する（ステップ６５）。具体的には、ＣＰＵコア２１は、バー座標（Ｂｘ、Ｂｙ）と甲羅Ｓの位置座標とを用いて、両者の衝突を判断する。そして、ＣＰＵコア２１は、甲羅ＳとバーＢが衝突したと判断した場合、処理を次のステップ７１（図６）に進める。一方、ＣＰＵコア２１は、甲羅ＳとバーＢが衝突していないと判断した場合、処理を次のステップ６６に進める。
【００７３】
ステップ６６において、ＣＰＵコア２１は、甲羅移動用データを算出し、処理を上記ステップ５７に進める。以下、図７を参照して、ステップ６６における甲羅移動用データの算出の詳細な動作を説明する。
【００７４】
図７において、ＣＰＵコア２１は、前回のタッチ座標から現在のタッチ座標までの移動ベクトルを算出し（ステップ８１）、処理を次のステップに進める。具体的には、ＣＰＵコア２１は、上記ステップ５７で保存したタッチ座標（ｔｐｘ、ｔｐｙ）と上記ステップ５２で検出した現在のタッチ座標（ｔｘ、ｔｙ）を用いて、移動ベクトル（Δｔｘ、Δｔｙ）を
Δｔｘ＝ｔｘ−ｔｐｘ
Δｔｙ＝ｔｙ−ｔｐｙ
で算出する。
【００７５】
次に、ＣＰＵコア２１は、上記ステップ８１で算出した移動ベクトルの大きさを速度Ｖとして算出し（ステップ８２）、処理を次のステップに進める。具体的には、ＣＰＵコア２１は、速度Ｖを
【数１】
2006122240.tif 000003
で算出する。なお、求められる速度値が処理的に大きすぎるなど、不都合を含む場合であれば、所定の係数をかけて補正してもよい。
【００７６】
次に、ＣＰＵコア２１は、上記ステップ８２で算出された速度Ｖが予め設定された最高速度Ｖｍａｘより大きいか否かを判断する（ステップ８３）。そして、ＣＰＵコア２１は、速度Ｖが最高速度Ｖｍａｘより大きい場合、速度Ｖを最高速度Ｖｍａｘにして（ステップ８４）、処理を次のステップ８５に進める。一方、ＣＰＵコア２１は、速度Ｖが最高速度Ｖｍａｘ以下の場合、そのまま処理を次のステップ８５に進める。
【００７７】
ステップ８５において、ＣＰＵコア２１は、速度Ｖが前回に設定されて保存されている速度Ｖｐより小さいか否かを判断する。そして、ＣＰＵコア２１は、速度Ｖが速度Ｖｐより小さい場合、速度Ｖｐと速度Ｖとの平均を新たな速度Ｖとして（ステップ８６）、処理を次のステップ８７に進める。具体的には、ＣＰＵコア２１は、新たな速度ＶをＶｐ−（Ｖｐ−Ｖ）／２で算出する。一方、ＣＰＵコア２１は、速度Ｖが速度Ｖｐ以上の場合、そのまま処理を次のステップ８７に進める。
【００７８】
ステップ８７において、ＣＰＵコア２１は、現在設定されている速度Ｖを速度Ｖｐにして当該速度Ｖｐを保存する。そして、ＣＰＵコア２１は、移動ベクトルの角度θを算出し（ステップ８８）、処理を次のステップに進める。具体的には、ＣＰＵコア２１は、移動ベクトル（Δｔｘ、Δｔｙ）を用いて角度θを
θ＝ａｒｃｔａｎ（Δｔｙ／Δｔｘ）
で算出する。
【００７９】
次に、ＣＰＵコア２１は、上記ステップ８８で算出した角度θの補正処理を行い（ステップ８９）、処理を次のステップに進める。図９に示すように、ＣＰＵコア２１は、角度θが２７０°＜θ≦３６０°の場合（図９に示す範囲Ｒｃ）、θ＝０°に補正する。また、ＣＰＵコア２１は、１８０°＜θ≦２７０°の場合（図９に示す範囲Ｒｄ）、θ＝１８０°に補正する。
【００８０】
次に、ＣＰＵコア２１は、前回に設定された角度θｐと現在設定されている角度θとの平均を新たな角度θとして算出する（ステップ９０）。具体的には、ＣＰＵコア２１は、新たな角度θを（θ＋θｐ）／２で算出する。そして、ＣＰＵコア２１は、現在設定されている角度θを角度θｐにして当該角度θｐを保存し（ステップ９１）、当該サブルーチンによる処理を終了する。
【００８１】
図６を参照して、ステップ７１以降の処理について説明する。上述したように、ＣＰＵコア２１は、甲羅ＳとバーＢが衝突したと判断した場合（ステップ６５でＹｅｓ）、処理をステップ７１に進める。ステップ７１において、ＣＰＵコア２１は、上記ステップ６６で算出した角度θの補正処理を行い、処理を次のステップに進める。図８に示すように、ＣＰＵコア２１は、角度θが０°≦θ＜θ１の場合（図８に示す範囲Ｒａ；０°＜θ１＜９０°）、θ＝θ１に補正する。また、ＣＰＵコア２１は、θ２＜θ≦１８０°の場合（図８に示す範囲Ｒｂ；９０°＜θ２＜１８０°）、θ＝θ２に補正する。
【００８２】
次に、ＣＰＵコア２１は、甲羅Ｓの移動速度を速度Ｖおよび甲羅Ｓの移動方向を角度θとして、ゲーム空間に設定された平面に沿って甲羅Ｓを移動させて、甲羅Ｓの位置座標を算出する（ステップ７２）。そして、ＣＰＵコア２１は、速度Ｖを所定量減速して（ステップ７３）、処理を次のステップに進める。
【００８３】
次に、ＣＰＵコア２１は、速度Ｖが０以下か否かを判断する（ステップ７４）。そして、ＣＰＵコア２１は、速度Ｖが０以下の場合、処理を次のステップ７５に進める。一方、ＣＰＵコア２１は、速度Ｖが０より大きい場合、上記ステップ７１に戻って処理を繰り返す。
【００８４】
ステップ７５において、ＣＰＵコア２１は、得点処理を行い、当該フローチャートによる処理を終了する。ここで、ＣＰＵコア２１は、移動速度が０になった（停止した）甲羅Ｓの位置と的Ｔとの位置関係に応じて得点を加算し、典型的には、甲羅Ｓの停止位置が的Ｔの中心に近いほど、加算される得点を高くする。
【００８５】
なお、上記ステップ８５の判断ステップによって速度Ｖと前回の速度Ｖｐとの平均化処理が減速時のみ行われる。これによって、プレイヤがタッチパネル１３に対してタッチ操作する速度が加速しているときはその速度を入力情報とし、減速しているときはその速度を鈍らせるような処理を行うために行われている。このような効果を期待しない場合、上記ステップ８５の処理を削除して、全ての速度Ｖにおいて当該速度Ｖと前回の速度Ｖｐとの平均化処理を行ってもかまわない。
【００８６】
また、速度Ｖや角度θの平均化処理は、前回の値との間の２値に対する平均化処理を行ったが、３つ以上の平均化処理を行ってもかまわない。速度記憶バッファ２３５および角度記憶バッファ２３６に過去の値を格納することによって、さらに多くの値に対する平均化処理を行うことができる。
【００８７】
このように、プレイヤがタッチ操作によって甲羅Ｓ等を打撃するバーＢ等などの第１オブジェクトを操作し、その操作の仕方によって、甲羅Ｓ等の第２オブジェクトの動作内容が変わるようなゲームを提供できる。具体的には、第１オブジェクトと第２オブジェクトとが所定の位置関係（衝突）になったときに、第２オブジェクトが移動を開始するので、例えばゴルフゲームなど、ボール等の被打撃オブジェクトを打撃するようなゲームにおいてその興趣性を高めることができる。そして、第２オブジェクト（甲羅Ｓ）の移動速度および移動方向は、プレイヤがタッチパネル１３をタッチ操作した入力情報に基づいて単位時間毎に算出されているが、速度Ｖおよび角度θがそれぞれ前回算出した値と平均化されることによって求められているため、タッチ操作に生じる入力ぶれの影響を低減することができる。また、プレイヤがタッチパネル１３をタッチ操作した全ての入力情報が累積されて最終的な移動速度および移動方向が決定されるため、ゲーム装置用コントローラのスイッチやジョイスティック操作では体験できないような、タッチパネル特有の操作感をプレイヤに提供することができる。さらに、バーＢがタッチパネル１３からの相対的な入力情報で表示制御されるので、タッチパネル１３における全ての操作面を用いてバーＢを移動させる操作を行うことができ、必ずしも操作対象のバーＢを直接触れるようにする必要が無くなり、プレイヤがバーＢを視認しやすくなる。
【００８８】
なお、上述した実施例では、プレイヤが第１オブジェクトを操作して第２オブジェクトに衝突させることによって第２オブジェクトを移動させているが、他の方法で第２オブジェクトを移動させてもかまわない。例えば、第１および第２オブジェクトが所定の位置関係（所定の距離まで接近するなど）になったときに、第２オブジェクトが移動速度をＶおよび移動方向をθとして移動開始するゲームでもかまわない。また、プレイヤが第２オブジェクト（つまり、甲羅Ｓ）を直接操作して平面上を移動させてもかまわない。この場合、タッチパネル１３からスタイラス１６が離れたタイミングや操作スイッチ１４が押下されたタイミングに応じて、第２オブジェクトが移動速度をＶおよび移動方向をθとして移動開始すれば、同様の効果を得ることができる。
【００８９】
また、上記実施例では、ゲーム装置１にタッチパネル１３が一体的に設けられているが、ゲーム装置とタッチパネルとを別体にして構成しても、本発明を実現できることは言うまでもない。また、上記実施例では表示器を２つ設けたが、表示器は１つであってもかまわない。すなわち、上記実施例において、第２ＬＣＤ１２設けず単にタッチパネル１３のみを設けるようにしてもよい。また、上記実施例において、第２ＬＣＤ１２を設けず第１ＬＣＤ１１の上面にタッチパネル１３を設けても良い。
【００９０】
また、上記実施例では、ゲーム装置１にタッチパネル１３が一体的に設けられているが、タッチパネルを入力装置の１つとする一般的なパーソナルコンピュータなどの情報処理装置でもかまわない。この場合、この情報処理装置のコンピュータが実行するプログラムは、典型的にゲームに用いられるゲームプログラムに限らず、上述した方式で得られた移動速度および移動方向が上記情報処理装置に対する操作処理に用いられる汎用的なプログラムである。
【産業上の利用可能性】
【００９１】
本発明に係るゲーム装置およびゲームプログラムは、タッチパネルへのタッチ操作に生じる入力ぶれの影響を低減することができ、タッチパネル等を入力手段とするゲーム装置や当該ゲーム装置で実行されるゲームプログラムとして有用である。
【図面の簡単な説明】
【００９２】
【図１】本発明の一実施形態に係るゲームプログラムを実行するゲーム装置の外観図
【図２】図１のゲーム装置１のブロック図
【図３】図１の第１ＬＣＤ１１および第２ＬＣＤ１２にそれぞれ表示されたゲーム画面の一例
【図４】図１のカートリッジ１７から適時読み出して格納されるＷＲＡＭ２２のイメージを示す図
【図５】図１のゲーム装置１で処理されるゲーム処理の動作の前半部を示すフローチャート
【図６】図１のゲーム装置１で処理されるゲーム処理の動作の後半部を示すフローチャート
【図７】図５のステップ６６における甲羅移動用データ算出処理の詳細な動作を示すサブルーチン
【図８】図６のステップ７１におけるθ補正処理を説明するための説明図
【図９】図７のステップ８９におけるθ補正処理を説明するための説明図
【符号の説明】
【００９３】
１…ゲーム装置
１１…第１ＬＣＤ
１２…第２ＬＣＤ
１３…タッチパネル
１４…操作スイッチ部
１５…スピーカ
１６…スタイラス
１７…カートリッジ
１７１…ＲＯＭ
１７２…ＲＡＭ
１８…ハウジング
２０…電子回路基板
２１…ＣＰＵコア
２２…ＷＲＡＭ
２３…第１ＶＲＡＭ
２４…第１ＧＰＵ
２５…第２ＶＲＡＭ
２６…第２ＧＰＵ
２７…Ｉ／Ｆ回路
２８…コネクタ
２９…ＬＣＤコントローラ
２９１…レジスタ
【図１】
2006122240.tif 000004
【図２】
2006122240.tif 000005
【図３】
2006122240.tif 000006
【図４】
2006122240.tif 000007
【図５】
2006122240.tif 000008
【図６】
2006122240.tif 000009
【図７】
2006122240.tif 000010
【図８】
2006122240.tif 000011
【図９】
2006122240.tif 000012