(57)【要約】【課題】タッチパネル等の操作領域に対する位置指示で仮想空間内のオブジェクトを処理する処理装置において、操作のレスポンスを向上させ、より操作性の優れたオブジェクト処理装置、処理プログラムを提供すること。【解決手段】操作領域を、第１の領域と当該第１の領域と接する第２の領域との少なくとも２種類に分けて定義する。そして、指示座標を検出し、当該指示座標が第１の領域又は第２の領域に含まれるかを判別する。指示座標が第１の領域内に含まれるときは、当該指示座標を基準座標として設定し、当該指示座標が第２の領域内に含まれるときは、当該指示座標よりも第１の領域側の所定座標を基準座標として設定する。そして、基準座標と指示座標との位置関係に基づいて、仮想空間におけるオブジェクトの動作制御を行う。【選択図】図８
2007300961.tif 000002
【特許請求の範囲】
【請求項１】
操作領域に対するプレイヤの指示位置に対応する指示座標に基づいて仮想空間内のオブジェクトに対する処理を実行するオブジェクト処理装置であって、
前記操作領域は、第１の領域と当該第１の領域と接する第２の領域との少なくとも２種類に分けて定義されており、
前記指示座標を検出する指示座標検出部と、
前記指示座標が前記第１の領域又は前記第２の領域に含まれるかを判別する指示座標判別部と、
前記指示座標が前記第１の領域内に含まれると判別されたとき、当該指示座標を基準座標として設定し、当該指示座標が前記第２の領域内に含まれると判別されたとき、当該指示座標よりも第１の領域側の所定座標を基準座標として設定する基準座標設定部と、
前記基準座標と前記指示座標との位置関係に基づいて、前記仮想空間における前記オブジェクトの動作制御を行う動作制御部とを備える、オブジェクト処理装置。
【請求項２】
前記動作制御部は、前記基準座標と前記指示座標との位置関係によって決まる方向および当該位置関係によって決まる距離の少なくとも一方に基づいて、前記オブジェクトの動作制御を行う、請求項１に記載のオブジェクト処理装置。
【請求項３】
前記動作制御部は、前記基準座標と前記指示座標との位置関係によって決まる方向に、前記オブジェクトの移動方向を制御する、請求項２に記載のオブジェクト処理装置。
【請求項４】
前記動作制御部は、前記基準座標と前記指示座標との位置関係によって決まる距離に応じた移動速度によって、前記オブジェクトの移動速度を制御する、請求項２に記載のオブジェクト処理装置。
【請求項５】
前記基準座標設定部は、前記指示座標が前記第２の領域内にあると判別されたとき、前記第１の領域と第２の領域との境界上のいずれかの座標を基準座標として設定する、請求項１に記載のオブジェクト処理装置。
【請求項６】
前記基準座標設定部は、前記境界上のいずれかの座標のうち、前記指示座標に最も近い座標を基準座標として設定する、請求項５に記載のオブジェクト処理装置。
【請求項７】
前記第１の領域は、前記操作領域の中央近傍の領域を含む、請求項１に記載のオブジェクト処理装置。
【請求項８】
前記基準座標設定部は、当該基準座標設定部によって基準座標が設定された後かつ前記指示座標検出部によって時間の経過に伴い連続して指示座標が検出されているとき、前記指示座標判別部の結果にかかわらず、当該連続して検出されている期間の最初に設定された基準座標を新たな基準座標とする、請求項１に記載のオブジェクト処理装置。
【請求項９】
前記基準座標設定部は、当該基準座標設定部によって基準座標が設定された後かつ前記指示座標検出部によって時間の経過に伴い連続して指示座標が検出されているとき、前記指示座標が第１の領域内に含まれる場合には基準座標の位置を変化させず、当該指示座標が第２の領域内に含まれる場合には当該指示座標よりも第１の領域側の所定座標を基準座標として設定する、請求項１に記載のオブジェクト処理装置。
【請求項１０】
前記操作領域には、前記第１の領域を含む第３の領域が定義されており、
前記指示座標判別部は、前記基準座標設定部によって基準座標が設定された後かつ前記指示座標検出部によって時間の経過に伴い連続して指示座標が検出されているとき、当該指示座標が前記第３の領域を外れたか否かをさらに判別し、
前記基準座標設定部は、前記第３の領域を外れていないと判別される場合には基準座標の位置を変化させず、前記第３の領域を外れたと判別される場合には当該指示座標よりも第１の領域側の所定座標を基準座標として設定する、請求項９に記載のオブジェクト処理装置。
【請求項１１】
前記第２の領域内には前記第１領域側にさらに第４の領域が定義されており、
前記第４の領域に基準座標が含まれており、かつ前記指示座標検出部によって時間の経過に伴い連続して指示座標が検出されているとき、前記基準座標を前記操作領域の中央方向に時間の経過とともに徐々に近づけるように当該基準座標の位置を変更する基準座標移動部をさらに備える、請求項１に記載のオブジェクト処理装置。
【請求項１２】
操作領域に対するプレイヤの指示位置に対応する指示座標に基づいて仮想空間内のオブジェクトに対する処理を実行するオブジェクト処理装置のコンピュータで実行されるオブジェクト処理プログラムであって、
前記操作領域は、第１の領域と当該第１の領域と接する第２の領域との少なくとも２種類に分けて定義されており、
前記指示座標を検出する指示座標検出ステップと、
前記指示座標が前記第１の領域又は前記第２の領域に含まれるかを判別する指示座標判別ステップと、
前記指示座標が前記第１の領域内に含まれると判別されたとき、当該指示座標を基準座標として設定し、当該指示座標が前記第２の領域内に含まれると判別されたとき、当該指示座標よりも第１の領域側の所定座標を基準座標として設定する基準座標設定ステップと、
前記基準座標と前記指示座標との位置関係に基づいて、前記仮想空間における前記オブジェクトの動作制御を行う動作制御ステップとを前記コンピュータに実行させる、オブジェクト処理プログラム。
【請求項１３】
前記動作制御ステップは、前記基準座標と前記指示座標との位置関係によって決まる方向および当該位置関係によって決まる距離の少なくとも一方に基づいて、前記オブジェクトの動作制御を行う、請求項１２に記載のオブジェクト処理プログラム。
【請求項１４】
前記動作制御ステップは、前記基準座標と前記指示座標との位置関係によって決まる方向に、前記オブジェクトの移動方向を制御する、請求項１３に記載のオブジェクト処理プログラム。
【請求項１５】
前記動作制御ステップは、前記基準座標と前記指示座標との位置関係によって決まる距離に応じた移動速度によって、前記オブジェクトの移動速度を制御する、請求項１３に記載のオブジェクト処理プログラム。
【請求項１６】
前記基準座標設定ステップは、前記指示座標が前記第２の領域内にあると判別されたとき、前記第１の領域と第２の領域との境界上のいずれかの座標を基準座標として設定する、請求項１２に記載のオブジェクト処理プログラム。
【請求項１７】
前記基準座標設定ステップは、前記境界上のいずれかの座標のうち、前記指示座標に最も近い座標を基準座標として設定する、請求項１６に記載のオブジェクト処理プログラム。
【請求項１８】
前記第１の領域は、前記操作領域の中央近傍の領域を含む、請求項１２に記載のオブジェクト処理プログラム。
【請求項１９】
前記基準座標設定ステップは、当該基準座標設定ステップによって基準座標が設定された後かつ前記指示座標検出ステップによって時間の経過に伴い連続して指示座標が検出されているとき、前記指示座標判別ステップの判別結果にかかわらず、当該連続して検出されている期間の最初に設定された基準座標を新たな基準座標とする、請求項１２に記載のオブジェクト処理プログラム。
【請求項２０】
前記基準座標設定ステップは、当該基準座標設定ステップによって基準座標が設定された後かつ前記指示座標検出ステップによって時間の経過に伴い連続して指示座標が検出されているとき、前記指示座標が第１の領域内に含まれる場合には基準座標の位置を変化させず、当該指示座標が第２の領域内に含まれる場合には当該指示座標よりも第１の領域側の所定座標を基準座標として設定する、請求項１２に記載のオブジェクト処理プログラム。
【請求項２１】
前記操作領域には、前記第１の領域を含む第３の領域が定義されており、
前記指示座標判別ステップは、前記基準座標設定ステップによって基準座標が設定された後かつ前記指示座標検出ステップによって時間の経過に伴い連続して指示座標が検出されているとき、当該指示座標が前記第３の領域を外れたか否かをさらに判別し、
前記基準座標設定ステップは、前記第３の領域を外れていないと判別される場合には基準座標の位置を変化させず、前記第３の領域を外れたと判別される場合には当該指示座標よりも第１の領域側の所定座標を基準座標として設定する、請求項２０に記載のオブジェクト処理プログラム。
【請求項２２】
前記第２の領域内には前記第１領域側にさらに第４の領域が定義されており、
前記第４の領域に基準座標が含まれており、かつ前記指示座標検出ステップによって時間の経過に伴い連続して指示座標が検出されているとき、前記基準座標を前記操作領域の中央方向に時間の経過とともに徐々に近づけるように当該基準座標の位置を変更する基準座標移動ステップをさらに実行させる、請求項１２に記載のオブジェクト処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクト処理装置、オブジェクト処理プログラムに関し、より特定的には、操作領域に対するプレイヤの指示位置に対応する指示座標に基づいて仮想空間内のオブジェクトに対する処理を実行するオブジェクト処理装置およびオブジェクト処理プログラムに関する。
【背景技術】
【０００２】
従来より、プレイヤがタッチパネル等のポインティングデバイスを用いて操作する入力装置やゲーム装置が開発されている（例えば、特許文献１〜３）。特許文献１で開示された入力装置では、プレイヤがタッチパネルを使用し、予めタッチパネル上の決められた原点から、ポインティングした点への方向および距離を、カーソルの移動方向および移動速度に利用していた。また、特許文献２で開示された入力装置では、プレイヤがタッチパネルをタッチした指の動きのベクトル量に応じた動きで、タッチして選択された対象をゲーム画面上で移動させる。また、特許文献３に開示されたゲームプログラムでは、タッチした指の移動方向に応じて、タッチ入力した原点が指示点に引き寄せられるように当該原点を移動させている。
【特許文献１】特開平１１−５３１１５号公報
【特許文献２】特開平７−１８２０９２号公報
【特許文献３】特開２００６−３４５１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述したような上記特許文献に開示された装置においては、従来から以下に示す問題点があった。まず、上記特許文献１に開示された装置では、タッチパネル上に予め原点となる点が決められている。そのため、例えば、プレイヤの操作対象が自動車や飛行機等のようなゲームにおいて、真っ直ぐ進めたい場合であっても、原点から少しずれた入力をしただけで、進行方向がブレてしまうという問題がある。また、指の感覚で原点を感じ取ることができないため、原点の位置を目で確認しながら操作する必要がある。そのため、ゲームのような素早い操作が要求される用途においては、ゲーム中に手元をいちいち確認しながら操作するということは、操作性の低下につながり、快適にゲームを楽しむことができない。
【０００４】
また、特許文献２に開示された装置では、プレイヤの指の動きのベクトルに応じた動きで、タッチして選択された対象をゲーム画面上で移動させる方式が開示されている。しかし、この場合はプレイヤの指が移動しない限り入力がされないため、この方式でゲームオブジェクトを移動させる場合、指を動かし続けなければならず、ゲーム内容によっては、操作しにくくなるという問題がある。
【０００５】
また、特許文献３に開示された装置では、プレイヤの操作対象が自動車や飛行機等のようなゲームにおいて、急にハンドルをきるような移動量の大きな操作を行いたいとき、例えば、いきなり進行方向を右に曲げたいようなときは、一度タッチパネルの中央部にタッチしてから指を大きく右に動かす必要があり、このような操作方法は、ゲーム内容によっては、操作しにくいという問題がある。
【０００６】
それ故に、本発明の目的は、操作領域に対する位置指示で仮想空間内のオブジェクトを処理する処理装置において、操作のレスポンスを向上させ、より操作性の優れたオブジェクト処理装置およびオブジェクト処理プログラムを提供することである。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００８】
第１の発明は、操作領域（１０２）に対するプレイヤの指示位置（スタイラスペン１７で指示する操作領域１０２上の点）に対応する指示座標に基づいて仮想空間内のオブジェクト（１０１）に対する処理を実行するオブジェクト処理装置（１０）であって、指示座標検出部（３１）と、指示座標判別部（３１）と、基準座標設定部（３１）と、動作制御部（３１）とを備える。また、操作領域は、第１の領域と当該第１の領域と接する第２の領域との少なくとも２種類に分けて定義されている。指示座標検出部は、指示座標を検出する。指示座標判別部は、指示座標が前記第１の領域又は第２の領域に含まれるかを判別する。基準座標設定部は、指示座標が前記第１の領域内に含まれると判別されたとき、当該指示座標を基準座標として設定し、当該指示座標が第２の領域内に含まれると判別されたとき、当該指示座標よりも第１の領域側の所定座標を基準座標として設定する。動作制御部は、基準座標と指示座標との位置関係に基づいて、仮想空間におけるオブジェクトの動作制御を行う。
【０００９】
第２の発明は、第１の発明において、動作制御部は、基準座標と指示座標との位置関係によって決まる方向および当該位置関係によって決まる距離の少なくとも一方に基づいて、前記オブジェクトの動作制御を行う。
【００１０】
第３の発明は、第２の発明において、動作制御部は、基準座標と指示座標との位置関係によって決まる方向に、オブジェクトの移動方向を制御する。
【００１１】
第４の発明は、第２の発明において、動作制御部は、基準座標と指示座標との位置関係によって決まる距離に応じた移動速度によって、オブジェクトの移動速度を制御する。
【００１２】
第５の発明は、第１の発明において、基準座標設定部は、指示座標が第２の領域内にあると判別されたとき、第１の領域と第２の領域との境界上のいずれかの座標を基準座標として設定する。
【００１３】
第６の発明は、第５の発明において、基準座標設定部は、前記境界上のいずれかの座標のうち、前記指示座標に最も近い座標を基準座標として設定する。
【００１４】
第７の発明は、第１の発明において、第１の領域は、前記操作領域の中央近傍の領域を含む。
【００１５】
第８の発明は、第１の発明において、基準座標設定部は、当該基準座標設定部によって基準座標が設定された後かつ指示座標検出部によって時間の経過に伴い連続して指示座標が検出されているとき、指示座標判別部の結果にかかわらず、当該連続して検出されている期間の最初に設定された基準座標を新たな基準座標とする。
【００１６】
第９の発明は、第１の発明において、基準座標設定部は、当該基準座標設定部によって基準座標が設定された後かつ指示座標検出部によって時間の経過に伴い連続して指示座標が検出されているとき、指示座標が第１の領域内に含まれる場合には基準座標の位置を変化させず、当該指示座標が第２の領域内に含まれる場合には当該指示座標よりも第１の領域側の所定座標を基準座標として設定する。
【００１７】
第１０の発明は、第９の発明において、操作領域には、前記第１の領域を含む第３の領域が定義されている。また、指示座標判別部は、基準座標設定部によって基準座標が設定された後かつ指示座標検出部によって時間の経過に伴い連続して指示座標が検出されているとき、当該指示座標が第３の領域を外れたか否かをさらに判別する。また、基準座標設定部は、第３の領域を外れていないと判別される場合には基準座標の位置を変化させず、第３の領域を外れたと判別される場合には当該指示座標よりも第１の領域側の所定座標を基準座標として設定する。
【００１８】
第１１の発明は、第１の発明において、第２の領域内には第１領域側にさらに第４の領域が定義されている。また、第４の領域に基準座標が含まれており、かつ指示座標検出部によって時間の経過に伴い連続して指示座標が検出されているとき、基準座標を操作領域の中央方向に時間の経過とともに徐々に近づけるように当該基準座標の位置を変更する基準座標移動部（３１）をさらに含む。
【００１９】
第１２の発明は、操作領域に対するプレイヤの指示位置に対応する指示座標に基づいて仮想空間内のオブジェクトに対する処理を実行するオブジェクト処理装置のコンピュータで実行されるオブジェクト処理プログラムであって、指示座標検出ステップ（Ｓ２１、Ｓ３１）と、指示座標判別ステップ（Ｓ２２、Ｓ３２）と、基準座標設定ステップ（Ｓ２４、Ｓ２６、Ｓ３４、Ｓ３６）と、動作制御ステップ（Ｓ１０）とをコンピュータに実行させる。また、操作領域は、第１の領域と当該第１の領域と接する第２の領域との少なくとも２種類に分けて定義されている。指示座標検出ステップは、指示座標を検出する。指示座標判別ステップは、指示座標が第１の領域又は前記第２の領域に含まれるかを判別する。基準座標設定ステップは、前記指示座標が前記第１の領域内に含まれると判別されたとき、当該指示座標を基準座標として設定し、当該指示座標が前記第２の領域内に含まれると判別されたとき、当該指示座標よりも第１の領域側の所定座標を基準座標として設定する。動作制御ステップは、基準座標と指示座標との位置関係に基づいて、仮想空間におけるオブジェクトの動作制御を行う。
【００２０】
第１３の発明は、第１２の発明において、動作制御ステップは、基準座標と指示座標との位置関係によって決まる方向および当該位置関係によって決まる距離の少なくとも一方に基づいて、オブジェクトの動作制御を行う。
【００２１】
第１４の発明は、第１３の発明において、動作制御ステップは、基準座標と指示座標との位置関係によって決まる方向に、オブジェクトの移動方向を制御する。
【００２２】
第１５の発明は、第１３の発明において、動作制御ステップは、基準座標と指示座標との位置関係によって決まる距離に応じた移動速度によって、オブジェクトの移動速度を制御する。
【００２３】
第１６の発明は、第１２の発明において、基準座標設定ステップは、指示座標が第２の領域内にあると判別されたとき、第１の領域と第２の領域との境界上のいずれかの座標を基準座標として設定する。
【００２４】
第１７の発明は、第１６の発明において、基準座標設定ステップは、境界上のいずれかの座標のうち、指示座標に最も近い座標を基準座標として設定する。
【００２５】
第１８の発明は、第１２の発明において、第１の領域は、操作領域の中央近傍の領域を含む。
【００２６】
第１９の発明は、第１２の発明において、基準座標設定ステップは、当該基準座標設定ステップによって基準座標が設定された後かつ指示座標検出ステップによって時間の経過に伴い連続して指示座標が検出されているとき、指示座標判別ステップの判別結果にかかわらず、当該連続して検出されている期間の最初に設定された基準座標を新たな基準座標とする。
【００２７】
第２０の発明は、第１２の発明において、基準座標設定ステップは、当該基準座標設定ステップによって基準座標が設定された後かつ指示座標検出ステップによって時間の経過に伴い連続して指示座標が検出されているとき、指示座標が第１の領域内に含まれる場合には基準座標の位置を変化させず、当該指示座標が第２の領域内に含まれる場合には当該指示座標よりも第１の領域側の所定座標を基準座標として設定する。
【００２８】
第２１の発明は、第２０の発明において、操作領域には、第１の領域を含む第３の領域が定義されている。また、指示座標判別ステップは、基準座標設定ステップによって基準座標が設定された後かつ指示座標検出ステップによって時間の経過に伴い連続して指示座標が検出されているとき、当該指示座標が第３の領域を外れたか否かをさらに判別する。また、基準座標設定ステップは、第３の領域を外れていないと判別される場合には基準座標の位置を変化させず、第３の領域を外れたと判別される場合には当該指示座標よりも第１の領域側の所定座標を基準座標として設定する。
【００２９】
第２２の発明は、第１２の発明において、第２の領域内には第１領域側にさらに第４の領域が定義されている。また、第４の領域に基準座標が含まれており、かつ指示座標検出ステップによって時間の経過に伴い連続して指示座標が検出されているとき、基準座標を操作領域の中央方向に時間の経過とともに徐々に近づけるように当該基準座標の位置を変更する基準座標移動ステップ（Ｓ１６７、Ｓ２０７）をさらに実行させる。
【発明の効果】
【００３０】
上記第１の発明によれば、第２の領域を指示するだけで、指示位置をある程度の距離移動させたのと同様の入力操作結果を得ることができ、また、第１の領域を指示したときは移動量が０となる入力結果を得ることができる。そのため、当該入力結果に応じてオブジェクトを移動させるような操作を行うとき等に、第２の領域を指示するだけで、移動量の大きな操作が簡単に行える。また、第１の領域では移動量が０となる入力結果を得ることができるため、例えば原点を操作領域内の所定の点に固定するときに比べ、手ぶれ等で座標情報が１点に特定できず多少変動しても、この変動を無視することができる。これにより、移動量の大きな操作と移動量が０となる操作とを手軽で且つ直感的な形で両立させることができ、操作性を高めることができる。
【００３１】
上記第２乃至第４の発明によれば、直感的な操作でオブジェクトを動作させることが可能な操作性をプレイヤに提供できる。
【００３２】
上記第５の発明によれば、上記第１と同様の効果を得ることができる。
【００３３】
上記第６の発明によれば、入力座標から最寄りの境界上に設定することにより、例えば、一旦左に切ったハンドルを右に切り返すような操作を行う際の、反対方向へ指示位置を移動させる量を少なくすることができ、操作のレスポンスを高めて操作性をよくすることができる。
【００３４】
上記第７の発明によれば、第１の領域を中央付近に配置することで、より人間の操作感覚に近い操作性を提供することができる。
【００３５】
上記第８の発明によれば、一旦基準座標が設定されれば、その後の連続的な操作においては基準位置が変化しない。そのため、操作領域の絶対座標系における基準位置に関わらず、当該基準座標を中心とした相対的な座標系における操作が可能となり、人間の操作感覚に近い操作性を提供できる。
【００３６】
上記第９の発明によれば、指示位置が第１の領域内にあるときは基準座標を動かさないため、指示位置が１点に特定できずに多少変動しても、この変動を無視することができ、いわゆる「遊び」を持たせることができる。その一方で、反対方向に大きく移動させるような操作を行う際の指示位置の移動量を減らすことができ、操作性を高めることが可能となる。
【００３７】
上記第１０の発明によれば、指示位置が第３の領域内にあるとき基準座標を動かさないため、上記第９の発明と同様にいわゆる「遊び」を持たせることができる。その一方で、反対方向に大きく移動させるような操作を行う際の指示位置の移動量を減らすことができ、操作性を高めることが可能となる。
【００３８】
上記第１１の発明によれば、時間の経過とともに基準座標を移動させることができる。これにより、例えば、プレイヤが最初は操作領域の中央から外れたところを指示したとしても、徐々に基準座標を操作領域の中央に移動させるような処理が可能となる。その結果、時間の経過とともに人間の操作感覚に合致させることができ、より操作性を高めることが可能となる。
【００３９】
また、本発明のオブジェクト処理プログラムによれば、上述した本発明のゲーム装置と同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００４０】
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
【００４１】
（第１の実施形態）
図１は、この発明の一実施例である携帯ゲーム装置１０の外観図である。図１において、この実施例の携帯ゲーム装置１０は、２つの液晶表示器（ＬＣＤ）１１及び１２を所定の配置位置となるように、ハウジング１３に収納して構成される。具体的には、第１の液晶表示器（以下、「ＬＣＤ」という）１１と第２のＬＣＤ１２を上下に配置して収納する場合は、ハウジング１３が上部ハウジング１３ａと下部ハウジング１３ｂから構成され、上部ハウジング１３ａが下部ハウジング１３ｂの上辺の一部で回動自在に支持される。上部ハウジング１３ａは、第１のＬＣＤ１１の平面形状よりも少し大きな平面形状を有し、一方主面からＬＣＤ１１の表示面を露出するように開口部が形成される。下部ハウジング１３ｂは、その平面形状が上部ハウジング１３ａよりも横長に選ばれ、横方向の略中央部にＬＣＤ１２の表示面を露出する開口部が形成され、ＬＣＤ１２を挟む何れか一方に音抜き孔１４ａが形成されるとともに、ＬＣＤ１２を挟む左右に操作スイッチ部１５が装着される。
【００４２】
操作スイッチ部１５は、ＬＣＤ１２の左横における下部ハウジング１３ｂの一方主面に装着される方向指示スイッチ１５ａ、スタートスイッチ１５ｂ、セレクトスイッチ１５ｃと、ＬＣＤ１２の右横における下部ハウジング１３ｂの一方主面に装着される動作スイッチ１５ｄ、１５ｅを含む。方向指示スイッチ１５ａは、プレイヤによって操作可能なプレイヤオブジェクト（又はプレイヤキャラクタ）の移動方向を指示したり、カーソルの移動方向の指示等に用いられる。動作スイッチ１５ｄ、１５ｅは、方向指示以外の動作、例えばアクションゲームにおいてはジャンプ、パンチ、武器を動かす等の指示、ロールプレイングゲーム（ＲＰＧ）やシミュレーションＲＰＧにおいてはアイテムの取得，武器又はコマンドの選択決定等の指示入力に使用される。また、必要に応じて、動作スイッチをさらに追加したり、下部ハウジング１３ｂにおける操作スイッチ１５の装着領域の上部面（上部側面）に側面スイッチ１５Ｌ、１５Ｒを設けてもよい。
【００４３】
ＬＣＤ１２の上面には、タッチパネル１６が装着される。タッチパネル１６は、例えば、抵抗膜方式、光学式（赤外線方式），静電容量結合式の何れの種類でもよく、その上面をスタイラスペン１７（又は指でも可）で押圧操作又は移動操作若しくは撫でる操作をしたとき、スタイラスペン１７の座標位置を検出して座標データを出力するものである。
【００４４】
上部ハウジング１３ａの側面近傍には、必要に応じてタッチパネル１６を操作するスタイラスペン１７を収納するための収納孔１４ｂが形成される。この収納孔１４ｂには、スタイラスペン１７が収納される。下部ハウジング１３ｂの側面の一部には、ゲームプログラムを記憶したメモリ（例えば、ＲＯＭ）を内蔵したメモリカード１８を着脱自在に装着するためのカートリッジ挿入部（図示せず）が形成される。カートリッジ挿入部の内部には、メモリカード１８と電気的に接続するためのコネクタ（図示せず）が内蔵される。さらに、下部ハウジング１３ｂ（又は上部ハウジング１３ａでも可）には、ＣＰＵ等の各種電子部品を実装した電子回路基板（後述の図２に示す３０）が収納される。なお、ゲームプログラムを記憶する情報記憶媒体としては、ＲＯＭ又はフラッシュメモリのような不揮発性半導体メモリに限らず、ＣＤ−ＲＯＭやＤＶＤ若しくはそれに類する光学式ディスク状記憶媒体でもよい。
【００４５】
図２は、携帯ゲーム装置１０のブロック図である。図２において、ハウジング１３に収納される電子回路基板３０には、ＣＰＵ３１が実装される。ＣＰＵ３１には、バス３２を介して、コネクタ３３が接続されるととともに、入出力インターフェース（Ｉ／Ｆ）回路３４、第１のグラフィック処理ユニット（第１ＧＰＵ）３５、第２のグラフィック処理ユニット（第２ＧＰＵ）３６、ＲＡＭ３７およびＬＣＤコントローラ４０が接続される。コネクタ３３には、メモリカード１８が着脱自在に接続される。メモリカード１８は、ゲームプログラムを格納するための記憶媒体であり、具体的には、ゲームプログラムを記憶するＲＯＭ１８０とバックアップデータを書き換え可能に記憶するＲＡＭ１８５とを搭載する。メモリカード１８のＲＯＭ１８０に記憶されたゲームプログラムはＲＡＭ３７にロードされ、ＲＡＭ３７にロードされたゲームプログラムがＣＰＵ３１によって実行される。ＣＰＵ３１がゲームプログラムを実行して得られる一時的なデータや画像を生成するためのデータがＲＡＭ３７に記憶される。Ｉ／Ｆ回路３４には、操作スイッチ部１５及びタッチパネル１６が接続されるとともに、スピーカ１９が接続される。スピーカ１９は、音抜き孔１４ａの内側位置に配置される。
【００４６】
第１ＧＰＵ３５には、第１のビデオＲＡＭ（以下「ＶＲＡＭ」）３８が接続され、第２ＧＰＵ３６には、第２のビデオＲＡＭ（以下「ＶＲＡＭ」）３９が接続される。第１ＧＰＵ３５は、ＣＰＵ３１からの指示に応じて、ＲＡＭ３７に記憶される画像を生成するためのデータに基づいて第１のゲーム画像を生成し、第１ＶＲＡＭ３８に描画する。第２ＧＰＵ３６は、ＣＰＵ３１からの指示に応じて、ＲＡＭ３７に記憶される画像を生成するためのデータに基づいて第２のゲーム画像を生成し、第２ＶＲＡＭ３９に描画する。第１ＶＲＡＭ３８および第２ＶＲＡＭ３９はＬＣＤコントローラ４０に接続される。
【００４７】
ＬＣＤコントローラ４０はレジスタ４１を含む。レジスタ４１はＣＰＵ３１からの指示に応じて０または１の値を記憶する。ＬＣＤコントローラ４０は、レジスタ４１の値が０の場合は、第１ＶＲＡＭ３８に描画されたゲーム画像をＬＣＤ１１に出力し、第２ＶＲＡＭ３９に描画されたゲーム画像をＬＣＤ１２に出力する。また、レジスタ４１の値が１の場合は、第１ＶＲＡＭ３８に描画されたゲーム画像をＬＣＤ１２に出力し、第２ＶＲＡＭ３９に描画されたゲーム画像をＬＣＤ１１に出力する。
【００４８】
Ｉ／Ｆ回路３４は、操作スイッチ部１５、タッチパネル１６、およびスピーカ１９などの外部入出力装置とＣＰＵ３１との間のデータの受け渡しを行う回路である。タッチパネル１６（タッチパネル用のデバイスドライバを含む）は、スタイラスペン１７によって入力（指示）された位置に対応する位置座標のデータを出力するものである。なお、本実施例では、表示画面の解像度は２５６ｄｏｔ×１９２ｄｏｔであり、タッチパネル１６の検出精度も表示画面に対応した２５６ｄｏｔ×１９２ｄｏｔとして説明するが、タッチパネル１６の検出精度は表示画面の解像度よりも低いものであってもよいし、高いものであってもよい。
【００４９】
次に、図３〜図７を用いて、本実施形態で想定するゲームの概要について説明する。図３は、本実施形態で想定するゲームの画面の一例である。本実施形態で想定するゲームは、３Ｄシューティングゲームである。図３において、ＬＣＤ１１には、プレイヤの操作対象となる飛行機１０１が表示されている。また、ＬＣＤ１２にもマップや操作レバーなどの画像を表示してもよい。そして、ＬＣＤ１２上に配設されたタッチパネル１６の操作面である操作領域１０２の面上をスタイラスペン１７でタッチまたは／およびドラッグ（スタイラスペン１７をタッチパネル１６上で滑らせる動作）することで飛行機１０１の操作が可能となる。具体的には、飛行機１０１の進行方向を左に向けたいときは、まず、操作領域１０２の中央領域をタッチし、そのタッチ位置からスタイラスペン１７を左にドラッグするように動かす（第１の操作方法）。これによって、飛行機１０１の機首が左に向き、進行方向が左に変化する。また、この操作方法とは別に、例えば、上記操作領域１０２の中央領域外の左端領域をいきなりタッチするだけでも、飛行機１０１の進行方向を左に向けることもできる（第２の操作方法）。これは、例えば、プレイヤが、タッチパネル１６の左端のほうを意図的に押した場合は、進行方向を左にすぐに曲げたいという意思があるものと考えられるからである。
【００５０】
次に、上記操作についての処理概要を図４〜図７を用いて説明すると、まず、本実施形態では、図４に示すように、操作領域１０２をいくつかのエリアに分ける。言い換えれば、操作領域１０２に対応する座標系の座標領域をいくつかのエリアに定義されている。ここで定義されているとは、エリアを特定するためにプログラム中に記述されている座標範囲データを指す。この座標範囲データの記述に従って分岐処理（例えばステップＳ２２，３２など）が行われる。なお、このエリアの定義は、プログラム中に記述される場合の他、例えばテーブルデータとしてプログラムとは別に持たしたり、予めハードウェア側で定義しておいたりすることもできる。図４では、Ｘ軸方向に着目して分けたエリアであって、操作領域１０２の中央付近を含んだ領域であるＸクランプエリア１０３がある。また、Ｙ軸方向に着目して分けたエリアであって、操作領域１０２の中央付近を含んだ領域であるＹクランプエリア１０４がある。そして、当該２つのクランプエリア以外のエリアである、クランプ外エリア１０６がある。このようにエリア分けした操作領域１０２において、例えば、上記の第１の操作方法で飛行機１０１の進行方向を左に向けるときは、次のような処理が行われる（ここで、説明の便宜上、タッチパネル１６の操作領域１０２の座標系については、操作領域１０２の中央の座標を（０，０）とし、左方向および下方向をマイナス値で表すものとする）。まず、図４に示すように、プレイヤが操作領域１０２の中央付近（両クランプエリアが重複しているエリア内）の点１１１をタッチオン（タッチ入力の開始）すると、当該点１１１が原点（基準座標）に設定される。そして、プレイヤが操作領域１０２の端のほうの点１１２までスタイラスペン１７をドラッグさせたとする。すると、上記原点である点１１１と、当該点１１２との座標の差分が、「Ｘ方向に−１００、Ｙ方向に０（以下、差分については、（−１００，０）のように表記する）」のように算出される。そして、当該差分に基づいて、原点から入力座標への入力方向及び原点から入力座標までの距離を算出し、飛行機１０１の進行方向を大きく変化させる（Ｘ方向に−１００の量だけ変化させる）。これにより、飛行機の進行方向を左に向けることができる。
【００５１】
なお、図５に示すように、中央付近の点１１１をタッチオンした後、スタイラスペン１７を点１１３までドラッグさせた場合は、上記原点である点１１１と、当該入力点１１３との座標の差分が、例えば、（−１０，０）のように算出される。そして、当該差分に基づいて、飛行機１０１の進行方向がほんの少しだけ左方向に変化する（−１０の量だけ変化する）ような制御が行われる。この場合は、変化量が少ないため、飛行機１０１の進行方向に大きな変化はなく、ほぼ真っ直ぐ飛び続けることになる。つまり、操作領域１０２の中央付近でスタイラスペン１７を移動させているときは、飛行機１０１の進行方向に大きな変化は起きないが、中央から端のほうにスタイラスペン１７を大きく移動させることで、進行方向を大きく変化させることができ、あたかもジョイスティックを用いたときのようなアナログの操作感覚を提供している。
【００５２】
次に、上記第２の操作方法で飛行機１０１の進行方向を左に向けるときの処理概要を説明する。この場合は、図６に示すように、プレイヤは、操作領域１０２に触れていない状態から、操作領域１０２の左端近傍にある点１１４をタッチオンする。当該点１１４は、上記Ｘクランプエリア１０３の外にある。このように、クランプエリア外の領域がタッチされたときは、Ｘ軸およびＹ軸それぞれについて、当該タッチオンした点から最寄りの境界１０７上の点を原点とする。図６の場合は、Ｘ軸方向については、Ｘクランプエリア１０３の外であるため、最寄りの境界１０７上の座標が原点のＸ座標として設定されるが、Ｙ軸方向については、Ｙクランプエリア１０４の内であるため、タッチオンした点１１４のＹ座標がそのまま原点のＹ座標として用いられる。その結果、当該タッチオンした点から最寄りの境界１０７上の点１１５が原点として設定されることになる。そして、当該タッチした点１１４と原点に設定された点１１５との差分を求める。その結果、タッチオンしたと同時に、差分として、例えば（−１５０、０）という値が算出され、当該差分に基づいて飛行機１０１の進行方向を左に大きく変化させることが可能となる。同様に、プレイヤが、図７に示すように操作領域１０２の左上端近傍の点１１６をタッチしたときは、原点としては、Ｘ方向、Ｙ方向それぞれの最寄りの境界１０７上の点１１７が原点として設定される。その結果、差分として、例えば（−１５０、１５０）と算出され、飛行機１０１の進行方向が左上方向に大きく変化する。
【００５３】
このように、操作領域１０２の端のほうをタッチオンするだけで、あたかもジョイスティックを急に傾けたかのように、飛行機１０１の進行方向を大きく変化させることができる。また、Ｘクランプエリア内をタッチして操作した場合は、タッチ入力し始めた点（タッチオン時の点）がそのまま原点のＸ座標として処理され、Ｙクランプエリア内をタッチして操作した場合は、タッチ入力し始めた点がそのまま原点のＹ座標として処理される。そのため、中央付近（両クランプエリアが重複しているエリア内）であまりスタイラスペン１７を動かさないようなタッチ操作をし続けているときは、飛行機１０１の細かい動作制御が可能となる。
【００５４】
次に、ゲーム装置１０において実行されるゲーム処理の詳細を図８〜図１８を用いて説明する。図８は、ゲーム装置１０において実行されるゲーム処理の流れを示すフローチャートである。ゲーム装置１０の電源が投入されると、ゲーム装置１０のＣＰＵ３１は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、ＲＡＭ３７等の各ユニットが初期化される。そして、メモリカード１８に格納されたゲームプログラムがＲＡＭ３７に読み込まれ、当該ゲームプログラムの実行が開始される。その結果、第１ＬＣＤ１１および第２ＬＣＤ１２にゲーム画像などが表示される（図３参照）。また、このとき、上述したような操作領域１０２のエリア分けの定義、すなわち、上記Ｘクランプエリア１０３等の領域が定義されている。図８におけるフローチャートは、プレイヤの操作対象オブジェクトである飛行機１０１を移動させる操作を行うときにおけるゲーム処理を示す。なお、本実施形態においては、飛行機１０１の操作以外の状況におけるゲーム処理は本発明と直接関連しないので説明を省略する。また、図８に示すステップＳ１〜ステップＳ１０の処理は、１フレーム毎に繰り返し実行される。
【００５５】
図８において、まず、タッチパネル１６の操作領域１０２にタッチ入力があると、タッチパネル１６（タッチパネルを制御するデバイスドライバ等を含む）からその位置に対応する位置座標のデータが出力される。ＣＰＵ３１は、タッチパネル１６からこの出力データを検出することにより、プレイヤが操作領域１０２にタッチしているか否かを判断する（ステップＳ１）。ステップＳ１の判定の結果、プレイヤがタッチパネル１６に触れていない場合は（ステップＳ１でＮＯ）、プレイヤ等によりタッチパネル１６が触れられている（タッチ状態）か否か（非タッチ状態）を示すためのフラグである接触フラグをオフにする（ステップＳ８）。更に、原点座標と入力座標の差分を（０，０）にして（ステップＳ９）、処理を次のステップＳ１０に進める。一方、プレイヤがタッチパネル１６に触れている場合は（ステップＳ１でＹＥＳ）、処理を次のステップＳ２に進める。
なお、本実施例では、タッチパネル１６から出力される位置座標の値を直接利用して処理を行う例を示すが、例えば操作領域１０２の中心を原点とした−１〜１の範囲で上記位置座標を正規化してこの正規化後の値を利用するようにしてもよい。
【００５６】
次に、ＣＰＵ２１は、プレイヤのタッチパネル１６に対するタッチ操作がタッチ開始時か否かを判断する（ステップＳ２）。すなわち、非タッチ状態からタッチ状態に変化したか否かを判定する。より具体的には、接触フラグがオンかオフかを判定する。そして、接触フラグがオンであれば、タッチ操作が継続している状態であるため（ステップＳ２でＹＥＳ）、処理をステップＳ６に進める。一方、接触フラグがオフであれば、タッチ入力の開始時であるため（ステップＳ２でＮＯ）、接触フラグをオンに設定する（ステップＳ３）。その後、処理をステップＳ４のタッチオンＸ軸処理に進める。
【００５７】
図９は、上記ステップＳ４で示したタッチオンＸ軸処理の詳細を示すフローチャートである。図９において、まず、ＣＰＵ３１は、タッチパネル１６から出力された位置座標（以下、入力座標）を取得する（ステップＳ２１）。次に、ＣＰＵ３１は、取得した入力座標のＸ座標（以下、入力Ｘ座標と呼ぶ）が、Ｘクランプエリア１０３の範囲内に位置しているか否かを判定する（ステップＳ２２）。その結果、当該エリアの範囲内に位置していれば（ステップＳ２２でＹＥＳ）、直前に入力された入力Ｘ座標がＸ軸上においてどのエリアにあったかを示すためのフラグであるＸエリアフラグに「２」を設定する（ステップＳ２３）。そして、入力Ｘ座標を原点座標のＸ座標（以下、原点Ｘ座標）として設定する（ステップＳ２４）。
【００５８】
一方、ステップＳ２２の判定の結果、Ｘクランプエリア１０３の範囲外であれば（ステップＳ２２でＮＯ）、ＣＰＵ３１は、Ｘエリアフラグに「１」を設定する（ステップＳ２５）。続けて、入力座標からＸ方向に最寄の位置にある、Ｘクランプエリア１０３とクランプ外エリア１０６との境界１０７のＸ座標を原点Ｘ座標として設定する（ステップＳ２６）。例えば、上述した図６を例に取ると、タッチした場所が点１１４の場合は、原点Ｘ座標としては、点１１５のＸ座標が設定される。また、図１０に示すように、入力した点が右側寄りの点１１８の場合は、最寄りの境界である、右側の境界１０７上の点１１９のＸ座標（つまり、右側の境界１０７のＸ座標そのもの）が原点Ｘ座標に設定される。以上で、タッチオンＸ軸処理は終了する。
【００５９】
図８に戻り、タッチオンＸ軸処理が終わると、続いてタッチオンＹ軸処理が行われる（ステップＳ５）。図１１は、上記ステップＳ５で示したタッチオンＹ軸処理の詳細を示すフローチャートである。図１１において、まず、ＣＰＵ２１は、タッチパネル１６から出力された入力座標を取得する（ステップＳ３１）。次に、ＣＰＵ３１は、取得した入力座標のＹ座標（以下、入力Ｙ座標と呼ぶ）が、Ｙクランプエリア１０４の範囲内に位置しているか否かを判定する（ステップＳ３２）。その結果、当該エリアの範囲内に位置していれば（ステップＳ３２でＹＥＳ）、直前に入力された入力Ｙ座標がＹ軸上においてどのエリアにあったかを示すためのフラグであるＹエリアフラグに「２」を設定する（ステップＳ３３）。そして、入力Ｙ座標を原点座標のＹ座標（以下、原点Ｙ座標）に設定する（ステップＳ３４）。
【００６０】
一方、ステップＳ３２の判定の結果、Ｙクランプエリア１０４の範囲外であれば（ステップＳ３２でＮＯ）、ＣＰＵ３１は、Ｙエリアフラグに「１」を設定する（ステップＳ３５）。続けて、入力座標からＹ方向に最寄の境界１０７のＹ座標を原点Ｙ座標として設定する（ステップＳ３６）。例えば、図１２に示すように、タッチした場所が点１２０の場合は、点１２１のＹ座標が原点Ｙ座標として設定される。また、タッチした場所が点１２２の場合は、点１２３のＹ座標が原点Ｙ座標に設定される。以上で、タッチオンＹ軸処理は終了する。
【００６１】
図８に戻り、次に、上記ステップＳ２の判定の結果、タッチ状態が継続中（ステップＳ２でＹＥＳ）のときの処理について説明する。タッチ状態が継続中の場合は、まず、Ｘ軸方向処理が行われる（ステップＳ６）。
【００６２】
図１３は、上記ステップＳ６で示したＸ軸方向処理の詳細を示すフローチャートである。図１３においては、ＣＰＵ３１は、まず、Ｘエリアフラグが「１」であるか否かを判定する（ステップＳ４１）。その結果、Ｘエリアフラグが「１」であれば（ステップＳ４１でＹＥＳ）、処理がＸ軸エリア１処理（ステップＳ４２）に進められる。一方、Ｘエリアフラグが「１」でなければ（ステップＳ４１でＮＯ）、処理がＸ軸エリア２処理（ステップＳ４３）に進められる。
【００６３】
図１４は、上記ステップＳ４２で示したＸ軸エリア１処理の詳細を示すフローチャートである。図１４において、ＣＰＵ３１は、まず、入力Ｘ座標の位置がＸクランプエリア１０３の範囲内であるかを判定する（ステップＳ５１）。その結果、Ｘクランプエリア１０３の範囲内であれば（ステップＳ５１でＹＥＳ）、Ｘエリアフラグを「２」に設定する（ステップＳ５２）。これは、Ｘクランプエリア１０３の外からエリア内に入ったことになるためである。一方、エリア外であれば（ステップＳ５１でＮＯ）、上記図６で示したように、Ｘ方向に最寄の境界１０７のＸ座標を原点Ｘ座標として設定する（ステップＳ５３）。以上で、Ｘ軸エリア１処理は終了する。
【００６４】
図１５は、上記ステップＳ４３で示したＸ軸エリア２処理の詳細を示すフローチャートである。図１５において、ＣＰＵ３１は、まず、入力Ｘ座標の位置がＸクランプエリア１０３の範囲内にあるかを判定する（ステップＳ６１）。その結果、Ｘクランプエリア１０３内にあれば（ステップＳ６１でＹＥＳ）、そのまま処理を終了する。つまり、Ｘクランプエリア１０３内がタッチされている間は、原点Ｘ座標の位置には変更を加えない。一方、当該エリアの範囲外であれば（ステップＳ６１でＮＯ）、上記図６で示したように、入力座標からＸ方向に最寄の境界１０７のＸ座標を原点Ｘ座標として設定する（ステップＳ６２）。更に、Ｘエリアフラグを「１」に設定する（ステップＳ６３）。以上で、Ｘ軸エリア２処理は終了する。
【００６５】
図１３に戻り、上記ステップＳ４２あるいはＳ４３の処理の次に、ＣＰＵ３１は、Ｘ座標についての差分、すなわち、原点Ｘ座標と入力Ｘ座標との差分を算出する（ステップＳ４４）。以上でＸ軸方向処理が終了する。
【００６６】
図８に戻り、ステップＳ６のＸ軸方向処理が終われば、続いてＹ軸方向処理が行われる（ステップＳ７）。図１６は、上記ステップＳ７で示したＹ軸方向処理の詳細を示すフローチャートである。図１６において、ＣＰＵ３１は、まず、Ｙエリアフラグが「１」であるか否かを判定する（ステップＳ７１）。その結果、Ｙエリアフラグが「１」であれば（ステップＳ７１でＹＥＳ）、処理がＹ軸エリア１処理（ステップＳ７２）に進められる。一方、Ｙエリアフラグが「１」でなければ（ステップＳ７１でＮＯ）、処理がＹ軸エリア２処理（ステップＳ７３）に進められる。
【００６７】
図１７は、上記ステップＳ７２で示したＹ軸エリア１処理の詳細を示すフローチャートである。図１７において、ＣＰＵ３１は、まず、入力Ｙ座標の位置がＹクランプエリア１０４の範囲内であるかを判定する（ステップＳ８１）。その結果、Ｙクランプエリア１０４の範囲内であれば（ステップＳ８１でＹＥＳ）、ＣＰＵ３１は、Ｙエリアフラグを「２」に設定する（ステップＳ８２）。一方、当該エリアの範囲外であれば（ステップＳ８１でＮＯ）、上記図１２を用いて示したように、入力座標からＹ方向に最寄の境界１０７のＹ座標を原点Ｙ座標として設定する（ステップＳ８３）。以上で、Ｙ軸エリア１処理が終了する。
【００６８】
図１８は、上記ステップＳ７３で示したＹ軸エリア２処理の詳細を示すフローチャートである。図１８において、まず、ＣＰＵ３１は、Ｙクランプエリア１０４の範囲内に入力Ｙ座標が位置しているかを判定する（ステップＳ９１）。その結果、Ｙクランプエリア１０４の範囲内にあれば（ステップＳ９１でＹＥＳ）、そのまま処理を終了する。一方、当該エリアの範囲外にあれば（ステップＳ９１でＮＯ）、上記図１２で示したように、入力座標からＹ方向に最寄の境界１０７のＹ座標を原点Ｙ座標として設定する（ステップＳ９２）。更に、Ｙエリアフラグを「１」に設定する（ステップＳ９３）。以上で、Ｙ軸エリア２処理が終了する。
【００６９】
図１６に戻り、上記ステップＳ７２あるいはＳ７３の処理の次に、ＣＰＵ３１は、原点座標と入力座標とのＹ座標についての差分を算出する（ステップＳ７４）。以上でＹ軸方向処理が終了する。
【００７０】
図８に戻り、上記ステップＳ５のタッチオンＹ軸処理、ステップＳ７のＹ軸方向処理あるいはステップＳ９の処理の次に、ＣＰＵ３１は、算出されたＸ座標及びＹ座標の差分に基づいて、プレイヤの操作対象となっているオブジェクトの動作を制御する処理を行う（ステップＳ１０）。例えば、ＣＰＵ３１は、入力座標と原点との差分から、それらの距離Ｌ１を求める。具体的には、上記操作領域１０２の座標系において、入力座標を（ｔｘ、ｔｙ）、原点を（ｏｘ、ｏｙ）とすると、ＣＰＵ２１は、差分ｖｘおよびｖｙを、
ｖｘ＝ｏｘ−ｔｘ
ｖｙ＝ｏｙ−ｔｙ
として求める。そして、ＣＰＵ２１は、距離Ｌ１を、
【数１】
2007300961.tif 000003
として求める。これによって、操作領域１０２の座標系に基づいた入力座標と原点との間の距離Ｌ１が求められる。更に、原点から入力座標へのベクトル（ｔｘ−ｏｘ、ｔｙ−ｏｙ）に基づいて、プレイヤが指示した移動方向を求める。そして、当該ベクトル値が、例えば右方向を示すベクトルであれば、プレイヤの操作対象となっているオブジェクトを上記距離Ｌ１に応じた移動速度（距離の大きさに比例して速くなる）で右方向に移動する制御を行う。このような処理の結果、プレイヤがタッチパネルの端をタッチしたときは、原点と入力座標との距離としては大きな値が算出されるため、飛行機の進行方向が大きく変化する。一方、中央付近をタッチし続けているときは、進行方向をほとんど変化させないような細かい操作が可能となる。以上で、第１の実施形態に係るゲーム処理は終了する。
【００７１】
このように、第１の実施形態では、クランプエリア内がタッチされているときは、その座標を原点座標とし、クランプエリア外がタッチされたときは、原点を最寄りの境界上の座標に設定している。これにより、タッチパネル１６の端のほうをタッチするだけで、例えば急ハンドルを切るような、移動量の大きな操作を簡単に行うことができる。また、原点を、中央ではなく、入力座標から最寄りの境界上に設定することにより、例えば一旦左に切ったハンドルを右に切り返すような操作を行うとき等におけるスタイラスペン１７の移動量を少なくすることができ、操作のレスポンスを高めて操作性をよくすることができる。また、タッチパネル１６の中央付近については、入力座標をそのまま原点として設定する。そのため、タッチパネル１６の中心を原点として固定するのに比べ、例えば手ぶれ等で、入力座標が原点から少しずれただけで進行方向がずれるような、過敏な反応による操作性の悪化を防ぐことができる。その結果、人間の操作感覚に合致し、過敏すぎず鈍すぎない、適度なレスポンスを持った、操作性の良いゲームを提供することができる。
【００７２】
なお、上述の実施形態では、クランプエリア外における原点の移動先として、クランプエリアの境界上の座標を用いていたが、境界上に限らず、入力座標とクランプエリアの境界との間（入力座標とクランプエリアの境界とを結ぶ線分上）であれば、どの位置に移動させてもよい。例えば、上記図７を例にとれば、境界１０７上にある点１１７の位置は、もう少し左上であってもよい。
【００７３】
また、タッチオン時に原点が設定された後は、タッチオフされるまでの間、当該原点の位置を変化させないようにしても良い。
【００７４】
また、ゲームの展開具合に応じて、クランプエリアの大きさを変化させるようにしてもよい。これにより、ゲーム展開に応じてタッチパネル１６の操作性を変化させることができ、よりバラエティに富んだ内容のゲームを提供できる。
【００７５】
（第２の実施形態）
次に、図１９から図３０を参照して、本発明の第２の実施形態について説明する。上述の第１の実施形態では、クランプエリア外の領域がタッチオンされたときは、原点をクランプエリアの境界上のいずれかの位置に設定していた。これに対して、第２の実施形態では、クランプエリアの外側に、更に中間エリアを設ける。そして、当該中間エリア内においてタッチオンされた時は、その入力座標を原点として設定するが、時間の経過とともに、クランプエリアの境界上の座標へと当該原点を移動させる処理が行われる。
【００７６】
図１９は、第２の実施形態におけるタッチパネル１６の操作面である操作領域１０２のエリア定義の例を示した図である。図１９においては、Ｘクランプエリア１０３よりも広いＸ中間エリア２０３と、Ｙクランプエリア１０４よりも広いＹ中間エリア２０４とが予め定義されている。このようにエリア分けした操作領域１０２において、プレイヤがタッチオンした座標がこれら両中間エリア２０３、２０４内であって、両クランプエリア１０３、１０４内ではないときは、当該タッチオン時の入力座標を原点として一旦設定する。そして、時間の経過とともに、上述したようなクランプエリアの境界上の座標、すなわち、図１９のクランプエリアと中間エリアの境界上の最寄りの点へと当該原点を移動させていく処理を行う。これは、人間のバランス感覚に照らすと、例えば、最初はプレイヤが操作領域１０２の中央から左寄りの点を意図的にタッチオンしたとしても、その後、タッチ操作を続けていると、プレイヤは、無意識のうちに操作領域１０２の中央付近を基準として指を動かす。つまり、原点の位置が操作領域１０２の中心付近にあるほうが、より人間の操作のバランス感覚に合致することから、時間の経過とともに原点を操作領域１０２の中心のほうに移動させるものである。そのため、タッチオンした箇所が操作領域１０２の中心でも端のほうでもないときには、徐々に原点を中心付近に移動させる処理を行うことで、操作領域１０２の操作をプレイヤのバランス感覚・操作感覚に一致させ、操作性をより高めるものである。（なお、操作領域１０２の端のほうをタッチオンしたときは、上述したように意図的な操作であると考えられるため、原点の移動は行わない。また、原点を中心まで移動させてしまうと、上述したような、原点から少しずれた入力をしただけで、プレイヤの操作対象である飛行機１０１等の進行方向がブレてしまうという問題が発生するため、中心付近でも端のほうでもない中間エリアにおいて、このような処理が行われる。）
【００７７】
なお、当該実施形態に係るゲーム装置１０の構成は、図１および図２を用いて上述した第１の実施形態と同様であるため、同一の参照符号を付して詳細な説明を省略する。
【００７８】
以下、図２０〜図３０を用いて、本発明の第２の実施形態にかかるゲーム処理の詳細を説明する。図２０は、第２の実施形態にかかるゲーム処理を示すフローチャートである。図２０に示すフローは、第１の実施形態で図８を用いて説明したフローにおけるステップＳ４〜Ｓ７の処理が、ステップＳ１０４〜Ｓ１０７の処理に置き換わったものである。従って、ステップＳ１０４〜Ｓ１０７以外の処理については、詳細な説明を省略する。
【００７９】
図２１は、上記ステップＳ１０４で示した第２の実施形態におけるタッチオンＸ軸処理の詳細を示すフローチャートである。図２１において、まず、ＣＰＵ３１は、タッチパネル１６から出力された入力Ｘ座標を取得する（ステップＳ１２１）。次に、取得した入力Ｘ座標が、Ｘ中間エリア２０３の範囲内に位置しているか否かを判定する（ステップＳ１２２）。その結果、当該エリアの範囲内に位置していれば（ステップＳ１２２でＹＥＳ）、当該入力Ｘ座標がＸクランプエリア１０３の範囲内にあるか否かを判定する（ステップＳ１２３）。当該判定の結果、Ｘクランプエリア１０３の範囲内であれば（ステップＳ１２３でＹＥＳ）、Ｘエリアフラグに「３」を設定する（ステップＳ１２４）。一方、Ｘクランプエリア１０３の範囲内でないときは（ステップＳ１２３でＮＯ）、Ｘエリアフラグに「２」を設定する（ステップＳ１２５）。ステップＳ１２４またはＳ１２５の処理が終われば、ＣＰＵ３１は、入力Ｘ座標を原点Ｘ座標として設定する（ステップＳ１２６）。
【００８０】
一方、ステップＳ１２２の判定の結果、入力Ｘ座標がＸ中間エリア２０３の範囲外であれば（ステップＳ１２２でＮＯ）、Ｘエリアフラグに「１」を設定する（ステップＳ１２７）。続けて、入力Ｘ座標からＸ方向に最寄の位置にある、Ｘクランプエリア１０３とＸ中間エリア２０３との境界のＸ座標を原点Ｘ座標として設定する（ステップＳ１２８）。以上で、第２の実施形態におけるタッチオンＸ軸処理は終了する。
【００８１】
図２０に戻り、タッチオンＸ軸処理が終わると、続いてタッチオンＹ軸処理が行われる（ステップＳ１０５）。図２２は、上記ステップＳ１０５で示したタッチオンＹ軸処理の詳細を示すフローチャートである。図２２において、まず、ＣＰＵ２１は、タッチパネル１６から出力された入力座標から入力Ｙ座標を取得する（ステップＳ１３１）。次に、取得した入力Ｙ座標が、Ｙ中間エリア２０４の範囲内に位置しているか否かを判定する（ステップＳ１３２）。その結果、当該エリアの範囲内に位置していれば（ステップＳ１３２でＹＥＳ）、当該入力Ｙ座標の位置がＹクランプエリア１０４の範囲内にあるか否かを判定する（ステップＳ１３３）。当該判定の結果、Ｙクランプエリア１０４の範囲内にあれば（ステップＳ１３３でＹＥＳ）、Ｙエリアフラグに「３」を設定する（ステップＳ１３４）。一方、Ｙクランプエリア１０４の範囲内にないときは（ステップＳ１３３でＮＯ）、Ｙエリアフラグに「２」を設定する（ステップＳ１３５）。そして、入力Ｙ座標を原点Ｙ座標に設定する（ステップＳ１３６）。
【００８２】
一方、ステップＳ１３２の判定の結果、入力Ｙ座標の位置がＹ中間エリア２０４の範囲外であれば（ステップＳ１３２でＮＯ）、Ｙエリアフラグに「１」を設定する（ステップＳ１３７）。続けて、入力座標から最寄のＹクランプエリア１０４とＹ中間エリア２０４との境界のＹ座標を原点Ｙ座標として設定する（ステップＳ１３８）。以上で、タッチオンＹ軸処理は終了する。これにより、タッチオンしたときのエリアがクランプエリア内、あるいは中間エリア内であるときは、その入力座標が原点座標として設定され、中間エリアの範囲外であるときは、クランプエリアと中間エリアの境界上の最寄りの点が原点として設定されることになる。
【００８３】
次に、図２０のステップＳ２の判定の結果、タッチ状態が継続中（ステップＳ２でＹＥＳ）のときの処理、すなわち、ステップＳ１０６およびＳ１０７の処理について説明する。タッチ状態が継続中の場合は、まず、Ｘ軸方向処理が行われる（ステップＳ１０６）。
【００８４】
図２３は、上記ステップＳ１０６で示したＸ軸方向処理の詳細を示すフローチャートである。図２３においては、まず、Ｘエリアフラグが「１」であるか否かが判定される（ステップＳ１４１）。その結果、Ｘエリアフラグが「１」であれば（ステップＳ１４１でＹＥＳ）、処理がＸ軸エリア１処理（ステップＳ１４２）に進められる。一方、Ｘエリアフラグが「１」でなければ（ステップＳ１４１でＮＯ）、Ｘエリアフラグが「２」であるか否かが判定される（ステップＳ１４３）。当該判定の結果、Ｘエリアフラグが「２」であれば（ステップ１４３でＹＥＳ）、処理がＸ軸エリア２処理（ステップＳ１４４）に進められる。一方、「２」でなければ（ステップ１４３でＮＯ）、処理がＸ軸エリア３処理（ステップＳ１４５）に進められる。
【００８５】
図２４は、上記ステップＳ１４２で示したＸ軸エリア１処理の詳細を示すフローチャートである。図２４において、まず、ＣＰＵ３１は、入力Ｘ座標の位置がＸ中間エリア２０３の範囲内であるかを判定する（ステップＳ１５１）。その結果、Ｘ中間エリア２０３の範囲内であれば（ステップＳ１５１でＹＥＳ）、Ｘエリアフラグを「２」に設定する（ステップＳ１５２）。一方、エリア外であれば（ステップＳ１５１でＮＯ）、中間エリアとクランプエリアの境界のうちＸ軸方向に最寄りの境界のＸ座標を原点Ｘ座標として設定する（ステップＳ１５３）。以上で、Ｘ軸エリア１処理は終了する。
【００８６】
図２５は、上記ステップＳ１４４で示したＸ軸エリア２処理の詳細を示すフローチャートである。図２５において、まず、ＣＰＵ３１は、入力Ｘ座標の位置がＸ中間エリア２０３内であるかを判定する（ステップＳ１６１）。その結果、Ｘ中間エリア２０３内であれば（ステップＳ１６１でＹＥＳ）、次に、入力Ｘ座標の位置がＸクランプエリア１０３内であるかを判定する（ステップＳ１６２）。判定の結果、クランプエリア内であれば（ステップＳ１６２でＹＥＳ）、原点Ｘ座標の位置がＸクランプエリア１０３の範囲内にあるか否かを判定する（ステップＳ１６３）。当該判定の結果、原点Ｘ座標がＸクランプエリア１０３内にないときは（ステップＳ１６３でＮＯ）、最寄りのＸクランプエリア１０３の境界のＸ座標を原点Ｘ座標に設定する（ステップＳ１６４）。一方、原点Ｘ座標がＸクランプエリア１０３内にあるときは（ステップＳ１６３でＹＥＳ）、そのまま処理をステップＳ１６５に進める。つまり、Ｘクランプエリア１０３内がタッチされている間は、原点Ｘ座標には変更を加えない。そして、Ｘエリアフラグに「３」を設定する（ステップＳ１６５）。
【００８７】
一方、上記ステップＳ１６２で入力Ｘ座標の位置が、Ｘ中間エリア２０３内ではあるがＸクランプエリア１０３外と判定されたときは（ステップＳ１６２でＮＯ）、原点Ｘ座標の位置がＸクランプエリア１０３の範囲内にあるか否かを判定する（ステップＳ１６６）。当該判定の結果、原点Ｘ座標がＸクランプエリア１０３内にないときは（ステップＳ１６６でＮＯ）、原点Ｘ座標の値を、最寄りのＸクランプエリア１０３の境界のＸ座標に所定の値だけ近づける（ステップＳ１６７）。例えば、当該所定の値を１とすれば、１フレーム毎に原点のＸ座標が上記最寄りの境界のＸ座標に近づいていく。この結果、Ｘ中間エリア２０３内では、原点座標のＸ座標がＸクランプエリア１０３の境界上のＸ座標へ時間の経過とともに移動していくことになる。もちろん、１フレーム毎移動させることに限らず、例えば３０フレーム毎に１だけ近づけるようにしてもよいし、タッチオン時からの経過時間を計測しておき、当該経過時間に応じて移動させるようにしてもよい。なお、境界上の座標まで移動すれば、それ以上の移動は行われない。一方、ステップＳ１６６の判定の結果、原点Ｘ座標がＸクランプエリア１０３内にあるときは（ステップＳ１６６でＹＥＳ）、そのまま処理を終了する。
【００８８】
一方、ステップＳ１６１の判定の結果、入力Ｘ座標がＸ中間エリア２０３の外にあれば（ステップＳ１６１でＮＯ）、入力Ｘ座標から最寄の境界上のＸ座標を原点Ｘ座標として設定する（ステップＳ１６８）。更に、Ｘエリアフラグを「１」に設定する（ステップＳ１６９）。以上で、Ｘ軸エリア２処理は終了する。
【００８９】
図２６は、上記ステップＳ１４５で示したＸ軸エリア３処理の詳細を示すフローチャートである。図２６において、まず、ＣＰＵ２１は、入力Ｘ座標が、Ｘクランプエリア１０３内にあるか否かを判定する（ステップＳ１７１）。当該判定の結果、Ｘクランプエリア１０３内にあれば（ステップＳ１７１でＮＯ）、そのまま処理を終了する。一方、Ｘクランプエリア１０３の外にあれば（ステップＳ１７１でＹＥＳ）、Ｘエリアフラグを「２」に設定する（ステップＳ１７２）。以上で、Ｘ軸エリア３処理は終了する。
【００９０】
図２３に戻り、上記ステップＳ１４２、Ｓ１４４、またはＳ１４５の処理が終われば、Ｘ座標についての、原点座標と入力座標との差分を算出する（ステップＳ１４６）。以上でＸ軸方向処理が終了する。
【００９１】
図２０に戻り、ステップＳ１０６のＸ軸方向処理が終われば、続いてＹ軸方向処理が行われる（ステップＳ１０７）。図２７は、上記ステップＳ１０７で示したＹ軸方向処理の詳細を示すフローチャートである。図２７においては、ＣＰＵ３１は、まず、Ｙエリアフラグが「１」であるか否かを判定する（ステップＳ１８１）。その結果、Ｙエリアフラグが「１」であれば（ステップＳ１８１でＹＥＳ）、処理がＹ軸エリア１処理（ステップＳ１８２）に進められる。一方、Ｙエリアフラグが「１」でなければ（ステップＳ１８１でＮＯ）、Ｙエリアフラグが「２」であるか否かが判定される（ステップＳ１８３）。当該判定の結果、Ｙエリアフラグが「２」であれば（ステップＳ１８３でＹＥＳ）、処理がＹ軸エリア２処理（ステップＳ１８４）に進められる。一方、「２」でなければ、処理がＹ軸エリア３処理（ステップＳ１８５）に進められる。
【００９２】
図２８は、上記ステップＳ１８２で示したＹ軸エリア１処理の詳細を示すフローチャートである。図２８において、まず、入力Ｙ座標がＹ中間エリア２０４の範囲内にあるかを判定する（ステップＳ１９１）。その結果、Ｙ中間エリア２０４の範囲内であれば（ステップＳ１９１でＹＥＳ）、Ｙエリアフラグを「２」に設定する（ステップＳ１９２）。一方、当該エリア外であれば（ステップＳ１９１でＮＯ）、Ｙ中間エリア２０４とＹクランプエリア１０４の境界のうち最寄りの境界のＹ座標を原点Ｙ座標として設定する（ステップＳ１９３）。以上で、Ｙ軸エリア１処理は終了する。
【００９３】
図２９は、上記ステップＳ１８４で示したＹ軸エリア２処理の詳細を示すフローチャートである。図２９において、まず、入力Ｙ座標の位置がＹ中間エリア２０４内であるかを判定する（ステップＳ２０１）。その結果、Ｙ中間エリア２０４内であれば（ステップＳ２０１でＹＥＳ）、次に、入力Ｙ座標の位置がＹクランプエリア１０４内であるかを判定する（ステップＳ２０２）。判定の結果、Ｙクランプエリア１０４内であれば（ステップＳ２０２でＹＥＳ）、原点Ｙ座標の位置がＹクランプエリア１０４内にあるか否かを判定する（ステップＳ２０３）。当該判定の結果、原点Ｙ座標がＹクランプエリア１０４内にないときは（ステップＳ２０３でＮＯ）、Ｙ方向に最寄りのＹクランプエリア１０４の境界のＹ座標を原点Ｙ座標に設定する（ステップＳ２０４）。一方、原点Ｙ座標がＹクランプエリア１０４内にあるときは（ステップＳ２０３でＹＥＳ）、そのまま処理を次に進める。つまり、原点Ｙ座標に変更を加えない。そして、Ｙエリアフラグに「３」を設定する（ステップＳ２０５）。
【００９４】
一方、上記ステップＳ２０２で入力Ｙ座標がＹ中間エリア２０４内ではあるがＹクランプエリア１０４外と判定されたときは（ステップＳ２０２でＮＯ）、原点Ｙ座標がＹクランプエリア１０４内であるか否かを判定する（ステップＳ２０６）。当該判定の結果、原点Ｙ座標がＹクランプエリア１０４内でないときは（ステップＳ２０６でＮＯ）、上述したステップＳ１６７の処理と同様に、原点Ｙ座標を、最寄りの境界のＹ座標に所定の値だけ近づける（ステップＳ２０７）。この結果、Ｙ中間エリア２０４内では、時間の経過とともに、原点Ｙ座標が境界のＹ座標に移動することになる。また、境界の座標まで移動すれば、それ以上の移動は行われない。一方、原点Ｙ座標がＹクランプエリア１０４内であるときは（ステップＳ２０６でＹＥＳ）、そのまま処理を終了する。
【００９５】
一方、ステップＳ２０１の判定の結果、入力Ｙ座標がＹクランプエリア１０４外であれば（ステップＳ２０１でＮＯ）、入力Ｙ座標から最寄の境界上のＹ座標を原点Ｙ座標として設定する（ステップＳ２０８）。更に、Ｙエリアフラグを「１」に設定する（ステップＳ２０９）。以上で、第２の実施形態におけるＹ軸エリア２処理は終了する。
【００９６】
図３０は、図２７のステップＳ１８５で示したＹ軸エリア３処理の詳細を示すフローチャートである。図３０において、まず、ＣＰＵ３１は、入力Ｙ座標が、Ｙクランプエリア１０４の範囲内にあるか否かを判定する（ステップＳ２１１）。当該判定の結果、Ｙクランプエリア１０４内にあれば（ステップＳ２１１でＮＯ）、そのまま処理を終了する。一方、Ｙクランプエリア１０４内になければ（ステップＳ２１１でＹＥＳ）、Ｙエリアフラグを「２」に設定する。以上で、Ｙ軸エリア３処理は終了する。
【００９７】
このように、第２の実施形態では、中間エリア内でタッチオンされたときは、その入力座標を原点に設定するが、時間の経過とともに原点の位置を徐々にタッチパネルの中心方向に移動させる。このように、原点の位置を中心近傍に移動させることで、人間の操作感覚（バランス感覚）に合致させることができ、より操作性の高いゲームを提供することが可能となる。
【００９８】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。上述の第２の実施形態では、上記中間エリア内においてタッチオンされた時は、その入力座標を原点として設定し、時間の経過とともに、クランプエリアの境界上の座標へと当該原点を移動させていた。これに対して、第３の実施形態では、中間エリア内がタッチされている間は、原点は固定したままにする。そして、中間エリアの外側がタッチされたとき、原点を最寄りのクランプエリアの境界上に移動させる。
【００９９】
なお、当該実施形態に係るゲーム装置１０の構成は、図１および図２を用いて上述した第１の実施形態と同様であるため、同一の参照符号を付して詳細な説明を省略する。
【０１００】
次に、本発明の第３の実施形態にかかるゲーム処理の詳細を説明する。第３の実施形態にかかるゲーム処理は、図２０〜図３０を用いて説明した上記第２の実施形態にかかるゲーム処理と基本的には同様である。ただし、図２５で説明したＸ軸エリア処理２のフローチャートが、図３１で示すフローチャートに置き換わる。また、図２９で説明したＹ軸エリア処理２のフローチャートが、図３２で示すフローチャートに置き換わる。従って、図３１および図３２以外の処理については、詳細な説明を省略する。
【０１０１】
図３１に示すフローチャートは、図２５のＸ軸エリア２の処理から、ステップＳ１６３、Ｓ１６４、Ｓ１６６、Ｓ１６７の処理を抜いたものである。また、図３２に示すフローチャートは、図２９のＹ軸エリア２の処理から、ステップＳ２０３、Ｓ２０４、Ｓ２０６、Ｓ２０７の処理を抜いたものである。つまり、第３の実施形態では、入力Ｘ座標が中間エリア内にあるときは、原点Ｘ座標の位置を変化させない。そして、入力Ｘ座標が中間エリアの外に出たときに、中間エリアとクランプエリアの境界のうちＸ軸方向に最寄りの境界のＸ座標を原点Ｘ座標として設定する。これと同様の処理が、Ｙ座標についても行われる。このような処理を行うことで、第３の実施形態における入力座標と原点との関係は、図３３に示すようになる。図３３は、第３の実施形態における入力座標と原点との関係を説明するための図である。図３３においては、第２の実施形態と同様に中間エリア２０３、２０４が予め定義されている。そして、例えば図３３（ａ）に示す点３０１をプレイヤが指でタッチオンすると、点３０２が原点に設定される。この状態で、タッチしたまま右方向に水平に指をずらしていった場合を考える。この場合、指が図３３（ｂ）に示すように中間エリア内にある点３０３まで移動しても、原点の位置は変化しない。その後、図３（ｃ）に示す点３０５のように中間エリアの外まで指が移動したら、原点の位置が点３０６に設定されることになる。
【０１０２】
このように、第３の実施形態では、中間エリア内をタッチしているときは原点の位置を固定し、中間エリア外をタッチしているときは、最寄りのクランプエリアの境界に原点を移動させている。これにより、中間エリアの大きさの設定次第で、クランプエリアの範囲内に留まらずに、原点が固定される範囲のみを調節することができる。その結果、ゲームの種類や内容に応じてより細やかに操作性を調整することができる。
【０１０３】
本実施例では、２つの表示装置を備えた携帯型ゲーム装置を例に説明したが、単一の表示装置を備え当該表示装置の画面上にタッチパネルを備えた携帯端末であってもよい。また、本実施例では、操作領域に対するプレイヤの指示位置を検出する装置としてタッチパネルを例に上げたが、プレイヤが所定領域内の位置を指示できるいわゆるポインティングデバイスであればよく、例えば、画面上の任意位置を指示可能なマウス、表示画面を持たない操作面上の任意位置を指示するタブレット、遠隔から表示画面や表示画面周囲に配置されたマーカ等を撮像するための撮像手段を備えたデバイスによって、表示画面方向を指し示すことにより得られる撮像画像における表示画面やマーカの位置から、表示画面上の指し示された位置に相当する表示画面上の座標を算出するポインティングデバイスなどでもよい。
【産業上の利用可能性】
【０１０４】
本発明にかかるオブジェクト処理装置およびオブジェクト処理プログラムは、操作領域に対するプレイヤの指示位置に対応する指示座標に基づいて仮想空間内のオブジェクトに対する処理を実行するオブジェクト処理装置の操作性を高めることができ、携帯型ゲーム装置や据え置き型ゲーム装置等の用途に有用である。
【図面の簡単な説明】
【０１０５】
【図１】本発明の第１の実施形態に係る携帯ゲーム装置１０の外観図
【図２】本発明の第１の実施形態に係る携帯ゲーム装置１０のブロック図
【図３】本実施形態において想定するゲームの画面の一例
【図４】操作領域１０２のエリア分けの一例
【図５】操作領域１０２のタッチ点の移動例を示す図
【図６】操作領域１０２の入力点と原点との関係示す図
【図７】操作領域１０２の入力点と原点との関係示す図
【図８】ゲーム装置１０において実行されるゲーム処理の流れを示すフローチャート
【図９】図８のステップＳ４で示したタッチオンＸ軸処理の流れを示すフローチャート
【図１０】操作領域１０２の入力点と原点との関係示す図
【図１１】図８のステップＳ５で示したタッチオンＹ軸処理の流れを示すフローチャート
【図１２】操作領域１０２の入力点と原点との関係示す図
【図１３】図８のステップＳ６で示したＸ軸方向処理の流れを示すフローチャート
【図１４】図１３のステップＳ４２で示したＸ軸エリア１処理の流れを示すフローチャート
【図１５】図１３のステップＳ４３で示したＸ軸エリア２処理の流れを示すフローチャート
【図１６】図８のステップＳ７で示したＹ軸方向処理の流れを示すフローチャート
【図１７】図１６のステップＳ７２で示したＹ軸エリア１処理の流れを示すフローチャート
【図１８】図１６のステップＳ７３で示したＹ軸エリア２処理の流れを示すフローチャート
【図１９】第２の実施形態にかかるタッチパネル１６のエリア分けの一例
【図２０】第２の実施形態にかかるゲーム処理の流れを示すフローチャート
【図２１】図２０のステップＳ１０４で示したタッチオンＸ軸処理の流れを示すフローチャート
【図２２】図２０のステップＳ１０５で示したタッチオンＹ軸処理の流れを示すフローチャート
【図２３】図２０のステップＳ６で示したＸ軸方向処理の流れを示すフローチャート
【図２４】図２３のステップＳ１４２で示したＸ軸エリア１処理の流れを示すフローチャート
【図２５】図２３のステップＳ１４４で示したＸ軸エリア２処理の流れを示すフローチャート
【図２６】図２３のステップＳ１４５で示したＸ軸エリア３処理の流れを示すフローチャート
【図２７】図８のステップＳ７で示したＹ軸方向処理の流れを示すフローチャート
【図２８】図２７のステップＳ１８２で示したＹ軸エリア１処理の流れを示すフローチャート
【図２９】図２７のステップＳ１８４で示したＹ軸エリア２処理の流れを示すフローチャート
【図３０】図２７のステップＳ１８５で示したＹ軸エリア３処理の流れを示すフローチャート
【図３１】第３の実施形態にかかるＸ軸エリア２処理の流れを示すフローチャート
【図３２】第３の実施形態にかかるＹ軸エリア２処理の流れを示すフローチャート
【図３３】第３の実施形態における入力座標と原点との関係を説明するための図
【符号の説明】
【０１０６】
１０  携帯ゲーム装置
１１  第１ＬＣＤ
１２  第２ＬＣＤ
１３  ハウジング
１４ａ  音抜き孔
１４ｂ  収納孔
１５  操作スイッチ部
１６  タッチパネル
１７  スタイラスペン
１８  メモリカード
１９  スピーカ
３０  電子回路基板
３１  ＣＰＵ
３２  バス
３３  コネクタ
３４  インターフェース回路
３５  第１ＧＰＵ
３６  第２ＧＰＵ
３７  ＲＡＭ
３８  第１ＶＲＡＭ
３９  第２ＶＲＡＭ
４０  ＬＣＤコントローラ
４１  レジスタ
５１  ブロック
１８０  ＲＯＭ
１８５  ＲＡＭ
【図１】
2007300961.tif 000004
【図２】
2007300961.tif 000005
【図３】
2007300961.tif 000006
【図４】
2007300961.tif 000007
【図５】
2007300961.tif 000008
【図６】
2007300961.tif 000009
【図７】
2007300961.tif 000010
【図８】
2007300961.tif 000011
【図９】
2007300961.tif 000012
【図１０】
2007300961.tif 000013
【図１１】
2007300961.tif 000014
【図１２】
2007300961.tif 000015
【図１３】
2007300961.tif 000016
【図１４】
2007300961.tif 000017
【図１５】
2007300961.tif 000018
【図１６】
2007300961.tif 000019
【図１７】
2007300961.tif 000020
【図１８】
2007300961.tif 000021
【図１９】
2007300961.tif 000022
【図２０】
2007300961.tif 000023
【図２１】
2007300961.tif 000024
【図２２】
2007300961.tif 000025
【図２３】
2007300961.tif 000026
【図２４】
2007300961.tif 000027
【図２５】
2007300961.tif 000028
【図２６】
2007300961.tif 000029
【図２７】
2007300961.tif 000030
【図２８】
2007300961.tif 000031
【図２９】
2007300961.tif 000032
【図３０】
2007300961.tif 000033
【図３１】
2007300961.tif 000034
【図３２】
2007300961.tif 000035
【図３３】
2007300961.tif 000036