(57)【要約】    【構成】  ゲーム装置１０はＬＣＤ１４を含み、ＬＣＤ１４に関連してタッチパネル２２が設けられる。ＬＣＤ１４には、プレイヤキャラクタを含むゲーム画面が表示される。プレイヤがスティック２４を用いて、タッチパネル２２上を撫でるように操作（ストローク操作）すると、その操作に従ってプレイヤキャラクタが移動される。プレイヤキャラクタの移動速度は、ストローク操作の長さに基づいて決定または算出され、移動方向はストローク操作の方向に決定される。    【効果】  プレイヤはストローク操作するだけでプレイヤキャラクタの移動を自在に操ることができ、操作が簡単である。【選択図】  図１
2006149662.tif 000002
【特許請求の範囲】
【請求項１】
少なくともプレイヤによって操作されるプレイヤキャラクタを含むゲーム空間の一部をゲーム画像として表示する表示器および前記表示器に関連して設けられるタッチパネルを備えるゲーム装置のゲームプログラムであって、
前記ゲーム装置のプロセサに、
前記タッチパネルへのタッチ入力の有無を一定時間毎に検出するタッチ入力検出ステップ、
前記タッチ入力検出ステップによって検出されたタッチ入力に基づくタッチ座標を検出するタッチ座標検出ステップ、
前記タッチ入力検出ステップによってタッチ入力が有る状態が連続して検出されたとき、直前の第１タッチ座標と現在の第２タッチ座標との差分を検出する差分検出ステップ、
前記差分検出ステップによって検出された差分と所定の閾値とを比較する比較ステップ、
前記ゲーム空間における前記プレイヤキャラクタの現在位置を検出する位置検出ステップ、および
前記差分が前記所定の閾値を超えるとき、前記位置検出ステップによって検出された現在位置に基づいて決定される第１移動速度で前記差分が示す移動方向に前記プレイヤキャラクタを移動させる移動処理ステップを実行させる、ゲームプログラム。
【請求項２】
前記ゲーム装置は、複数種類の地形情報で構成されるゲームマップを記憶する記憶手段をさらに備え、
前記位置検出ステップは、前記記憶手段に記憶されるゲームマップ上における前記プレイヤキャラクタの現在位置を検出し、
前記移動処理ステップは、前記地形情報毎に定義されている速度パラメータに基づいて、前記位置検出ステップによって検出された現在位置が属する前記地形情報に応じた演算を行うことにより決定される第１移動速度で前記差分が示す移動方向に前記プレイヤキャラクタを移動させる、請求項１に記載のゲームプログラム。
【請求項３】
前記プレイヤキャラクタが移動中か否かを判定する移動判定ステップをさらに実行させ、
前記移動処理ステップは、
前記タッチ入力検出ステップによってタッチ入力が無い状態が検出され、前記移動判定ステップによって前記プレイヤキャラクタが移動中であると判定されたとき、第１減速度を現在の移動速度から減算した第２移動速度を算出する第２移動速度算出ステップ、および
前記差分が前記所定の閾値以下であり、前記移動判定ステップによってプレイヤキャラクタが移動中であると判定されたとき、前記第１減速度よりも大きい第２減速度を現在の移動速度から減算した第３移動速度を算出する第３移動速度算出ステップを含む、請求項１または２記載のゲームプログラム。
【請求項４】
前記位置検出ステップによって検出された現在位置に基づいて前記第１減速度および第２減速度を決定する減速度決定ステップをさらに実行させる、請求項３記載のゲームプログラム。
【請求項５】
前記第３移動速度算出ステップは、前記差分が連続して前記所定の閾値以下であるとき、前記第２減速度を次第に大きくさせて前記第３移動速度を算出する、請求項３または４記載のゲームプログラム。
【請求項６】
少なくともプレイヤによって操作されるプレイヤキャラクタを含むゲーム空間の一部をゲーム画像として表示する表示器および前記表示器に関連して設けられるタッチパネルを備えるゲーム装置であって、
前記タッチパネルへのタッチ入力の有無を一定時間毎に検出するタッチ入力検出手段、
前記タッチ入力検出手段によって検出されたタッチ入力に基づくタッチ座標を検出するタッチ座標検出手段、
前記タッチ入力検出手段によってタッチ入力が有る状態が連続して検出されたとき、直前の第１タッチ座標と現在の第２タッチ座標との差分を検出する差分検出手段、
前記差分検出手段によって検出された差分と所定の閾値とを比較する比較手段、
前記ゲーム空間における前記プレイヤキャラクタの現在位置を検出する位置検出手段、および
前記差分が前記所定の閾値よりも大きいとき、前記位置検出手段によって検出された現在位置に基づいて決定される移動速度で前記差分が示す移動方向に前記プレイヤキャラクタを移動させる移動処理手段を備える、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はゲームプログラムおよびゲーム装置に関し、特にたとえば、タッチパネルを操作することによって所定の処理を実行する、ゲームプログラムおよびゲーム装置に関する。
【背景技術】
【０００２】
この種の従来のゲーム装置の一例が特許文献１に開示される。この特許文献１によれば、タッチパネルを備えるゲーム装置において、プレイヤの指による操作で、ゲームをプレイすることができる。たとえば、キックボードゲームでは、キックボーダを指で操作し、その操作速度をタッチデータから計算し、操作速度に応じて、キックボーダの移動速度を変化させるようにしてある。
【特許文献１】特開２００２−９３９号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１では、キックボーダのようなプレイヤキャラクタの移動速度をタッチ操作によって制御するようにしてあるが、プレイヤキャラクタの移動方向は一方向であり、任意の方向にプレイヤキャラクタを移動させることができない。つまり、ゲームが単調であり、面白味に欠ける。
【０００４】
それゆえに、この発明の主たる目的は、新規な、ゲームプログラムおよびゲーム装置を提供することである。
【０００５】
この発明の他の目的は、プレイヤキャラクタの移動を自在に操ることができる、ゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【０００６】
請求項１の発明は、少なくともプレイヤによって操作されるプレイヤキャラクタを含むゲーム空間の一部をゲーム画像として表示する表示器および表示器に関連して設けられるタッチパネルを備えるゲーム装置のゲームプログラムである。このゲームプログラムは、ゲーム装置のプロセサに、タッチ入力検出ステップ、タッチ座標検出ステップ、差分検出ステップ、比較ステップ、位置検出ステップ、および移動処理ステップを実行させる。タッチ入力検出ステップは、タッチパネルへのタッチ入力の有無を一定時間毎に検出する。タッチ座標検出ステップは、タッチ入力検出ステップによって検出されたタッチ入力に基づくタッチ座標を検出する。差分検出ステップは、タッチ入力検出ステップによってタッチ入力が有る状態が連続して検出されたとき、直前の第１タッチ座標と現在の第２タッチ座標との差分を検出する。比較ステップは、差分検出ステップによって検出された差分と所定の閾値とを比較する。位置検出ステップは、ゲーム空間におけるプレイヤキャラクタの現在位置を検出する。そして、移動処理ステップは、差分が所定の閾値を超えるとき、位置検出ステップによって検出された現在位置に基づいて決定される第１移動速度で差分が示す移動方向にプレイヤキャラクタを移動させる。
【０００７】
請求項１の発明では、ゲームプログラムは、ゲーム装置（１０：実施例で相当する参照符号。以下、同じ。）のプロセサ（４２）によって実行される。このゲーム装置は、少なくともプレイヤによって操作されるプレイヤキャラクタ（１０２）を含むゲーム空間の一部をゲーム画像（１００）として表示する表示器（１４）および表示器に関連して設けられるタッチパネル（２２）を備える。具体的には、ゲームプログラムは、ゲーム装置のプロセサに、タッチ入力検出ステップ（Ｓ１）、タッチ座標検出ステップ（Ｓ９）、差分検出ステップ（Ｓ２１）、比較ステップ（Ｓ２３）、位置検出ステップ（Ｓ５１）、および移動処理ステップ（Ｓ３５）を実行させる。タッチ入力検出ステップは、タッチパネルへのタッチ入力の有無を一定時間（たとえば、画面更新単位時間）毎に検出する。タッチ座標検出ステップは、タッチ入力検出ステップによって検出されたタッチ入力に基づくタッチ座標を検出する。差分検出ステップは、タッチ入力検出ステップによってタッチ入力が有る状態が連続して検出されたとき、直前の第１タッチ座標と現在の第２タッチ座標との差分を検出する。つまり、プレイヤ（操作者）によるスクロール操作が有る場合に、一定時間における当該スクロール操作の長さを検出する。比較ステップは、差分検出ステップによって検出された差分（一定時間におけるスクロール操作の長さ）と所定の閾値とを比較する。位置検出ステップは、ゲーム空間におけるプレイヤキャラクタの現在位置を検出する。そして、移動処理ステップは、差分が所定の閾値を超えるとき、位置検出ステップによって検出された現在位置に基づいて決定される第１移動速度で差分が示す移動方向にプレイヤキャラクタを移動させる。つまり、ゲーム空間におけるプレイヤキャラクタの位置に応じて決定される第１移動速度で、たとえば、ストローク操作の方向にプレイヤキャラクタは移動される。
【０００８】
請求項１の発明によれば、プレイヤのストローク操作に基づいて決定される移動速度で、ストローク操作の方向にプレイヤキャラクタを移動させることができるので、所望の方向にプレイヤキャラクタを移動させることができる。つまり、直感的な操作ができ、操作性を向上させることができる。
【０００９】
また、プレイヤの現在位置に応じて第１移動速度を決定するので、たとえば、ゲーム空間における背景（地形）に応じた第１移動速度を決定することができ、したがって、ゲームのリアリティを表現することができ、ゲームが単調になるのを防止することができる。
【００１０】
請求項２の発明は請求項１に従属し、ゲーム装置は、複数種類の地形情報で構成されるゲームマップを記憶する記憶手段をさらに備え、位置検出ステップは、記憶手段に記憶されるゲームマップ上におけるプレイヤキャラクタの現在位置を検出し、移動処理ステップは、地形情報毎に定義されている速度パラメータに基づいて、位置検出ステップによって検出された現在位置が属する地形情報に応じた演算を行うことにより決定される第１移動速度で差分が示す移動方向にプレイヤキャラクタを移動させる。
【００１１】
請求項２の発明では、ゲーム装置は、複数種類の地形情報で構成されるゲームマップ（４８２ｂ）を記憶する記憶手段（４８）をさらに備える。位置検出ステップは、記憶手段に記憶されるゲームマップ上におけるプレイヤキャラクタの現在位置を検出する。移動処理ステップは、地形情報毎に定義される速度パラメータに基づいて、位置検出ステップによって検出された現在位置が属する地形情報に応じた演算を行うことにより決定される第１移動速度で差分が示す移動方向にプレイヤキャラクタを移動させる。つまり、プレイヤキャラクタの第１移動速度は、その現在位置に対応するゲームマップ上の地形に応じて決定されるのである。
【００１２】
請求項２の発明によれば、プレイヤキャラクタの現在位置における地形情報に定義される速度パラメータに基づいてその移動速度が決定されるので、ゲームが単調になるのを防止することができる。また、ゲームのリアリティを表現することができる。
【００１３】
請求項３の発明は請求項１または２に従属し、プレイヤキャラクタが移動中か否かを判定する移動判定ステップをさらに実行させ、移動処理ステップは、タッチ入力検出ステップによってタッチ入力が無い状態が検出され、移動判定ステップによってプレイヤキャラクタが移動中であると判定されたとき、第１減速度を現在の移動速度から減算した第２移動速度を算出する第２移動速度算出ステップ、および差分が所定の閾値以下であり、移動判定ステップによってプレイヤキャラクタが移動中であると判定されたとき、第１減速度よりも大きい第２減速度を現在の移動速度から減算した第３移動速度を算出する第３移動速度算出ステップを含む。
【００１４】
請求項３の発明では、移動判定ステップ（Ｓ３，Ｓ２７）は、プレイヤキャラクタが移動中か否かを判定する。移動処理ステップは、第２移動速度算出ステップ（Ｓ７，Ｓ３３）および第３移動速度算出ステップ（Ｓ２９，Ｓ３１，Ｓ３３）を含む。第２移動速度算出ステップは、タッチ入力検出ステップによってタッチ入力がない状態が検出され、移動判定ステップによってプレイヤキャラクタが移動中であると判定されたき、現在の移動速度から第１減速度を減算した第２移動速度を算出する。つまり、ストローク操作を終了すると、プレイヤキャラクタは、第１減速度で次第に（慣性的に）減速され、停止する。また、第３移動速度算出ステップは、差分が所定の閾値以下であり、移動判定ステップによってプレイヤキャラクタが移動中であると判定されたとき、第１減速度よりも大きい第２減速度を現在の移動速度から減算した第３移動速度を算出する。つまり、プレイヤキャラクタの移動中に、所定の閾値以下の長さのストローク操作があると、第２減速度で減速させ、プレイヤキャラクタを急停止させる。
【００１５】
請求項３の発明によれば、プレイヤキャラクタの移動中に、ストローク操作を止めた場合には、プレイヤキャラクタを次第に減速させ、所定の閾値以下のストローク操作をした場合には、プレイヤキャラクタを急激に減速させるので、ストローク操作の仕方によって、減速方法を変化させることができる。つまり、プレイヤキャラクタの移動を自在に操ることができる。
【００１６】
請求項４の発明は請求項３に従属し、位置検出ステップによって検出された現在位置に基づいて第１減速度および第２減速度を決定する減速度決定ステップをさらに実行させる。
【００１７】
請求項４の発明では、減速度決定ステップ（Ｓ７，Ｓ２９，Ｓ３１）は、位置検出ステップによって検出されたプレイヤキャラクタの現在位置に基づいて第１減速度および第２減速度を決定する。
【００１８】
請求項４の発明によれば、第１移動速度のみならず、減速度もプレイヤキャラクタの現在位置に基づいて変化させるので、ゲームのリアリティを表現することができ、ゲームが単調になるのを防止することができる。
【００１９】
請求項５の発明は請求項３または４に従属し、第３移動速度算出ステップは、差分が連続して所定の閾値以下であるとき、第２減速度を次第に大きくさせて第３移動速度を算出する。
【００２０】
請求項５の発明では、第３移動速度算出ステップは、差分が連続して所定の閾値以下であるとき、第２減速度を次第に大きくさせて第３移動速度を算出する。つまり、プレイヤキャラクタは急停止する。
【００２１】
請求項５の発明によれば、プレイヤキャラクタを急停止させることもできる。
【００２２】
請求項６の発明は、少なくともプレイヤによって操作されるプレイヤキャラクタを含むゲーム空間の一部をゲーム画像として表示する表示器および表示器に関連して設けられるタッチパネルを備えるゲーム装置である。このゲーム装置は、タッチ入力検出手段、タッチ座標検出手段、差分検出手段、比較手段、位置検出手段、および移動処理手段を備える。タッチ入力検出手段は、タッチパネルへのタッチ入力の有無を一定時間毎に検出する。タッチ座標検出手段は、タッチ入力検出手段によって検出されたタッチ入力に基づくタッチ座標を検出する。差分検出手段は、タッチ入力検出手段によってタッチ入力が有る状態が連続して検出されたとき、直前の第１タッチ座標と現在の第２タッチ座標との差分を検出する。比較手段は、差分検出手段によって検出された差分と所定の閾値とを比較する。位置検出手段は、ゲーム空間におけるプレイヤキャラクタの現在位置を検出する。そして、移動処理手段は、差分が所定の閾値よりも大きいとき、位置検出手段によって検出された現在位置に基づいて決定される移動速度で差分が示す移動方向にプレイヤキャラクタを移動させる。
【００２３】
請求項６の発明においても請求項１の発明と同様に、直感的な操作ができ、操作性を向上させることができる。
【発明の効果】
【００２４】
この発明によれば、連続して検出されるタッチ座標の差分が示す方向にプレイヤキャラクタを移動させるので、プレイヤは自在にプレイヤキャラクタを移動させることができる。また、プレイヤキャラクタの位置に応じて移動速度や減速度を決定するので、ゲームが単調になるのを防止することができる。
【００２５】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２６】
図１を参照して、この発明の一実施例であるゲーム装置１０は、第１の液晶表示器（ＬＣＤ）１２および第２のＬＣＤ１４を含む。このＬＣＤ１２およびＬＣＤ１４は、所定の配置位置となるようにハウジング1６に収納される。この実施例では、ハウジング１６は、上側ハウジング１６ａと下側ハウジング１６ｂとによって構成され、ＬＣＤ１２は上側ハウジング１６ａに収納され、ＬＣＤ１４は下側ハウジング１６ｂに収納される。したがって、ＬＣＤ１２とＬＣＤ１４とは縦（上下）に並ぶように近接して配置される。
【００２７】
なお、この実施例では、表示器としてＬＣＤを用いるようにしてあるが、ＬＣＤに代えて、ＥＬ(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【００２８】
図１からも分かるように、上側ハウジング１６ａは、ＬＣＤ１２の平面形状よりも少し大きな平面形状を有し、一方主面からＬＣＤ１２の表示面を露出するように開口部が形成される。一方、下側ハウジング１６ｂは、その平面形状が上側ハウジング１６ａよりも横長に選ばれ、横方向の略中央部にＬＣＤ１４の表示面を露出するように開口部が形成される。また、下側ハウジング１６ｂには、音抜き孔１８が形成されるとともに、操作スイッチ２０（２０ａ，２０ｂ，２０ｃ，２０ｄ，２０ｅ，２０Ｌおよび２０Ｒ）が設けられる。
【００２９】
また、上側ハウジング１６ａと下側ハウジング１６ｂとは、上側ハウジング１６ａの下辺（下端）と下側ハウジング１６ｂの上辺（上端）の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、ＬＣＤ１２の表示面とＬＣＤ１４の表示面とが対面するように、上側ハウジング１６ａを回動させて折りたたんでおけば、ＬＣＤ１２の表示面およびＬＣＤ１４の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング１６ａと下側ハウジング１６ｂとは、回動可能に連結せずに、それらを一体的（固定的）に設けたハウジング１６を形成するようにしてもよい。
【００３０】
操作スイッチ２０は、方向指示スイッチ（十字スイッチ）２０ａ，スタートスイッチ２０ｂ、セレクトスイッチ２０ｃ、動作スイッチ（Ａボタン）２０ｄ、動作スイッチ（Ｂボタン）２０ｅ、動作スイッチ（Ｌボタン）２０Ｌおよび動作スイッチ（Ｒボタン）２０Ｒを含む。スイッチ２０ａ，２０ｂおよび２０ｃは、下側ハウジング１６ｂの一方主面であり、ＬＣＤ１４の左側に配置される。また、スイッチ２０ｄおよび２０ｅは、下側ハウジング１６ｂの一方主面であり、ＬＣＤ１４の右側に配置される。さらに、スイッチ２０Ｌおよびスイッチ２０Ｒは、それぞれ、下側ハウジング１６ｂの上端（天面）の一部であり、上側ハウジング１６ａとの連結部以外に当該連結部を挟むように、左右に配置される。
【００３１】
方向指示スイッチ２０ａは、ディジタルジョイスティックとして機能し、４つの押圧部の１つを操作することによって、プレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。スタートスイッチ２０ｂは、プッシュボタンで構成され、ゲームを開始（再開）したり、一時停止(Pause)したりする等に用いられる。セレクトスイッチ２０ｃは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【００３２】
動作スイッチ２０ｄすなわちＡボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(ＲＰＧ)やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ２０ｅすなわちＢボタンは、プッシュボタンで構成され、セレクトスイッチ２０ｃで選択したゲームモードの変更やＡボタン２０ｄで決定したアクションの取り消し等のために用いられる。
【００３３】
動作スイッチ（左押しボタン）２０Ｌおよび動作スイッチ（右押しボタン）２０Ｒは、プッシュボタンで構成され、左押しボタン（Ｌボタン）２０Ｌおよび右押しボタン（Ｒボタン）２０Ｒは、Ａボタン２０ｄおよびＢボタン２０ｅと同様の操作に用いることができ、また、Ａボタン２０ｄおよびＢボタン２０ｅの補助的な操作に用いることができる。
【００３４】
また、ＬＣＤ１４の上面には、タッチパネル２２が装着される。タッチパネル２２としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル２２は、その上面（検出面）をスティック２４ないしはペン（スタイラスペン）或いは指（以下、これらを「スティック２４等」という場合がある。）で、押圧したり、撫でたり、触れたりすることにより操作すると、スティック２４等の操作位置の座標を検出して、検出した座標（検出座標）に対応する座標データを出力する。
【００３５】
この実施例では、ＬＣＤ１４（ＬＣＤ１２も同じ、または略同じ。）の表示面の解像度は２５６ｄｏｔ×１９２ｄｏｔであり、タッチパネル２２の検出面の検出精度もその解像度に対応して２５６ｄｏｔ×１９２ｄｏｔとしてある。ただし、タッチパネル２２の検出面の検出精度は、ＬＣＤ１４の表示面の解像度よりも低くてもよく、高くてもよい。
【００３６】
ＬＣＤ１２およびＬＣＤ１４には異なるゲーム画像（ゲーム画面）を表示することができる。たとえば、レースゲームでは、一方のＬＣＤに移動体の運転席からの視点による画面を表示し、または、移動体をその後ろまたは上方から追従するカメラで撮影した画像を表示し、他方のＬＣＤにレース（コース）全体の画面を表示することができる。また、ＲＰＧでは、一方のＬＣＤにマップやプレイヤキャラクタ等のキャラクタを表示し、他方のＬＣＤにプレイヤキャラクタが所有するアイテムを表示することができる。さらに、一方のＬＣＤ（たとえば、ＬＣＤ１２）にゲームのプレイ画面を表示し、他方のＬＣＤ（たとえば、ＬＣＤ１４）に当該ゲームを操作するための文字情報やアイコン等を含むゲーム画面（操作画面）を表示することができる。さらには、２つのＬＣＤ１２およびＬＣＤ１４を合わせて１つの画面として用いることにより、プレイヤキャラクタが倒さなければならない巨大な怪物（敵キャラクタ）を表示することもできる。
【００３７】
したがって、プレイヤはスティック２４等でタッチパネル２２を操作することにより、ＬＣＤ１４の画面に表示されるプレイヤキャラクタ、敵キャラクタ、アイテムキャラクタ、文字情報、アイコン等のキャラクタ画像を指示（指定）したり、移動させたり、コマンドを選択したりすることができる。また、３次元ゲーム空間に設けられる仮想カメラ（視点）の方向を変化させたり、ゲーム画面をスクロール(徐々に移動表示)させたりすることもできる。
【００３８】
このように、ゲーム装置１０は、２画面分の表示部となるＬＣＤ１２およびＬＣＤ１４を有し、いずれか一方（この実施例では、ＬＣＤ１４）の上面にタッチパネル２２が設けられるので、２画面（１２，１４）と２系統の操作部（２０，２２）とを有する構成になっている。
【００３９】
また、この実施例では、スティック２４は、たとえば上側ハウジング１６ａの側面（右側面）近傍に設けられる収納部（収納穴）２６に収納することができ、必要に応じて取り出される。ただし、スティック２４を設けない場合には、収納部２６を設ける必要もない。
【００４０】
さらに、ゲーム装置１０はメモリカード（またはゲームカートリッジ）２８を含み、このメモリカード２８は着脱自在であり、下側ハウジング１６ｂの裏面ないしは下端（底面）に設けられる挿入口３０から挿入される。図１では省略するが、挿入口３０の奥部には、メモリカード２８の挿入方向先端部に設けられるコネクタ（図示せず）と接合するためのコネクタ４６（図２参照）が設けられており、したがって、メモリカード２８が挿入口３０に挿入されると、コネクタ同士が接合され、ゲーム装置１０のＣＰＵコア４２（図２参照）がメモリカード２８にアクセス可能となる。
【００４１】
なお、図１では表現できないが、下側ハウジング１６ｂの音抜き孔１８と対応する位置であり、この下側ハウジング１６ｂの内部にはスピーカ３２（図２参照）が設けられる。
【００４２】
また、図１では省略するが、たとえば、下側ハウジング１６ｂの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング１６ｂの底面側には、電源スイッチ、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【００４３】
図２はゲーム装置１０の電気的な構成を示すブロック図である。図２を参照して、ゲーム装置１０は電子回路基板４０を含み、この電子回路基板４０にはＣＰＵコア４２等の回路コンポーネントが実装される。ＣＰＵコア４２は、バス４４を介してコネクタ４６に接続されるととともに、ＲＡＭ４８、第１のグラフィック処理ユニット（ＧＰＵ）５０、第２のＧＰＵ５２、入出カインターフエース回路（以下、「Ｉ／Ｆ回路」という。）５４およびＬＣＤコントローラ６０が接続される。
【００４４】
コネコタ４６には、上述したように、メモリカード２８が着脱自在に接続される。メモリカード２８は、ＲＯＭ２８ａおよびＲＡＭ２８ｂを含み、図示は省略するが、ＲＯＭ２８ａおよびＲＡＭ２８ｂは、互いにバスで接続され、さらに、コネクタ４６と接合されるコネクタ（図示せず）に接続される。したがって、上述したように、ＣＰＵコア４２は、ＲＯＭ２８ａおよびＲＡＭ２８ｂにアクセスすることができるのである。
【００４５】
ＲＯＭ２８ａは、ゲーム装置１０で実行すべきゲーム（仮想ゲーム）のためのゲームプログラム、画像（キャラクタ画像、背景画像、アイテム画像、アイコン（ボタン）画像、メッセージ画像など）データおよびゲームに必要な音（音楽）のデータ（音データ）等を予め記憶する。ＲＡＭ（バックアップＲＡＭ）２８ｂは、そのゲームの途中データやゲームの結果データを記憶（セーブ）する。
【００４６】
ＲＡＭ４８は、バッファメモリないしはワーキングメモリとして使用される。つまり、ＣＰＵコア４２は、メモリカード２８のＲＯＭ２８ａに記憶されたゲームプログラム、画像データおよび音データ等をＲＡＭ４８にロードし、ロードしたゲームプログラムを実行する。また、ＣＰＵコア４２は、ゲームの進行に応じて一時的に発生するデータ（ゲームデータやフラグデータ）をＲＡＭ４８に記憶しつつゲーム処理を実行する。
【００４７】
なお、ゲームプログラム、画像データおよび音データ等は、ＲＯＭ２８ａから一度に全部、または部分的かつ順次的に読み出され、ＲＡＭ４８に記憶（ロード）される。
【００４８】
ＧＰＵ５０およびＧＰＵ５２は、それぞれ、描画手段の一部を形成し、たとえばシングルチップＡＳＩＣで構成され、ＣＰＵコア４２からのグラフィックスコマンド（graphics command ：作画命令）を受け、そのグラフィックスコマンドに従ってゲーム画像データを生成する。ただし、ＣＰＵコア４２は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム（ゲームプログラムに含まれる。）をＧＰＵ５０およびＧＰＵ５２のそれぞれに与える。
【００４９】
また、ＧＰＵ５０には、第１のビデオＲＡＭ（以下、「ＶＲＡＭ」という。）５６が接続され、ＧＰＵ５２には、第２のＶＲＡＭ５８が接続される。ＧＰＵ５０およびＧＰＵ５２が作画コマンドを実行するにあたって必要なデータ（画像データ：キャラクタデータやテクスチャ等のデータ）は、ＧＰＵ５０およびＧＰＵ５２が、それぞれ、第１のＶＲＡＭ５６および第２のＶＲＡＭ５８にアクセスして取得する。なお、ＣＰＵコア４２は、描画に必要な画像データをＧＰＵ５０およびＧＰＵ５２を介して第１のＶＲＡＭ５６および第２のＶＲＡＭ５８に書き込む。ＧＰＵ５０はＶＲＡＭ５６にアクセスして描画のためのゲーム画像データを作成し、ＧＰＵ５２はＶＲＡＭ５８にアクセスして描画のためのゲーム画像データを作成する。
【００５０】
ＶＲＡＭ５６およびＶＲＡＭ５８は、ＬＣＤコントローラ６０に接続される。ＬＣＤコントローラ６０はレジスタ６２を含み、レジスタ６２はたとえば１ビットで構成され、ＣＰＵコア４２の指示によって「０」または「１」の値（データ値）を記憶する。ＬＣＤコントローラ６０は、レジスタ６２のデータ値が「０」である場合には、ＧＰＵ５０によって作成されたゲーム画像データをＬＣＤ１２に出力し、ＧＰＵ５２によって作成されたゲーム画像データをＬＣＤ１４に出力する。また、ＬＣＤコントローラ６０は、レジスタ６２のデータ値が「１」である場合には、ＧＰＵ５０によって作成されたゲーム画像データをＬＣＤ１４に出力し、ＧＰＵ５２によって作成されたゲーム画像データをＬＣＤ１２に出力する。
【００５１】
なお、ＬＣＤコントローラ６０は、ＶＲＡＭ５６およびＶＲＡＭ５８から直接ゲーム画像データを読み出したり、ＧＰＵ５０およびＧＰＵ５２を介してＶＲＡＭ５６およびＶＲＡＭ５８からゲーム画像データを読み出したりする。
【００５２】
Ｉ／Ｆ回路５４には、操作スイッチ２０，タッチパネル２２およびスピーカ３２が接続される。ここで、操作スイッチ２０は、上述したスイッチ２０ａ，２０ｂ，２０ｃ，２０ｄ，２０ｅ，２０Ｌおよび２０Ｒであり、操作スイッチ２０が操作されると、対応する操作信号（操作データ）がＩ／Ｆ回路５４を介してＣＰＵコア４２に入力される。また、タッチパネル２２からの座標データがＩ／Ｆ回路５４を介してＣＰＵコア４２に入力される。さらに、ＣＰＵコア４２は、ゲーム音楽（ＢＧＭ）、効果音またはゲームキャラクタの音声（擬制音）などのゲームに必要な音データをＲＡＭ４８から読み出し、Ｉ／Ｆ回路５４を介してスピーカ３２から出力する。
【００５３】
図３（Ａ）および図３（Ｂ）は、この実施例のゲーム装置１０のＬＣＤ１４に表示されるゲーム画面１００の例を示す図解図である。図３（Ａ）に示すように、ゲーム画面１００では、３次元仮想空間（ゲーム空間）のうち、プレイヤキャラクタ１０２を含む一部の領域（範囲）が表示される。図３（Ａ）および図３（Ｂ）から分かるように、プレイヤキャラクタ１０２はゲーム画面１００の略中央に表示される。また、ゲーム画面１００には、プレイヤキャラクタ１０２が走行可能な道路オブジェクト１０４、草原オブジェクト１０６および森林オブジェクト１０８のような背景オブジェクトも表示される。
【００５４】
なお、図３（Ａ）および図３（Ｂ）では省略するが、上述したように、ＬＣＤ１４上にタッチパネル２２が設けられる。
【００５５】
たとえば、図３（Ａ）に示すように、プレイヤがスティック２４をＬＣＤ１４（タッチパネル２２）上で撫でるように画面右方に移動（スライド）させると、すなわち、スティック２４を用いて右方向にドラッグ操作ないしストローク操作（以下、「ストローク操作」という。）すると、このストローク操作に従ってプレイヤキャラクタ１０２は３次元仮想空間（ゲーム空間）内を右方向に移動される。図３（Ｂ）はストローク操作に従ってプレイヤキャラクタ１０２が移動した後のゲーム画面１００である。
【００５６】
図面では表現することができないが、ストローク操作に従ってプレイヤキャラクタ１０２がゲーム空間内を移動される様子（アニメーション）がゲーム画面１００としてＬＣＤ１４に表示される。後で詳細に説明するが、プレイヤキャラクタ１０２は、ストローク操作に基づいて決定ないし算出される移動速度および移動方向（ストローク操作と同じ方向）で移動される。
【００５７】
この実施例のゲーム（仮想ゲーム）では、図４に示すような３次元仮想空間（ゲーム空間）が設けられ、このゲーム空間内に設定されるスタート地点から出発し、複数の通過ポイントを通過して、ゴール地点に達するまでの時間を競う。図示は省略するが、ゲーム空間内には、敵キャラクタやアイテムキャラクタ等の他のキャラクタも存在する。また、分かり易く示すために、上述したような背景オブジェクト（１０４，１０６，１０８等）は省略してある。ゲーム中では、たとえば、敵キャラクタと競争したり、所定のアイテムを取得することにより、プレイヤキャラクタ１０２のパラメータ（ライフ、レベル等）が変化されたりする。
【００５８】
なお、ゲーム空間の全体を、ゲーム画面１２０としてＬＣＤ１２に表示することもできる。この場合には、プレイヤは、ＬＣＤ１２に表示されるゲーム画面１２０によってゲーム空間の全体におけるプレイヤキャラクタ１０２または敵キャラクタ或いはアイテムの位置を知ることができ、ＬＣＤ１４に表示されるゲーム画面１００によってプレイヤキャラクタ１０２が現在走行中の一部の領域についての詳細を知ることができる。
【００５９】
ただし、図３（Ａ）および図３（Ｂ）に示すように、ゲーム画面１００では、プレイヤキャラクタ１０２を画面中央に表示するようにしてあるため、背景オブジェクト（１０４，１０６，１０８）の表示位置の変化（移動）により、プレイヤキャラクタ１０２が移動したことが分かる。
【００６０】
なお、ゲーム空間に存在するプレイヤキャラクタ１０２を移動させずに、ゲーム空間内の背景オブジェクト（１０４，１０６，１０８）を移動させることにより、プレイヤキャラクタ１０２が移動しているように見せることもできる。かかる場合には、ストローク操作に基づいて決定ないし算出される移動速度で、ストローク操作とは逆向きに背景オブジェクトを移動させるようにすればよい。つまり、プレイヤのストローク操作によって、プレイヤキャラクタ１０２と背景オブジェクトとの相対位置が変化されるのである。
【００６１】
次に、図５および図６を用いて、プレイヤキャラクタ１０２の移動制御について説明することにする。ただし、以下の説明では、１フレーム（画面更新単位時間：１／６０秒）期間におけるストローク操作の長さが所定の閾値（たとえば、５ｄｏｔ）以下である場合には、当該ストローク操作を「超短入力」という。ただし、この実施例では、一点を押し続ける操作も超短入力に含まれる。また、１フレーム期間におけるストーク操作の長さが所定の閾値を超える場合には、当該ストローク操作を「短入力」という。そして、１フレーム期間を超えてストローク操作が継続し、各フレームにおけるストローク操作の長さが所定の閾値を超える場合には、当該ストローク操作を「長入力」という。つまり、「長入力」は、「短入力」の複数フレーム分の集まりと同等である。
【００６２】
図５（Ａ）は１回の短入力を行った場合にプレイヤキャラクタ１０２が移動する様子を示す。この図５（Ａ）に示す例（図５（Ｂ），図６（Ａ）および図６（Ｂ）も同様。）では、ストローク操作の向きは、図面の上方向である。図５（Ａ）に示すように、１回の短入力が行われると、プレイヤキャラクタ１０２は第０フレームから第１フレームまでの間、一定の移動速度（以下、「一定速度」という。）Ａで移動され、ストローク操作の終了（タッチオフ）により、一定の減速度Ｂで、第１フレームから第３フレームにかけて次第に（慣性的に）減速され、停止される。ここで、移動速度（説明の都合上、「新速度」という。）Ｖｊは、１フレーム毎に決定（算出）される。したがって、１フレーム期間におけるストローク操作の長さが所定の閾値を超える場合には、一定速度Ａが新速度Ｖｊとして決定され、ストローク操作が終了すると、減速度Ｂは現在の移動速度（現速度）Ｖｉから１フレーム毎に減算される。ただし、減速が開始される時点における現速度Ｖｉは一定速度Ａである。
【００６３】
具体的には、１フレーム期間におけるストローク操作の長さは、現在（現フレーム）におけるタッチ座標（現タッチ座標）Ｐｊ（Ｘｊ，Ｙｊ）を終点とし、１つ手前のフレーム（前フレーム）におけるタッチ座標（前タッチ座標）Ｐｉ（Ｘｉ，Ｙｉ）を始点とするベクトルの大きさ（スカラ）で決定される。つまり、１フレーム期間におけるストローク操作の長さ（座標距離）ΔＤは数１に従って算出される。
【００６４】
［数１］
ΔＤ＝（ΔＸ，ΔＹ）＝（Ｘｊ−Ｘｉ，Ｙｊ−Ｙｉ）
また、一定の減速度Ｂで減速する場合には、新速度Ｖｊは数２に従って算出される。
【００６５】
［数２］
Ｖｊ＝Ｖｉ−Ｂ
ただし、現速度Ｖｉは、新速度Ｖｊを算出する直前のフレームすなわち前フレームで決定または算出された新速度Ｖｊである。なお、新速度Ｖｊの決定および算出方法は、後述する図５（Ｂ）、図６（Ａ）および図６（Ｂ）の場合も同じである。また、プレイヤキャラクタ１０２の移動中（走行中）において、ストローク操作の長さが所定の閾値以下となる場合には、図６（Ｂ）を用いて後述するように、一定の減速度Ｂよりも大きい減速度で減速される。
【００６６】
ここで、図５（Ａ）（図５（Ｂ）、図６（Ａ）および図６（Ｂ）も同様。）に示すように、プレイヤキャラクタ１０２の右側に記載される矢印は、ストローク操作によってプレイヤキャラクタ１０２が移動される距離（移動距離）およびその方向（移動方向）を示してある。また、プレイヤがストローク操作を開始（タッチオン）した時点を第０フレームとし、プレイヤキャラクタ１０２は第０フレームから移動を開始され、１フレーム毎に、その移動が制御される。
【００６７】
ただし、プレイヤキャラクタ１０２の移動距離は、プレイヤがストローク操作しているときに一定速度Ａで移動した距離と、プレイヤがストローク操作を終了（タッチオフ）した後に減速度Ｂで減速を開始して停止するまでの距離との和である。移動距離の長さは、後述する図５（Ｂ）および図６（Ａ）の場合も同様である。また、プレイヤキャラクタ１０２の移動方向はストローク操作と同じ方向（ここでは、上方向）であり、実際には１フレーム毎に検出されるタッチ座標（座標データ）に基づいて決定される。具体的には、プレイヤキャラクタ１０２の移動方向は、現タッチ座標Ｐｊ（Ｘｊ，Ｙｊ）を終点とし、前タッチ座標Ｐｉ（Ｘｉ，Ｙｉ）を始点とするベクトルの方向で決定される。これは、後述する図５（Ｂ）、図６（Ａ）および図６（Ｂ）の場合も同じである。
【００６８】
図５（Ｂ）は１回の長入力を行った場合にプレイヤキャラクタ１０２が移動する様子を示す。たとえば、図５（Ｂ）に示す例では、第０フレームから第３フレームまでの間において、ストローク操作が継続的に行われ、その後、ストローク操作が終了された場合について示してある。したがって、プレイヤキャラクタ１０２は、第０フレームから第３フレームまでの間において、一定速度Ａで移動される。そして、プレイヤキャラクタ１０２は、第３フレームから第５フレームにかけて減速度Ｂで減速され、停止される。減速方法、移動距離の長さおよび移動方向の決定は、それぞれ、上述したとおりである。
【００６９】
図５（Ａ）および図５（Ｂ）を用いて説明したように、１フレーム期間におけるストローク操作の長さが所定の閾値を超える場合には、プレイヤキャラクタ１０２は、一定速度Ａで当該ストロークの方向に移動される。また、所定の閾値を超える長さのストローク操作が複数のフレームに跨って継続される場合には、一定速度Ａで移動される期間が長くなり、したがってプレイヤキャラクタ１０２の移動距離も長くなる。
【００７０】
図６（Ａ）は短入力が３回連続して行われた場合にプレイヤキャラクタ１０２が移動する様子を示す。上述したように、ストローク操作の開始時点を第０フレームとしてあり、ここでは、３回連続してストローク操作が行われるため、図６（Ａ）に示すように、各ストローク操作の開始時点に対応して、第０フレームと記載してある。短入力が３回連続して行われる場合には、１回目と２回目のストローク操作の終了後に、プレイヤキャラクタ１０２は減速を開始するまたは開始しようとするが、２回目と３回目のストローク操作が開始されることによって、継続的に一定速度Ａで移動されることになる。そして、３回目のストローク操作が終了した後に、図５（Ａ）および図５（Ｂ）に示した場合と同様に、プレイヤキャラクタ１０２は減速され、停止される。
【００７１】
図６（Ｂ）は短入力を３回連続して行った後に、超短入力を２回連続して行った場合にプレイヤキャラクタ１０２が移動される様子を示す。まず、短入力を３回連続して行う場合のプレイヤキャラクタ１０２の移動については、図６（Ａ）に示した場合と同じであるため、重複した説明は省略する。短入力を３回連続した後では、プレイヤキャラクタ１０２は、一定の減速度Ｂで減速するように制御される。続いて、プレイヤキャラクタ１０２が減速しながら移動しているときに、超短入力があると、プレイヤキャラクタ１０２が、一定の減速度Ｂよりも大きい減速度で減速するように、新速度Ｖｊが数２に従って算出される。具体的には、プレイヤキャラクタ１０２が移動中に、超短入力がある場合には、減速度Ｂは数３に従って更新される。
【００７２】
［数３］
Ｂ＝Ｂ＋α
ここで、“＝”は代入を意味する。また、減速度Ｂの増加量αは、この仮想ゲームのプログラマや開発者によって予め決定（設定）される値である。この減速度Ｂも１フレーム毎に更新され、超短入力が継続する場合には、減速度Ｂが次第に大きくなり、したがって、プレイヤキャラクタ１０２は急停止される。したがって、図６（Ｂ）に示す場合のプレイヤキャラクタ１０２の移動距離は、短入力によりストローク操作しているときに一定速度Ａで移動した距離と、超短入力によりストローク操作しているときに次第に大きくなる減速度Ｂで移動した距離との和である。
【００７３】
また、図示は省略するが、この実施例では、プレイヤキャラクタ１０２が走行している位置ないし場所に応じて、一定速度Ａと減速度Ｂとを変化させるようにしてある。上述したように、ゲーム空間（ゲームマップ）には、道路オブジェクト１０４、草原オブジェクト１０６および森林オブジェクト１０８が設けられており、プレイヤキャラクタ１０２は、道路を走行し易く、草原、森林になるに連れて、走行し難くなる。したがって、この実施例では、プレイヤキャラクタ１０２が走行している位置（現在位置）の属する（に対応する）ゲームマップ上の地形に応じて速度を決定するようにしてある。具体的には、プレイヤキャラクタ１０２が道路を走行している場合に決定される一定速度ＡをＡ１とし、草原を走行している場合に決定される一定速度ＡをＡ２とし、そして、森林を走行している場合に決定される一定速度ＡをＡ３とすると、数４の関係が成り立つ。
【００７４】
［数４］
Ａ１＞Ａ２＞Ａ３
一方、走行のし易さは、逆に言うと、停止のし難さとなるため、プレイヤキャラクタ１０２の現在位置に対応するゲームマップ上の地形に応じて、決定する減速度Ｂを変化させることもできる。この実施例では、プレイヤキャラクタ１０２が道路を走行している場合に決定される減速度ＢをＢ１とし、草原を走行している場合に決定される減速度ＢをＢ２とし、そして、森林を走行している場合に決定される減速度ＢをＢ３とすると、数５の関係が成り立つ。
【００７５】
［数５］
Ｂ３＞Ｂ２＞Ｂ１
このように、プレイヤキャラクタ１０２の走行している現在位置に対応するゲームマップ上の地形に応じて、異なる一定速度Ａ（Ａ１，Ａ２，Ａ３）および減速度Ｂ（Ｂ１，Ｂ２，Ｂ３）が決定されるので、ゲームが単調にならず、しかもリアリティを与えることができる。
【００７６】
図７はゲーム装置１０の内部に設けられるＲＡＭ４８のメモリマップの例を示す図解図である。この図７を参照して、ＲＡＭ４８は、プログラム記憶領域４８０およびデータ記憶領域４８２を含む。プログラム記憶領域４８０はゲームプログラムを記憶し、ゲームプログラムは、ゲームメイン処理プログラム４８０ａ、画像生成プログラム４８０ｂ、画像表示プログラム４８０ｃ、タッチ入力検出プログラム４８０ｄ、座標変化算出プログラム４８０ｅおよび移動速度算出プログラム４８０ｆなどによって構成される。
【００７７】
ゲームメイン処理プログラム４８０ａは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム４８０ｂは、ゲーム空間に設けられるステージ（コース１０４）、プレイヤキャラクタ（１０２，１０８，１１０）、ノンプレイヤキャラクタ（プレイヤの操作によらないで、コンピュータ（ＣＰＵコア４２）により移動等を制御されるキャラクタ。）および背景オブジェクトなどのゲーム画像を生成するためのプログラムである。画像表示プログラム４８０ｃは、画像生成プログラム４８０ｂに従って生成されたゲーム画像（ゲーム画面）をＬＣＤ１２およびＬＣＤ１４に表示するためのプログラムである。
【００７８】
タッチ入力検出プログラム４８０ｄは、タッチ入力の有無を一定時間（たとえば、１フレーム）毎に検出する。ただし、タッチ入力の有無は、タッチパネル２２から座標データが入力されるか否かで判断する。タッチ入力が有る場合には、後述するタッチ入力フラグ４８２ｅをオンするとともに、タッチ入力が示すタッチ座標、つまりタッチパネル２２から入力される座標データを後述する座標バッファ４８２ｃに記憶（一時記憶）する。一方、タッチ入力が無い場合には、タッチ入力フラグ４８２ｅをオフする。
【００７９】
座標変化算出プログラム４８０ｅは、連続する複数の（この実施例では、２つの）フレームでタッチ座標（座標データ）が検出されたとき、つまりタッチ入力が継続するストローク操作が検出されたとき、２つのタッチ座標の変化（差分）を算出するためのプログラムである。ただし、２つのフレームは、現在のフレーム（現フレーム）およびその１フレーム手前のフレーム（前フレーム）である。
【００８０】
移動速度算出プログラム４８０ｆは、座標変化算出プログラム４８０ｅに従って算出されたタッチ座標の差分が所定の閾値を超えるか否かに基づいてプレイヤキャラクタ１０２の移動速度（新速度Ｖｊ）を算出（決定）するためのプログラムである。この実施例では、プレイヤキャラクタ１０２が停止しているときに、ストローク操作があり、タッチ座標の差分が閾値を超える場合には、新速度Ｖｊは一定速度Ａに決定される。このとき、プレイヤキャラクタ１０２の現在位置に応じて、一定速度Ａ１，Ａ２，Ａ３のいずれかが決定される。一方、タッチ座標の差分が所定の閾値以下である場合には、新速度Ｖｊは０である。また、プレイヤキャラクタ１０２が移動中（走行中）に、タッチ座標の差分が閾値以下である場合には、新速度Ｖｊは一定速度Ａから一定の減速度Ｂよりも大きい減速度（Ｂ＋α）を減算して算出される。ただし、プレイヤキャラクタ１０２が移動中に、タッチ座標の差分が所定の閾値を超える場合には、上述した場合と同様に、プレイヤキャラクタ１０２の現在位置に応じた一定速度Ａが決定される。さらには、移動速度算出プログラム４８０ｆは、プレイヤキャラクタ１０２の移動中に、タッチ入力検出プログラム４８０ｄに従ってタッチ入力が無い状態（タッチオフ）が検出されたときには、現速度Ｖｉから一定の減速度Ｂを減算した移動速度（新速度Ｖｊ）を算出するためのプログラムでもある。ただし、新速度Ｖｊは、差分に基づいて算出されるため、差分が検出される一定時間（１フレーム）毎に、決定または算出されることになる。さらに、移動速度算出プログラム４８０ｆは、算出した新速度Ｖｊの値に応じて、後述する走行中フラグ４８２ｇのオン／オフを制御するためのプログラムでもある。具体的には、新速度Ｖｊが０より大きい場合には、走行中フラグ４８２ｇをオンし、新速度Ｖｊが０である場合には、走行中フラグ４８２ｇをオフする。
【００８１】
なお、図示は省略するが、ゲームプログラム記憶領域４８０には、音再生プログラムやバックアッププログラムなども記憶される。音再生プログラムは、音（音楽）データを用いて、ゲームに必要な音（音楽）を再生するためのプログラムである。また、バックアッププログラムは、ゲームの進行に従って発生するデータ（ゲームの途中データや結果データ）をプレイヤの指示や所定のタイミング（イベント）に従ってメモリカード２８のＲＡＭ２８ｂに記憶（セーブ）するためのプログラムである。
【００８２】
データ記憶領域４８２には、オブジェクトデータ４８２ａ、マップデータ４８２ｂおよび速度データ４８２ｃのようなデータが記憶される。オブジェクトデータ４８２ａは、上述した画像生成プログラム４８０ｂに従ってゲーム画像を生成する際に使用するポリゴンデータやテクスチャデータを含み、またプレイヤの操作に従って更新される現在位置（３次元位置）についての位置データも含む。ただし、上述したような背景オブジェクト（１０２，１０４，１０６等）では、ゲーム空間（ゲームマップ）上において固定的に配置され、しかも同じ種類であっても異なる場所に配置される場合があるため、その位置データは複数記憶される場合もある。マップデータ４８２ｂは、図４に示したようなゲーム空間を表示するためのデータであり、具体的には、マス目で区切ったマップ（ゲームマップ）において、その各マス（ユニット）に配置する地形（背景オブジェクト）の種類ないし情報（地形情報）を示すデータである。つまり、マップデータ４８２ｂは、複数種類の地形（背景オブジェジェクト）を示すデータと各背景オブジェクトの配置位置ないし範囲を示すデータとによって構成される。速度データ４８２ｃは、プレイヤキャラクタ１０２の一定の移動速度Ａおよび減速度Ｂについてのデータ（数値データ）である。具体的には、一定速度Ａ１，Ａ２，Ａ３および減速度Ｂ１，Ｂ２，Ｂ３についての数値データが記憶される。ただし、上述したように、一定速度Ａ１〜Ａ３および減速度Ｂ１〜Ｂ３は、プレイヤキャラクタ１０２の現在位置が属するゲームマップ上の地形すなわち背景オブジェクト（道路オブジェクト１０４，草むらオブジェクト１０６，森林オブジェクト１０８）に対応して決定される速度である。つまり、一定速度Ａおよび減速度Ｂは、地形に応じて決定される速度パラメータである。
【００８３】
また、データ記憶領域４８２には、座標バッファ４８２ｄおよび速度バッファ４８２ｅが設けられる。座標バッファ４８２ｄは、タッチ入力検出プログラム４８０ｄに従って検出された座標データを記憶（一時記憶）するための領域であり、少なくとも２フレーム分の座標データを記憶可能な容量を有している。また、速度バッファ４８２ｅは、プレイヤキャラクタ１０２の現速度Ｖｉおよび現在の減速度Ｂについてのデータ（数値データ）を記憶（一時記憶）するための領域である。
【００８４】
さらに、データ記憶領域４８２には、タッチ入力フラグ４８２ｆおよび走行中フラグ４８２ｇが記憶される。タッチ入力フラグ４８２ｆは、１ビットのレジスタで構成され、タッチ入力検出プログラム４８０ｄに従ってそのオン／オフが制御される。この実施例では、タッチ入力フラグ４８２ｆをオンする場合には、レジスタにデータ値「１」が設定される。逆に、タッチ入力フラグ４８２ｆをオフする場合には、レジスタにデータ値「０」が設定される。走行中フラグ４８２ｇもまた、１ビットのレジスタで構成され、移動速度算出プログラム４８０ｆに従ってそのオン／オフが制御される。この実施例では、走行中フラグ４８２ｇをオンする場合には、レジスタにデータ値「１」が設定される。逆に、走行中フラグ４８２ｇをオフする場合には、レジスタにデータ値「０」が設定される。
【００８５】
なお、図示は省略するが、データ記憶領域４８２には、ゲームに必要な音を出力するための音（音楽）データやゲームの進行に伴って発生するデータ（ゲームの途中データ，結果データ）やフラグ（イベントフラグ）なども記憶される。
【００８６】
具体的には、上述したようなプレイヤキャラクタ１０２の移動制御を、図２に示したＣＰＵコア４２が図８および図９に示すフロー図に従って処理する。なお、図示は省略するが、ＣＰＵコア４２は、仮想ゲームのメインルーチンを別個独立に実行し、たとえば、ゲーム画面（１００，１２０）の生成（更新）および表示を実行したり、ゲームに必要な音を再生したりする。
【００８７】
図８を参照して、ＣＰＵコア４２は、移動制御処理を開始すると、ステップＳ１で、タッチパネル２２への入力があるかどうかを判断する。つまり、ＣＰＵコア４２は、タッチパネル２２から座標データが入力されたか否かを判断する。ステップＳ１で“ＮＯ”であれば、つまりタッチパネル２２への入力がなければ、ステップＳ３で、タッチ入力フラグ４８２ｆをオフし、ステップＳ５で、プレイヤキャラクタ１０２が走行中かどうかを判断する。具体的には、走行中フラグ４８２ｇがオンであるかどうかを判断する。ステップＳ５で“ＮＯ”であれば、つまり走行中フラグ４８２ｇがオフであれば、プレイヤキャラクタ１０２は停止していると判断して、図９に示すステップＳ３９に進む。一方、ステップＳ５で“ＹＥＳ”であれば、つまり走行中フラグ４８２ｇがオンであれば、プレイヤキャラクタ１０２が走行中であると判断して、ステップＳ７で、後述する減速度Ｂの決定処理（減速度決定処理：図１１参照）を実行して、図９に示すステップＳ３３に進む。
【００８８】
また、ステップＳ１で“ＹＥＳ”であれば、つまりタッチパネル２２への入力があれば、ステップＳ９で、入力された座標データすなわち現タッチ座標Ｐｊ（Ｘｊ，Ｙｊ）をデータ記憶領域４８２の座標バッファ４８２ｄに記憶する。続くステップＳ１１では、タッチ入力フラグ４８２ｆがオンであるかどうかを判断する。ステップＳ１１で“ＮＯ”であれば、つまりタッチ入力フラグ４８２ｆがオフであれば、タッチ入力が継続していない、すなわちストローク操作ではないと判断し、ステップＳ１３で、タッチ入力フラグ４８２ｆをオンする。次にステップＳ１５で、座標バッファ４８２ｄにおいて、現タッチ座標Ｐｊ（Ｘｊ，Ｙｊ）を前タッチ座標Ｐｉ（Ｘｉ，Ｙｉ）に置き換えて、ステップＳ３９に進む。
【００８９】
一方、ステップＳ１１で“ＹＥＳ”であれば、つまりタッチ入力フラグ４８２ｆがオンであれば、タッチ入力が継続している、すなわちストローク操作であると判断する。続いて、ステップＳ１７で、現タッチ座標Ｐｊ（Ｘｊ，Ｙｊ）を読み出し、ステップＳ１９で、前タッチ座標Ｐｉ（Ｘｉ，Ｙｉ）を読み出し、ステップＳ２１で、座標距離（１フレーム期間におけるストローク操作の長さ）ΔＤ（ΔＸ，ΔＹ）を算出する（数１参照）。そして、ステップＳ２３で、ΔＤが閾値を超えている（ΔＤ＞閾値）かどうかを判断する。ステップＳ２３で“ＮＯ”であれば、つまりΔＤが閾値以下であれば、超短入力であると判断して、図９に示すステップＳ２７に進む。一方、ステップＳ２３で“ＹＥＳ”であれば、つまりΔＤが閾値を超えていれば、短入力または長入力であると判断して、ステップＳ２５で、後述するように、一定速度Ａを新速度Ｖｊとして決定する処理（新速度決定処理：図１０参照）を実行して、図９に示すステップＳ３５に進む。
【００９０】
図９に示すように、ステップＳ２７では、プレイヤキャラクタ１０２が走行中かどうかを判断する。この判断処理は、上述のステップＳ３の処理と同じであるため、詳細な説明は省略することにする。ステップＳ２７で“ＮＯ”であれば、つまりプレイヤキャラクタ１０２が走行中でなければ、そのままステップＳ３９に進む。
【００９１】
なお、この実施例では、プレイヤキャラクタ１０２が停止中に超短入力がある場合には、プレイヤキャラクタ１０２を何ら制御しないようにしてあるが、超短入力が示す方向に、プレイヤキャラクタ１０２の向きを変化させるようにしてもよい。
【００９２】
また、ステップＳ２７で“ＹＥＳ”であれば、つまりプレイヤキャラクタ１０２が走行中であれば、ステップＳ２９で、減速度決定処理（図１１参照）を実行し、ステップＳ３１で、減速度Ｂを増加させ、つまり減速度Ｂを数３に従って更新し、ステップＳ３３で、現速度Ｖｉを読み出し、新速度Ｖｊを数２に従って算出する。
【００９３】
続いて、ステップＳ３５では、新速度Ｖｊおよびストローク方向（移動方向）に基づいて、プレイヤキャラクタ１０２を移動させる。なお、ストローク方向は、差分ΔＤについてのベクトルの向きである。続くステップＳ３７では、新速度Ｖｊと座標Ｐｊとを記憶する。ただし、このとき、新速度Ｖｊは現速度Ｖｉに置き換えられ（Ｖｉ＝Ｖｊ）、現タッチ座標Ｐｊは前タッチ座標Ｐｉに置き換えられる（Ｐｉ＝Ｐｊ）。これは、後述するように、ステップＳ３９の処理を経て、ステップＳ１に戻った後に、次回（次フレーム）の処理において、現速度Ｖｉおよび前タッチ座標Ｐｉとして用いるためである。
【００９４】
そして、ステップＳ３９では、ゲーム終了かどうかを判断する。つまり、プレイヤによってゲーム終了の指示が与えられたり、ゲームオーバになったりしたかどうかを判断する。ステップＳ３９で“ＮＯ”であれば、つまりゲーム終了でなければ、そのまま図８に示したステップＳ１に戻る。しかし、ステップＳ３９で“ＹＥＳ”であれば、つまりゲーム終了であれば、そのまま移動制御処理を終了する。
【００９５】
なお、図８および図９に示す移動制御処理は、１フレーム毎に実行される。したがって、ステップＳ１の処理も１フレーム毎に実行されることになる。
【００９６】
図１０は、図８に示したステップＳ２５の新速度決定処理を示すフロー図である。この図１０を参照して、ＣＰＵコア４２は新速度決定処理を開始すると、ステップＳ５１で、キャラクタ座標を取得する。つまり、プレイヤキャラクタ１０２についてのオブジェクトデータ４８２ａに含まれる位置データを参照して、ゲーム空間すなわちゲームマップ上における現在位置を検出する。次のステップＳ５３では、プレイヤキャラクタ１０２が道路上かどうかを判断する。つまり、ＣＰＵコア４２は、マップデータ４８２ｂを参照して、プレイヤキャラクタ１０２の現在位置が属するゲームマップ上の位置に、道路オブジェクト１０４が配置されているかどうかを判断する。以下、同様である。ステップＳ５３で“ＹＥＳ”あれば、つまりプレイヤキャラクタ１０２が道路上を走行している場合には、ステップＳ６１で、速度データ４８２ｃを参照して、道路用の一定速度Ａ１を読み出して、ステップＳ６３に進む。
【００９７】
しかし、ステップＳ５３で“ＮＯ”であれば、つまりプレイヤキャラクタ１０２が道路上でなければ、ステップＳ５５で、プレイヤキャラクタ１０２が草原上であるかどうかを判断する。この判断方法は、ステップＳ５３における判断方法と同様であるため、詳細な説明は省略することにする。ステップＳ５５で“ＹＥＳ”であれば、つまりプレイヤキャラクタ１０２が草原を走行中であれば、ステップＳ５９で、草原用の一定速度Ａ２を読み出して、ステップＳ６３に進む。
【００９８】
また、ステップＳ５５で“ＮＯ”であれば、つまりプレイヤキャラクタ１０２が森林上であれば、ステップＳ５７で、森林用の一定速度Ａ３を読み出して、ステップＳ６３に進む。ステップＳ６３では、ステップＳ５７，Ｓ５９，Ｓ６３のいずれかで読み出された一定速度Ａを新速度Ｖｊ（Ｖｊ＝Ａ（Ａ１，Ａ２，Ａ３））として決定し、新速度決定処理をリターンする。
【００９９】
図１１は、図８に示したステップＳ７および図９に示したステップＳ２９の減速度決定処理を示すフロー図である。なお、以下においては、現速度決定処理と同じステップについては簡単に説明することにする。図１１に示すように、減速度決定処理を開始すると、ステップＳ７１で、キャラクタ座標すなわちプレイヤキャラクタ１０２の位置データを取得する。続くステップＳ７３では、プレイヤキャラクタ１０２が道路上であるかどうかを判断する。ステップＳ７３で“ＹＥＳ”であれば、ステップＳ８１で、速度データ４８２ｃを参照して、道路用の減速度Ｂ１を読み出し、減速度決定処理をリターンする。
【０１００】
ステップＳ７３で“ＮＯ”であれば、ステップＳ７５で、プレイヤキャラクタ１０２が草原上であるかどうかを判断する。ステップＳ７５で“ＹＥＳ”であれば、ステップＳ７９で、草原用の減速度Ｂ２を読み出し、減速度決定処理をリターンする。一方、ステップＳ７５で“ＮＯ”であれば、ステップＳ７７で、森林用の減速度Ｂ３を読み出し、減速度決定処理をリターンする。
【０１０１】
この実施例によれば、ストローク操作の長さに基づいてプレイヤキャラクタの移動速度を決定し、また、ストローク操作の方向にプレイヤキャラクタを移動させることができるので、プレイヤキャラクタを自在に操ることができる。また、ストローク操作するだけなので、操作が簡単である。
【０１０２】
また、この実施例では、プレイヤキャラクタが走行のし易さに応じて、一定速度や減速度を変化させるようにしてあるため、直感的な操作ができ、リアリティを味わうことができる。
【０１０３】
なお、この実施例では、プレイヤキャラクタを、道路、草原および森林のような背景上で走行させるようにしてあるが、背景はこれに限定される必要はない。たとえば、川や湖などを配置することもできる。かかる場合には、４種類以上の一定速度および減速度を用意しておき、プレイヤキャラクタが現在位置（走行位置）に基づいて、１の一定速度および１の減速度を選択的に決定することができる。また、少なくとも２種類の背景オブジェクトが配置されていれば、プレイヤキャラクタの走行や減速のし易さの違いを表現することができる。
【０１０４】
また、この実施例では、２つのＬＣＤを設けて２つのゲーム画面を表示する場合について説明したが、１つのＬＣＤを設けて、これに対応してタッチパネルを設けておき、当該ＬＣＤに１つのゲーム画面を表示するようにしてもよい。
【０１０５】
さらに、この実施例では、２つのＬＣＤを設けたゲーム装置について説明したが、１つのＬＣＤの表示領域を２つに分割し、少なくともいずれか一方の表示領域に対応してタッチパネルを設けるようにしてもよい。この場合、縦長のＬＣＤを設ける場合には、縦に２つ表示領域が並ぶようにＬＣＤの表示領域を分割し、横長のＬＣＤを設ける場合には、横に２つの表示領域が並ぶようにＬＣＤの表示領域を分割するようにすればよい。
【図面の簡単な説明】
【０１０６】
【図１】図１はこの発明のゲーム装置の一例を示す図解図である。
【図２】図２は図１に示すゲーム装置の電気的な構成を示すブロック図である。
【図３】図３は図１に示すゲーム装置に設けられる第２のＬＣＤに表示されるゲーム画面の一例を示す図解図である。
【図４】図４はこの実施例の仮想３次元空間またはゲーム装置に設けられる第１のＬＣＤに表示されるゲーム画面の一例を示す図解図である。
【図５】図５は３次元仮想空間に配置されるプレイヤキャラクタの移動制御の一例を示す図解図である。
【図６】図６は３次元仮想空間に配置されるプレイヤキャラクタの移動制御の他の例を示す図解図である。
【図７】図７は図２に示すゲーム装置に内蔵されるＲＡＭのメモリマップを示す図解図である。
【図８】図８は図２に示すＣＰＵコアのプレイヤキャラクタの移動制御処理の一部を示すフロー図である。
【図９】図９は図８のフロー図に後続する移動制御処理の他の一部を示すフロー図である。
【図１０】図１０は図２に示すＣＰＵコアの現速度決定処理を示すフロー図である。
【図１１】図１１は図２に示すＣＰＵコアの減速度決定処理を示すフロー図である。
【符号の説明】
【０１０７】
１０  …ゲーム装置
１２，１４  …ＬＣＤ
１６，１６ａ，１６ｂ  …ハウジング
２０  …操作スイッチ
２２  …タッチパネル
２４  …スティック
２８  …メモリカード
２８ａ  …ＲＯＭ
２８ｂ，４８  …ＲＡＭ
４０  …電子回路基板
４２  …ＣＰＵコア
５０，５２  …ＧＰＵ
５４  …Ｉ／Ｆ回路
５６，５８  …ＶＲＡＭ
６０  …ＬＣＤコントローラ
【図１】
2006149662.tif 000003
【図２】
2006149662.tif 000004
【図３】
2006149662.tif 000005
【図４】
2006149662.tif 000006
【図５】
2006149662.tif 000007
【図６】
2006149662.tif 000008
【図７】
2006149662.tif 000009
【図８】
2006149662.tif 000010
【図９】
2006149662.tif 000011
【図１０】
2006149662.tif 000012
【図１１】
2006149662.tif 000013