(57)【要約】【課題】  プレイヤによって描かれたラインの形状及び／または方向によって、プレイヤ（移動）キャラクタの移動経路や方向に影響を与えることのできるゲーム装置およびゲームプログラムを提供する。【解決手段】  タッチパネルの装着された表示画面に移動キャラクタと背景画像を表示させる。タッチパネルを操作して移動キャラクタを誘導したい始点から終点までの経路にラインを書く（引く）と、書かれたラインの形状をした操作軌跡画像が表示される。このとき、移動キャラクタは操作軌跡画像に沿って又は並行に移動するように表示される。操作軌跡画像は、一定時間経過すると徐々に消去される。【選択図】  図３
2006150062.tif 000002
【特許請求の範囲】
【請求項１】
ゲーム画像を表示するための表示手段、
前記表示手段の画面上の座標を入力するための座標入力手段、
データを一時的に記憶するメモリ、
前記座標入力手段による座標入力の開始から解除までの間、当該座標入力手段によって入力された座標を表す座標データを有効な座標データとして前記メモリに逐次格納する格納手段、
前記メモリに格納されている有効な座標データ群のうち、当該メモリに格納されてから一定時間以上が経過した座標データを順次無効にする無効化手段、
前記メモリに格納されている有効な座標データ群を用いてゲーム処理を実行するゲーム処理手段、および
前記ゲーム処理手段によるゲーム処理結果を反映したゲーム画像を前記表示手段に表示させる表示制御手段を備えたゲーム装置。
【請求項２】
ゲーム画像を表示するための表示手段と、前記表示手段の画面上の座標を入力するための座標入力手段と、データを一時的に記憶するメモリとに接続されたコンピュータを、
前記座標入力手段による座標入力の開始から解除までの間、当該座標入力手段によって入力された座標を表す座標データを有効な座標データとして前記メモリに逐次格納する格納手段、
前記メモリに格納されている有効な座標データ群のうち、当該メモリに格納されてから一定時間以上が経過した座標データを順次無効にする無効化手段、
前記メモリに格納されている有効な座標データ群を用いてゲーム処理を実行するゲーム処理手段、および
前記ゲーム処理手段によるゲーム処理結果を反映したゲーム画像を前記表示手段に表示させる表示制御手段として機能させるためのゲームプログラム。
【請求項３】
前記ゲームプログラムは、前記メモリに格納されている有効な座標データによって構成される操作軌跡が所定の条件を満たしているかどうかを判別する判別手段として更に前記コンピュータを機能させるものであり、
前記ゲーム処理手段は、前記判別手段における判定の結果に応じて異なるゲーム処理を実行する手段であることを特徴とする、請求項２に記載のゲームプログラム。
【請求項４】
前記ゲームプログラムは、前記メモリに格納されている有効な座標データによって構成される操作軌跡の画像を生成する軌跡画像生成手段として更に前記コンピュータを機能させるものであり、
前記表示制御手段は、前記軌跡画像生成手段によって生成された操作軌跡の画像を含むゲーム画像を前記表示手段に表示させるものであることを特徴とする、請求項２に記載のゲームプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はゲーム装置及びゲームプログラムに関し、特に例えばポインティングデバイスやタッチパネルのような座標入力手段を操作することによって表示される操作軌跡画像（又は虹のライン）の描き方によってプレイヤキャラクタの進行方向又は進路を自由自在に変化できる新規なアクションゲームのゲーム装置及びゲームプログラムに関する。
【背景技術】
【０００２】
従来のアクションゲームとしては、方向指示スイッチ（いわゆる、十字スイッチと呼ばれる４方向又は８方向の方向指示スイッチ）又はアナログジョイスイッチを上下左右に操作して、背景画面の通路に沿ってプレイヤの操作可能なプレイヤキャラクタ（移動キャラクタ）を上下左右に移動させることにより、プレイヤキャラクタを目的の場所へ移動させるゲームがあった。また、タッチパネルを用いたゲームとしては、特許文献１のようなゲーム用コントローラがあった。
【特許文献１】特開平６−２８５２５９号公報（図８）
【０００３】
方向指示スイッチを用いるゲームは、プレイヤキャラクタの周囲の状況（例えば、敵キャラクタの到来や移動できない領域の存在など）を瞬時に判断して移動方向を決定し、方向指示スイッチを素早く操作しなければならず、操作に熟練を要し、初心者と習熟者で攻略できる場面又はステージに大きな差が生じていた。
【０００４】
特許文献１は、移動させるべきキャラクタ（戦車）をタッチして指定すると、当該キャラクタの移動範囲を表示し、移動させたいキャラクタの移動先を指定すると、当該キャラクタが指定された移動先へ移動表示される。特許文献１は、移動させるキャラクタとそのキャラクタの移動先を指定するだけなので、操作と表示の変化が単調で、面白みに欠け、飽きられ易い。また、何れの公知技術も、ゲームのルールを良く知らなければ、ゲーム画面を見るだけで直感的に操作することが難しく、操作又はゲームプレイの方法が複雑なものが多い。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
それゆえに、この発明の主たる目的は、プレイヤがラインを描くような操作をすることによってプレイヤキャラクタの移動状態を変化させることができ、ゲームのルールを知らなくても直感的に操作し得る、面白さと斬新さに富んだ新規な、ゲーム装置及びゲームプログラムを提供することである。
この発明の他の目的は、ゲームプレイのための操作に熟練を要さず、初心者でも楽しみながらゲームプレイし得る、ゲーム装置及びゲームプログラムを提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は以下のような構成を採用した。なお、括弧内の参照符号，図番号および補足説明は、本発明の理解を助けるために後述の実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【０００７】
本発明の第１の局面は、表示部（１２）、座標入力手段（１６）、軌跡記憶制御手段（３１，Ｓ４１，Ｓ４６）、移動制御手段（３１，Ｓ７５）、判定手段（３１，Ｓ６７）、軌跡移動制御手段（３１，Ｓ７９，Ｓ８０）、および表示制御手段（３１，Ｓ２３）を備えた、ゲーム装置である。表示部は、ゲーム画像を表示するためのものである。座標入力手段は、前記ゲーム画像上で座標を入力するための手段である。軌跡記憶制御手段は、前記座標入力手段によって入力される座標に基づいて当該入力座標の遷移履歴を表す軌跡データ（３７２）を記憶手段に記憶する手段である。移動制御手段は、移動キャラクタの位置座標データを記憶手段に記憶するとともに当該位置座標データを所定の規則に基づいて更新する手段である。判定手段は、前記軌跡データと前記位置座標データに基づいて、軌跡に前記移動キャラクタが接触したか否かを判定する手段である。軌跡移動制御手段は、前記判定手段によって前記軌跡に前記移動キャラクタが接触したことが判定されたときに、前記軌跡データに基づいて、当該移動キャラクタが当該軌跡に応じた移動をするように、前記位置座標データを更新する手段である。表示制御手段は、前記位置座標データに基づいて移動キャラクタを前記表示部に表示させる手段である。
【０００８】
本発明の第２の局面は、上記第１の局面において、前記表示制御手段は、前記軌跡データに基づいて、前記軌跡を前記表示部に表示させることを特徴とする。
【０００９】
本発明の第３の局面は、上記第１の局面において、前記移動制御手段は、前記判定手段によって前記軌跡に前記移動キャラクタが接触したことが判定されないときに、前記所定の規則に基づく更新をおこなうことを特徴とする。
【００１０】
本発明の第４の局面は、上記第１の局面において、前記軌跡移動制御手段は、前記軌跡データに基づいて、前記移動キャラクタが前記軌跡に沿って移動するように、前記位置座標データを更新することを特徴とする。
【００１１】
本発明の第５の局面は、上記第１の局面において、前記軌跡移動制御手段は、前記軌跡データに基づいて、前記移動キャラクタが前記軌跡に吸着して移動するように、前記位置座標データを更新することを特徴とする。
【００１２】
なお、上記第１、第３、第４、第５の局面に関し、軌跡移動制御手段は、例えば、軌跡に接触した移動キャラクタが、軌跡に沿って移動するようにしてもよい。この場合、例えば、移動キャラクタが軌跡上を転がったり歩いたりすべったりして軌跡に接触したまま移動するようにしたり、移動キャラクタの内部の点（例えば、中心）が軌跡上を移動するようにしてもよい。また、移動キャラクタが軌跡に沿って移動しない場合には、移動キャラクタが軌跡に接触した瞬間のみ移動キャラクタの移動方向を変化するようにしてもよい。
なお、軌跡に沿って移動させる場合、移動キャラクタを軌跡が描かれた方向に移動させても良いし、そうでなくてもよい。後者の場合には、例えば、移動キャラクタの接触時点の移動方向の軌跡の接線方向成分に従って接触後の移動方向を決めても良い。
【００１３】
本発明の第６の局面は、上記第１の局面において、前記軌跡移動制御手段は、前記軌跡データに基づいて、前記移動キャラクタが前記軌跡の接線方向に移動するように、記憶手段に記憶される前記位置座標データを更新することを特徴とする。
【００１４】
本発明の第７の局面は、上記第１ないし第６のいずれかの局面において、前記軌跡移動制御手段は、前記軌跡データに基づいて、前記移動キャラクタが前記軌跡上の相対的に古い入力座標から相対的に新しい入力座標に向かう方向に移動または加速するように、前記位置座標データを更新することを特徴とする。
【００１５】
なお、上記第７の局面に関し、軌跡移動制御手段は、軌跡上の相対的に古い入力座標から相対的に新しい入力座標に向かう方向に移動または加速するように位置座標データを更新するが、これは、移動キャラクタの移動方向が当該方向であればよく、移動キャラクタが当該古い入力座標を出発点として当該新しい入力座標へ向かって移動することは必須ではない。
また、移動キャラクタは必ずしも当該方向に移動する必要はなく、移動キャラクタを当該方向に加速させる場合には、接触前の移動キャラクタの移動方向が当該方向と反対方向であったときには、移動速度が減少する制御がされる。
【００１６】
本発明の第８の局面は、上記第１の局面において、前記判定手段は、前記軌跡データと前記位置座標データに基づいて、前記軌跡上の時間的に連続する２つの入力座標を両端点とする各線分について、前記移動キャラクタが接触したか否かを判定することを特徴とする。
【００１７】
本発明の第９の局面は、上記第８の局面において、前記判定手段は、最も古い入力座標を端点とする前記線分から順番に前記移動キャラクタが接触したか否かを判定し、前記移動キャラクタがいずれかの前記線分に接触したことが判定されたときに、前記判定を終了することを特徴とする。
【００１８】
本発明の第１０の局面は、上記第８の局面において、前記軌跡移動制御手段は、前記判定手段によって接触したと判定された線分の両端点のうち、相対的に古い入力座標から相対的に新しい入力座標に向かう方向に前記移動キャラクタが移動または加速するように、前記位置座標データを更新することを特徴とする。
【００１９】
本発明の第１１の局面は、上記第１０の局面において、前記軌跡移動制御手段は、ある線分の両端点のうち相対的に古い入力座標から相対的に新しい入力座標に向かう方向に前記移動キャラクタが移動するように前記位置座標データを更新し続けているときに、前記位置座標データが示す位置座標が所定条件を満たすようになったときに、当該相対的に新しい入力座標から時間的に連続するさらに新しい入力座標に向かう方向に前記移動キャラクタが移動するように前記位置座標データを更新することを特徴とする。
【００２０】
なお、上記第１１の局面に関し、所定条件の例として、位置座標データが示す位置座標が線分の端点のうち相対的に新しい入力座標に達したことを条件としてもよいし、位置座標データが示す位置座標から線分に下ろした垂線とその線分との交点が、その線分の端点のうち相対的に新しい入力座標に達したことを条件としてもよい。また、移動キャラクタが次の線分に接触するような位置座標データになったことを条件としてもよい。
【００２１】
本発明の第１２の局面は、上記第１１の局面において、前記軌跡移動制御手段は、ある線分の両端点のうち相対的に古い入力座標から相対的に新しい入力座標に向かう方向に前記移動キャラクタが移動するように前記位置座標データを更新し続けているときに、前記移動キャラクタが当該ある線分に時間的に連続する新たな線分に接触したか否かを判定し、当該接触したと判定されたときに、当該新たな線分の両端点のうち相対的に古い入力座標から相対的に新しい入力座標に向かう方向に前記移動キャラクタが移動するように、前記位置座標データを更新することを特徴とする。
【００２２】
本発明の第１３の局面は、上記第１１の局面において、記軌跡移動制御手段は、ある線分の両端点のうち相対的に古い入力座標から相対的に新しい入力座標に向かう方向に前記移動キャラクタが移動するように前記位置座標データを更新し続けているときに、前記移動キャラクタが当該ある線分に接触しなくなったか否かを判定し、当該接触しなくなったと判定されたときに、当該ある線分の両端点のうち相対的に新しい入力座標を中心とする円弧上を前記位置座標データが示す位置座標が移動するように、かつ、前記位置座標データが示す位置座標と当該相対的に新しい入力座標を結ぶ直線が、当該ある線分に時間的に連続する新たな線分と直交するまで、前記位置座標データを更新し、その後、当該新たな線分の両端点のうち、相対的に古い入力座標から相対的に新しい入力座標に向かう方向に前記移動キャラクタが移動するように、前記位置座標データを更新することを特徴とする。
【００２３】
本発明の第１４の局面は、上記第１０の局面において、前記判定手段は、前記軌跡移動制御手段は、ある線分の両端点のうち相対的に古い入力座標から相対的に新しい入力座標に向かう方向に前記移動キャラクタが移動するように前記位置座標データを更新し続けているときに、前記移動キャラクタが当該ある線分に接触しなくなったか否かを判定し、当該接触しなくなったと判定されたときに、当該線分よりも新しい線分が存在しないことを判定する軌跡移動終了判定手段をさらに備え、前記軌跡移動制御手段は、前記判定手段によって前記軌跡に前記移動キャラクタが接触したことが判定されてから、前記軌跡移動終了判定手段によって前記新しい入力座標が存在しないことが判定されるまで、前記軌跡データに基づく前記位置座標データの更新をおこなうことを特徴とする。
【００２４】
本発明の第１５の局面は、上記第１の局面において、前記移動キャラクタの移動速度データを記憶手段に記憶する移動速度データ記憶制御手段をさらに備え、前記軌跡移動制御手段は、前記移動速度データに基づいて、前記位置座標データを更新し、前記軌跡の形状および前記移動速度データに基づいて、前記軌跡データに基づく前記位置座標データの更新を終了するか否かを判定する軌跡移動終了判定手段をさらに備え、前記軌跡移動制御手段は、前記判定手段によって前記軌跡に前記移動キャラクタが接触したことが判定されてから、前記軌跡移動終了判定手段によって終了することが判定されるまで、前記軌跡データに基づく前記位置座標データの更新をおこなうことを特徴とする。
【００２５】
なお、上記第１５の局面に関し、軌跡移動終了判定手段は、軌跡の方向変化率が高く、移動速度が大きいときに、終了することを判定してもよい。
【００２６】
本発明の第１６の局面は、上記第１１の局面において、前記移動キャラクタの移動速度データを記憶手段に記憶する移動速度データ記憶制御手段をさらに備え、前記軌跡移動制御手段は、前記移動速度データに基づいて、前記位置座標データを更新し、前記所定条件を満たすと判定されたときに、前記ある線分を基準として、前記位置座標データが示す位置座標と、当該線分の両端点のうち相対的に新しい入力座標から時間的に連続するさらに新しい入力座標が異なる側にあるときに、前記移動速度データに基づいて、前記軌跡データに基づく前記位置座標データの更新を終了するか否かを判定する軌跡移動終了判定手段をさらに備え、前記軌跡移動制御手段は、前記判定手段によって前記軌跡に前記移動キャラクタが接触したことが判定されてから、前記軌跡移動終了判定手段によって終了することが判定されるまで、前記軌跡データに基づく前記位置座標データの更新をおこなうことを特徴とする。
【００２７】
本発明の第１７の局面は、上記第１１の局面において、第１データを記憶する第１データ記憶手段、前記所定条件を満たすと判定されたときに、前記ある線分を基準として、前記位置座標データが示す位置座標と、当該線分の両端点のうち相対的に新しい入力座標から時間的に連続するさらに新しい入力座標が異なる側にあるときに、第１データを閾値に近付けるように更新する第１データ更新手段、および前記第１データが前記閾値になったことを判定する軌跡移動終了判定手段をさらに備え、前記軌跡移動制御手段は、前記判定手段によって前記軌跡に前記移動キャラクタが接触したことが判定されてから、前記軌跡移動終了判定手段によって前記第１データが前記閾値になったことが判定されるまで、前記軌跡データに基づく前記位置座標データの更新をおこなうことを特徴とする。
【００２８】
なお、上記第１７の局面に関し、第１データ更新手段は、第１データを０に近付けるように更新し、軌跡移動終了判定手段は第１データが０（または０以下）になったことを判定してもよい。また、第１データ更新手段は、第１データを増加させるように更新し、軌跡移動終了判定手段は第１データが０より大きい所定値（または所定値以上）になったことを判定してもよい。
【００２９】
本発明の第１８の局面は、上記第１７の局面において、前記第１データ更新手段は、前記ある線分を基準として、前記位置座標データが示す位置座標と、当該線分の両端点のうち相対的に新しい入力座標から時間的に連続するさらに新しい入力座標が同じ側にあるときには、第１データを閾値から遠ざけるように更新することを特徴とする。
【００３０】
本発明の第１９の局面は、上記第１７または第１８の局面において、前記移動キャラクタの移動速度データを記憶手段に記憶する移動速度データ記憶制御手段をさらに備え、前記軌跡移動制御手段は、前記移動速度データに基づいて、前記位置座標データを更新し、前記第１データ更新手段は、前記移動速度データに基づいて、前記更新する量を決定することを特徴とする。
【００３１】
本発明の第２０の局面は、上記第１の局面において、前記判定手段によって前記軌跡に前記移動キャラクタが接触したことが判定されたときに、前記位置座標データが示す位置座標と、当該位置座標から前記軌跡に下ろした垂線と当該軌跡との交点との間の距離を所定距離に設定する、めり込み制御手段をさらに備えることを特徴とする。
【００３２】
本発明の第２１の局面は、上記第２０の局面において、前記めり込み制御手段は、前記距離が前記所定距離に徐々に近付くように、前記位置座標データを更新することを特徴とする。
【００３３】
本発明の第２２の局面は、上記第１の局面において、前記軌跡記憶制御手段は、前記座標入力手段が座標の検出を開始してから検出を終了するまでの期間において連続して入力される座標に基づいて、１グループの前記軌跡データを記憶手段に記憶することを特徴とする。
【００３４】
本発明の第２３の局面は、上記第２２の局面において、前記軌跡記憶制御手段は、前記軌跡上の時間的に連続する２つの入力座標を両端点とする線分について、時間的に連続する２つの線分のなす角度が閾値以上になったときに、当該線分のうち相対的に古い線分以前についての入力座標に基く前記軌跡データと、当該線分のうち時間的に新しい線分以降についての入力座標に基づく前記軌跡データとを、別グループとして記憶することを特徴とする。
【００３５】
本発明の第２４の局面は、上記第１の局面において、前記軌跡記憶制御手段は、前記座標入力手段が座標の検出を開始してから検出を終了するまでの期間において連続して入力される座標に基づいて、１グループの前記軌跡データを記憶手段に記憶し、前記判定手段は、各グループについての前記軌跡データと前記位置座標データに基づいて、いずれのグループに前記移動キャラクタが接触したか否かを判定し、前記判定手段によっていずれかのグループに前記移動キャラクタが接触したことが判定されたときに、当該グループについての前記軌跡データに基づいて当該移動キャラクタが移動するように、記憶手段に記憶される前記位置座標データを更新することを特徴とする。
【００３６】
本発明の第２５の局面は、上記第１の局面において、あるグループについての前記軌跡データが記憶手段に記憶されているときに、前記座標入力手段が新たな座標の検出を開始したときに、当該グループの軌跡データを記憶手段から消去または無効にする軌跡データ消去手段をさらに備えることを特徴とする。
【００３７】
本発明の第２６の局面は、上記第１の局面において、前記移動キャラクタの移動速度データを記憶手段に記憶する移動速度データ記憶制御手段をさらに備え、前記移動制御手段は、前記移動速度データに基づいて、前記位置座標データを更新し、前記軌跡移動制御手段は、前記判定手段によって前記軌跡に前記移動キャラクタが接触したことが判定されたときに、前記移動キャラクタが前記軌跡に接触した時点における前記移動速度データが閾値よりも小さいときのみ、前記軌跡データに基づいて、当該移動キャラクタが当該軌跡に応じた移動をするように、前記位置座標データを更新することを特徴とする。
【００３８】
本発明の第２７の局面は、上記第１の局面において、前記移動キャラクタの移動速度データを記憶手段に記憶する移動速度データ記憶制御手段をさらに備え、前記移動制御手段は、前記移動速度データに基づいて、前記位置座標データを更新し、前記軌跡移動制御手段は、前記判定手段によって前記軌跡に前記移動キャラクタが接触したことが判定されたときに、前記移動キャラクタが前記軌跡に接触した時点における前記移動速度データの前記軌跡に垂直な成分が閾値よりも小さいときのみ、前記軌跡データに基づいて、当該移動キャラクタが当該軌跡に応じた移動をするように、前記位置座標データを更新することを特徴とする。
【００３９】
本発明の第２８の局面は、上記第２６の局面において、前記閾値は、前記軌跡の角度に応じて決定されることを特徴とする。
【００４０】
本発明の第２９の局面は、上記第２６の局面において、前記移動キャラクタの移動速度データを記憶手段に記憶する移動速度データ記憶制御手段をさらに備え、前記移動制御手段は、前記移動速度データに基づいて、前記位置座標データを更新し、前記軌跡移動制御手段は、前記判定手段によって前記軌跡に前記移動キャラクタが接触したことが判定されたときであっても、前記移動速度データが閾値以上のときには、前記移動キャラクタが当該軌跡に対して反転するように、前記移動速度データを更新することを特徴とする。
【００４１】
本発明の第３０の局面は、上記第１０の局面において、前記判定手段は、さらに、前記軌跡データと前記位置座標データに基づいて、前記移動キャラクタが前記入力座標に接触し、かつ、当該入力座標から当該入力座標を端点とする前記線分に垂直に伸ばした直線を基準として、前記位置座標データが示す位置座標と当該線分の他方端点とが異なる側に存在することを判定し、当該異なる側に存在すると判定されたときに、当該入力座標を中心とする円弧上を前記位置座標データが示す位置座標が移動するように、かつ、前記位置座標データが示す位置座標と当該入力座標を結ぶ直線が、当該線分と直交するまで、前記位置座標データを更新し、その後、当該線分の両端点のうち、相対的に古い入力座標から相対的に新しい入力座標に向かう方向に前記移動キャラクタが移動するように、前記位置座標データを更新することを特徴とする。
【００４２】
本発明の第３１の局面は、上記第３０の局面において、前記移動キャラクタの移動速度データを記憶手段に記憶する移動速度データ記憶制御手段をさらに備え、前記移動制御手段は、前記移動速度データに基づいて、前記位置座標データを更新し、前記判定手段によって、記軌跡データと前記位置座標データに基づいて、前記移動キャラクタが前記入力座標に接触し、かつ、当該入力座標から当該入力座標を端点とする前記線分に垂直に伸ばした直線を基準として、前記位置座標データが示す位置座標と当該線分の他方端点とが異なる側に存在することが判定されたときに、当該判定がされた時点の前記移動速度データが示す移動速度の当該線分に垂直な成分が閾値より小さいときのみ、当該線分の両端点のうち、相対的に古い入力座標から相対的に新しい入力座標に向かう方向に前記移動キャラクタが移動するように、前記位置座標データを更新することを特徴とする。
【００４３】
本発明の第３２の局面は、上記第３１の局面において、前記移動キャラクタの移動速度データを記憶手段に記憶する移動速度データ記憶制御手段をさらに備え、前記移動制御手段は、前記移動速度データに基づいて、前記位置座標データを更新し、前記判定手段によって、記軌跡データと前記位置座標データに基づいて、前記移動キャラクタが前記入力座標に接触し、かつ、当該入力座標から当該入力座標を端点とする前記線分に垂直に伸ばした直線を基準として、前記位置座標データが示す位置座標と当該線分の他方端点とが異なる側に存在することが判定されたときであっても、当該判定がされた時点の前記移動速度データが示す移動速度の当該線分に垂直な成分が閾値以上のときには、前記移動キャラクタが当該入力座標に対して反転するように、前記移動速度データを更新することを特徴とする。
【００４４】
本発明の第３３の局面は、上記第３０の局面において、前記移動キャラクタの移動速度データを記憶手段に記憶する移動速度データ記憶制御手段をさらに備え、前記移動制御手段は、前記移動速度データに基づいて、前記位置座標データを更新し、前記判定手段によって、記軌跡データと前記位置座標データに基づいて、前記移動キャラクタが前記入力座標に接触し、かつ、当該入力座標から当該入力座標を端点とする前記線分に垂直に伸ばした直線を基準として、前記位置座標データが示す位置座標と当該線分の他方端点とが異なる側に存在することが判定されたときに、当該判定がされた時点の前記移動速度データが示す移動速度の前記位置座標データが示す位置座標と当該入力座標を結ぶ方向の成分が閾値より小さいときのみ、当該線分の両端点のうち、相対的に古い入力座標から相対的に新しい入力座標に向かう方向に前記移動キャラクタが移動するように、前記位置座標データを更新することを特徴とする。
【００４５】
本発明の第３４の局面は、上記第３３の局面において、前記移動キャラクタの移動速度データを記憶手段に記憶する移動速度データ記憶制御手段をさらに備え、前記移動制御手段は、前記移動速度データに基づいて、前記位置座標データを更新し、前記判定手段によって、記軌跡データと前記位置座標データに基づいて、前記移動キャラクタが前記入力座標に接触し、かつ、当該入力座標から当該入力座標を端点とする前記線分に垂直に伸ばした直線を基準として、前記位置座標データが示す位置座標と当該線分の他方端点とが異なる側に存在することが判定されたときであっても、当該判定がされた時点の前記移動速度データが示す移動速度の前記位置座標データが示す位置座標と当該入力座標を結ぶ方向の成分が閾値以上のときには、前記移動キャラクタが当該入力座標に対して反転するように、前記移動速度データを更新することを特徴とする。
【００４６】
本発明の第３５の局面は、上記第１の局面において、記憶手段に記憶されている軌跡データを、相対的に古い入力座標から順に自動的に消去または無効にする軌跡データ消去手段をさらに備えることを特徴とする。
【００４７】
なお、上記第３５の局面に関し、軌跡データ消去手段は、一定時間ごとに一定量だけ、軌跡データを、相対的に古い入力座標から順に自動的に消去または無効にするようにしてもよい。
【００４８】
本発明の第３６の局面は、上記第１または第３５の局面において、前記座標入力手段が座標の検出を開始した時点または終了した時点から所定時間が経過したことを判定する時間判定手段をさらに備え、前記軌跡データ消去手段は、前記時間判定手段によって所定時間が経過したことが判定されたときに、前記軌跡データ記憶手段に記憶されている軌跡データを消去または無効にすることを特徴とする。
【００４９】
本発明の第３７の局面は、上記第１の局面において、第２データを記憶手段に記憶するとともに、前記軌跡記憶制御手段によって前記軌跡データが記憶手段に記憶されることに応じて、当該第２データを閾値に近付けるように更新する第２データ更新手段をさらに備え、前記軌跡記憶制御手段は、前記第２データが閾値になったときには、前記座標入力手段によって座標が入力されたときも、軌跡データを記憶手段に記憶しないことを特徴とする。
【００５０】
本発明の第３８の局面は、上記第３７の局面において、前記軌跡量データ更新手段は、前記座標入力手段からの入力がないときに、前記第２データを前記閾値から遠ざけるように自動的に更新することを特徴とする。
【００５１】
本発明の第３９の局面は、上記第３７の局面において、前記軌跡記憶制御手段によって記憶手段に記憶された前記軌跡データに基づく軌跡の長さを検出する軌跡長さ検出手段を含み、前記軌跡量データ更新手段は、前記軌跡長さ検出手段によって検出された軌跡の長さに応じた量だけ前記第２データを更新することを特徴とする。
【００５２】
本発明の第４０の局面は、上記第１の局面において、前記表示制御手段は、前記第２データの値を示す情報を表示することを特徴とする。
【００５３】
本発明の第４１の局面は、上記第１の局面において、座標が入力されていない状態から前記座標入力手段によって最初に入力された座標に前記移動キャラクタが存在するか否かを検出するキャラクタ検出手段をさらに備え、前記軌跡記憶制御手段は、前記キャラクタ検出手段によって前記入力座標に移動キャラクタが存在しないことが検出されたときのみ、当該入力座標に基づいて、前記軌跡データを記憶手段に記憶することを特徴とする。
【００５４】
本発明の第４２の局面は、上記第１の局面において、前記キャラクタ検出手段によって前記入力座標に前記移動キャラクタが存在することが検出されたことに応じて、当該移動キャラクタを予め定められた動作で表示させることを特徴とする。
【００５５】
本発明の第４３の局面は、上記第１の局面において、前記移動キャラクタの移動速度データを記憶手段に記憶する移動速度データ記憶制御手段をさらに備え、前記移動制御手段は、前記移動速度データに基づいて、前記位置座標データを更新し、前記判定手段によって前記軌跡に前記移動キャラクタが接触したことが判定されたときに、接触直前の前記移動速度データが示す速度のうち前記軌跡の接線方向に水平な成分が前記移動キャラクタの新たな移動速度となるように決定する移動速度決定手段をさらに備えることを特徴とする。
【００５６】
本発明の第４４の局面は、上記第３６の局面において、前記移動キャラクタの移動速度データを記憶手段に記憶する移動速度データ記憶制御手段をさらに備え、前記軌跡移動制御手段は、前記移動速度データに基づいて、前記位置座標データを更新し、前記軌跡移動制御手段は、現在の前記移動速度データが示す移動速度の大きさに基づいて、当該移動速度データを更新するための加速度の大きさを決定する加速度決定手段を含み、前記加速度決定手段は、目標速度値を設定する目標速度設定手段、最大速度値を設定する最大速度設定手段、およびプラスの第１値およびマイナスの第２値を設定する設定手段を含み、現在の前記移動速度データが示す移動速度の大きさが前記目標速度値のときに前記加速度の大きさを０に決定し、現在の前記移動速度データが示す移動速度の大きさが０のときに、前記加速度の大きさを前記第１値に決定し、現在の前記移動速度データが示す移動速度の大きさが前記最大速度値のときに前記加速度の大きさを前記第２値に決定し、現在の前記移動速度データが示す移動速度の大きさが０から前記目標速度値の間のときには前記第１値と０で補間し、現在の前記移動速度データが示す移動速度の大きさが前記目標速度値から前記最大速度値の間のときには０と前記第２値で補間することにより、前記加速度の大きさを決定し、前記軌跡移動制御手段は、前記蚊速度決定手段によって決定された加速度の大きさと、前記軌跡の接線方向によって、加速度ベクトルを決定することを特徴とする。
【００５７】
本発明の第４５の局面は、上記第１の局面において、前記座標入力手段が前記表示部の画面上に設けられたタッチパネルであることを特徴とする。
【００５８】
本発明の第４６の局面は、ゲーム画像を表示するための表示部（１２）と、前記ゲーム画像上で座標を入力するための座標入力手段（１６）と、記憶手段（３７）とに接続されたコンピュータ（３１）を、軌跡記憶制御手段、移動制御手段、判定手段、軌跡移動制御手段、および表示制御手段として機能させるためのゲームプログラムである。軌跡記憶制御手段は、前記座標入力手段によって入力される座標に基づいて当該入力座標の遷移履歴を表す軌跡データを記憶手段に記憶する手段である。移動制御手段は、移動キャラクタの位置座標データを記憶手段に記憶するとともに当該位置座標データを所定の規則に基づいて更新する手段である。判定手段は、前記軌跡データと前記位置座標データに基づいて、軌跡に前記移動キャラクタが接触したか否かを判定する手段である。軌跡移動制御手段は、前記判定手段によって前記軌跡に前記移動キャラクタが接触したことが判定されたときに、前記軌跡データに基づいて、当該移動キャラクタが当該軌跡に応じた移動をするように、前記位置座標データを更新する手段である。表示制御手段は、前記位置座標データに基づいて移動キャラクタを前記表示部に表示させる手段である。
【００５９】
本発明の第４７の局面は、表示部（実施例との対応関係を示せば、下画面のＬＣＤ１２）と、画像データ記憶手段（ＲＯＭ２１の画像データ記憶領域２１０）と、プログラム記憶手段（ＲＯＭ２１のプログラム記憶領域２１５）と、座標入力手段（タッチパネル１６又はマウス等）と、操作状態検出手段（図１０のフローチャート）と、一時記憶手段（Ｗ−ＲＡＭ３７）と、書込手段（図１０のステップ４１，４６，４８，４９）と、操作軌跡画像データ発生手段（図１１のステップ６６，ＣＰＵコア３１）と、表示制御手段（図１１）とを備えるゲーム装置（１０）である。
表示部は、ゲームの画像を表示するもの（例えば、ゲーム装置が家庭用ビデオゲーム機であればテレビジョン受像機等のＣＲＴディスプレイ、携帯ゲーム機であれば液晶表示器等）である。画像データ記憶手段は、少なくとも、ゲームにおけるプレイヤキャラクタ（すなちわ、プレイヤによって操作される移動キャラクタ）や敵キャラクタ等の移動キャラクタを表示するための移動キャラクタ画像データと、背景画像を表示するための背景画像データを記憶する。プログラム記憶手段は、移動キャラクタ画像と背景画像を表示制御するためのゲームプログラム（例えば、背景画像上に移動キャラクタを移動表示させるプログラム）を記憶する。座標入力手段は、その操作によって座標を入力するもの（例えば、マウスやトラックボールやタッチパネル等）である。操作状態検出手段は、座標入力手段によって最初の座標位置（始点）を指定してから座標位置の指定を終了するまでの期間（現在点又はタッチオフした瞬間に現在点が終点となる）における操作軌跡を検出するもの（例えば、各種の検出プログラムとそのブログラムを実行するＣＰＵコア３１）である。一時記憶手段は、ゲーム処理に必要なデータを一時記憶する。書込手段は、操作状態検出手段によって検出された操作軌跡に関するデータを一時記憶手段に書き込むもの（例えば、書込みプログラムとそのブログラムを実行するＣＰＵコア３１）である。操作軌跡画像データ発生手段は、一時記憶手段に記憶されている操作軌跡に関するデータに基づいて、移動キャラクタの移動を誘導する操作軌跡画像を表示部に表示させるための操作軌跡画像データを発生する。表示制御手段は、ゲームプログラムに基づいて、画像データ記憶手段に記憶されている移動キャラクタ画像データと背景画像データを読み出して、移動キャラクタと背景画像を表示部に表示させるとともに、操作軌跡画像データを用いて操作軌跡画像を表示部に表示させ、当該移動キャラクタを操作軌跡画像に沿って移動表示する。
【００６０】
本発明の第４８の局面は、表示部（ＬＣＤ１２）と、タッチパネル（１６）と、画像データ記憶手段と、プログラム記憶手段と、操作状態検出手段と、一時記憶手段と、書込手段と、操作軌跡画像データ発生手段と、表示制御手段とを備える、ゲーム装置である。
表示部は、ゲームの画像を表示するものである。タッチパネルは、表示部の上面に装着され、表示部の画面を直接タッチすることによってタッチ位置の座標を入力するものである。画像データ記憶手段は、少なくとも、ゲームの移動キャラクタを表示するための移動キャラクタ画像データと背景画像を表示するための背景画像データを記憶する。プログラム記憶手段は、移動キャラクタ画像と背景画像を表示させるためのゲームプログラムを記憶する。操作状態検出手段は、少なくとも、タッチパネルをタッチ操作して最初の座標位置（始点）を指定してから座標位置の指定を終了するまでの期間（現在点又はタッチオフした瞬間に現在点が終点となる）における操作軌跡を検出する。一時記憶手段は、ゲーム処理に必要なデータを一時記憶する。書込手段は、操作状態検出手段によって検出された操作軌跡に関するデータを一時記憶手段に書き込む。操作軌跡画像データ発生手段は、一時記憶手段に記憶されている操作軌跡に関するデータに基づいて、移動キャラクタの移動を誘導する操作軌跡画像を表示部に表示させるための操作軌跡画像データを発生する。表示制御手段は、ゲームプログラムに基づいて、画像データ記憶手段に記憶されている移動キャラクタ画像データと背景画像データを読み出して、移動キャラクタと背景画像を表示部に表示させるとともに、操作軌跡画像データを用いて操作軌跡画像を表示部に表示させ、当該移動キャラクタを操作軌跡画像に沿って移動表示する。
【００６１】
本発明の第４９の局面は、ゲームの画像を表示する表示部が関連的に設けられ、座標入力手段と、ゲームのための移動キャラクタを表示する移動キャラクタ画像データならびに背景画像を表示する背景画像データを記憶する画像データ記憶手段と、移動キャラクタ画像と背景画像を表示制御するためのゲームプログラムを記憶するプログラム記憶手段と、コンピュータと、コンピュータによるゲーム処理のためのデータを一時記憶する一時記憶手段とを備えた画像処理装置において、コンピュータに、操作状態検出ステップと、書込ステップと、操作軌跡画像データ発生ステップと、第１の表示制御ステップと、第２の表示制御ステップと、第３の表示制御ステップとを実行させる、ゲームプログラムである。
操作状態検出ステップは、座標入力手段を操作して最初の座標位置を指定してから座標位置の指定を終了するまでの期間における操作軌跡を検出する。書込ステップは、操作状態検出手段によって検出された操作軌跡に関するデータを一時記憶手段に書き込む。操作軌跡画像データ発生ステップは、一時記憶手段に記憶されている操作軌跡に関するデータに基づいて、移動キャラクタの移動を誘導する操作軌跡画像を表示部に表示させるための操作軌跡画像データを発生する。第１の表示制御ステップは、ゲームプログラムに基づいて、画像データ記憶手段に記憶されている移動キャラクタ画像データと背景画像データを読み出して、移動キャラクタと背景画像を表示部に表示させる。第２の表示制御ステップは、ゲームプログラムと一時記憶手段に記憶されている操作軌跡画像データに基づいて、操作軌跡画像を表示部に表示させる。第３の表示制御ステップは、ゲームプログラムに基づいて、表示部に表示されている移動キャラクタを操作軌跡画像に沿って移動表示する。
【００６２】
本発明の第５０の局面は、ゲームのための画像を表示する表示部が関連的に設けられ、表示部の表示画面上に設けられるタッチパネルと、ゲームのための移動キャラクタを表示する移動キャラクタ画像データならびに背景画像を表示する背景画像データを記憶する画像データ記憶手段と、移動キャラクタ画像と背景画像を表示させるためのゲームプログラムを記憶するプログラム記憶手段と、コンピュータと、コンピュータによるゲーム処理のためのデータを一時記憶する一時記憶手段とを備えた画像処理装置において、コンピュータに、操作状態検出ステップと、書込ステップと、操作軌跡画像データ発生ステップと、第１の表示制御ステップと、第２の表示制御ステップと、第３の表示制御ステップとを実行させる、ゲームプログラムである。
操作状態検出ステップは、タッチパネルを操作して最初の座標位置を指定してから座標位置の指定を終了するまでの期間における操作軌跡を検出する。書込ステップは、操作状態検出手段によって検出された操作軌跡に関するデータを一時記憶手段に書き込む。操作軌跡画像データ発生ステップは、一時記憶手段に記憶されている操作軌跡に関するデータに基づいて、移動キャラクタの移動を誘導する操作軌跡画像を表示部に表示させるための操作軌跡画像データを発生する。第１の表示制御ステップは、ゲームプログラムに基づいて、画像データ記憶手段に記憶されている移動キャラクタ画像データと背景画像データを読み出して、移動キャラクタと背景画像を表示部に表示させる。第２の表示制御ステップは、ゲームプログラムと一時記憶手段に記憶されている操作軌跡画像データに基づいて、操作軌跡画像を表示部に表示させる。第３の表示制御ステップは、ゲームプログラムに基づいて、表示部に表示されている移動キャラクタを操作軌跡画像に沿って移動表示する。
【００６３】
本発明の第５１の局面は、表示手段（１２）、座標入力手段（１６）、メモリ（３７）、格納手段（３１，Ｓ４１，Ｓ４６）、無効化手段（３１）、ゲーム処理手段（３１）、および表示制御手段（３１）を備えたゲーム装置である。表示手段は、ゲーム画像を表示するための手段である。座標入力手段は、前記表示手段の画面上の座標を入力するための手段である。メモリは、データを一時的に記憶するためのものである。格納手段は、前記座標入力手段による座標入力の開始から解除までの間、当該座標入力手段によって入力された座標を表す座標データを有効な座標データとして前記メモリに逐次格納する手段である。無効化手段は、前記メモリに格納されている有効な座標データ群のうち、当該メモリに格納されてから一定時間以上が経過した座標データを順次無効にする手段である。ゲーム処理手段は、前記メモリに格納されている有効な座標データ群を用いてゲーム処理を実行する手段である。表示制御手段は、前記ゲーム処理手段によるゲーム処理結果を反映したゲーム画像を前記表示手段に表示させる手段である。
【００６４】
なお、上記第５１の局面に関し、「座標データを無効にする」とは、メモリから座標データを消去したり、座標データが有効か否かを示すフラグを「無効」にセットしたりすることである。また、これに対応して、「有効な座標データ」は、メモリに格納されている（すなわちメモリから消去されていない）座標データを指す場合もあれば、メモリに格納されている座標データのうち、座標データが有効か否かを示すフラグが「有効」にセットされている座標データを指す場合もある。
【００６５】
本発明の第５２の局面は、ゲーム画像を表示するための表示手段（１２）と、前記表示手段の画面上の座標を入力するための座標入力手段（１６）と、データを一時的に記憶するメモリ（３７）とに接続されたコンピュータ（３１）を、格納手段、無効化手段、ゲーム処理手段、および表示制御手段として機能させるためのゲームプログラムである。格納手段は、前記座標入力手段による座標入力の開始から解除までの間、当該座標入力手段によって入力された座標を表す座標データを有効な座標データとして前記メモリに逐次格納する手段である。無効化手段は、前記メモリに格納されている有効な座標データ群のうち、当該メモリに格納されてから一定時間以上が経過した座標データを順次無効にする手段である。ゲーム処理手段は、前記メモリに格納されている有効な座標データ群を用いてゲーム処理を実行する手段である。表示制御手段は、前記ゲーム処理手段によるゲーム処理結果を反映したゲーム画像を前記表示手段に表示させる手段である。
【００６６】
本発明の第５３の局面は、上記第５２の局面において、前記ゲームプログラムは、前記メモリに格納されている有効な座標データによって構成される操作軌跡が所定の条件を満たしているかどうかを判別する判別手段として更に前記コンピュータを機能させるものであり、前記ゲーム処理手段は、前記判別手段における判定の結果に応じて異なるゲーム処理を実行する手段であることを特徴とする。
【００６７】
なお、上記第５３の局面に関し、「所定の条件」の例としては、操作軌跡の形状が所定形状（例えば円）かどうかや、操作軌跡の一部が画面上の所定領域を横切ったかどうか等の条件が挙げられる。
【００６８】
本発明の第５４の局面は、上記第５２の局面において、前記ゲームプログラムは、前記メモリに格納されている有効な座標データによって構成される操作軌跡の画像を生成する軌跡画像生成手段として更に前記コンピュータを機能させるものであり、前記表示制御手段は、前記軌跡画像生成手段によって生成された操作軌跡の画像を含むゲーム画像を前記表示手段に表示させるものであることを特徴とする。
【発明の効果】
【００６９】
この発明によれば、プレイヤがラインを描くような操作をすることによってプレイヤキャラクタの移動状態を変化させることができ、ゲームのルールを知らなくても直感的に操作し得る、面白さと斬新さに富んだ新規な、ゲーム装置及びゲームプログラムが得られる。
また、ゲームプレイのための操作に熟練を要さず、初心者でも楽しみながらゲームプレイすることができる。
【発明を実施するための最良の形態】
【００７０】
図１はこの発明のゲーム装置の一例の携帯ゲーム機の外観図である。図１において、この実施例の携帯ゲーム装置１０は、２つの液晶表示器（以下「ＬＣＤ」と略称する）１１及びＬＣＤ１２を所定の配置位置となるように、ハウジング１３に収納して構成される。具体的には、第１のＬＣＤ１１と第２のＬＣＤ１２を上下に配置して収納する場合は、ハウジング１３が上ハウジング１３ａと下ハウジング１３ｂから構成され、上ハウジング１３ａが下ハウジング１３ｂの上辺の一部で回動自在（折畳み自在）に保持される。上ハウジング１３ａは、第１のＬＣＤ１１の平面形状よりも少し大きな平面形状を有し、一方主面からＬＣＤ１１の表示面を露出するように開口部が形成される。下ハウジング１３ｂは、その平面形状が上ハウジング１３ａよりも横長に選ばれ、横方向の略中央部にＬＣＤ１２の表示面を露出する開口部が形成され、ＬＣＤ１２を挟む何れか一方に音抜き孔１４ａが形成されるとともに、ＬＣＤ１２を挟む左右に操作スイッチ部１５が装着される。
【００７１】
操作スイッチ部１５は、ＬＣＤ１２の左横における下ハウジング１３ｂの一方主面に装着される方向指示スイッチ１５ａ，スタートスイッチ１５ｂ，セレクトスイッチ１５ｃと、ＬＣＤ１２の右横における下ハウジング１３ｂの一方主面に装着される装着される動作スイッチ１５ｄ，１５ｅを含む。方向指示スイッチ１５ａは、プレイヤによって操作可能なカーソルの移動方向の指示等に用いられる。動作スイッチ１５ｄ，１５ｅは、方向指示以外の動作、例えばプレイヤキャラクタ（又は移動キャラクタ）の各種動作を指示するために使用される。また、必要に応じて、動作スイッチをさらに追加するか、下ハウジング１３ｂにおける操作スイッチ部１５の装着領域の上部側面に側面スイッチ１５Ｌ，１５Ｒを設けてもよい。
【００７２】
ＬＣＤ１２の上面には、好ましくはタッチパネル１６が装着される。タッチパネル１６は、例えば、抵抗膜方式，光学式（赤外線方式），静電容量結合式の何れの種類でもよく、その上面をスティック１７（又は指でも可）で押圧操作又は移動操作若しくは撫でる操作をしたとき、スティック１７の座標位置を検出して座標データを出力する。タッチパネル１６は、ＬＣＤ１２の画面に表示されるゲームフィールド（又は表示領域）の座標を指定して、当該ゲームフィールドに表示される操作対象物を直接指定するか、プレイヤキャラクタを所望の経路で移動させるための操作軌跡画像（この実施例のゲームでは、「虹のライン」という）の表示位置とその形状を指定するために用いられる。また、タッチパネル１６は、ＬＣＤ１２に表示されるアイコンの選択・操作や、その他の座標入力指示等に用いてもよい。
【００７３】
このように、携帯ゲーム装置１０は、２画面分の液晶表示部となる液晶表示器１１，１２を有し、何れか一方のＬＣＤ（例えば、下画面であるＬＣＤ１２）の表面に、タッチパネル１６が設けられるので、２画面のＬＣＤ１１，ＬＣＤ１２と２系統の操作部（１５，１６）を有する構成となる。この場合、タッチパネル１６は、操作スイッチ部１５とは異なる操作入力又は操作スイッチ部１５と同様の入力指示のために用いられる。
【００７４】
上ハウジング１３ａの側面近傍には、必要に応じて収納孔１４ｂが形成される。この収納孔１４ｂには、タッチパネル１６上の座標位置を入力するスティック１７を収納するための孔であり、スティック１７の外形寸法と略同様に選ばれる。下ハウジング１３ｂの側面の一部には、ゲームプログラムを記憶したメモリ（ＲＯＭ等）を内蔵したゲームカード（又はゲームカートリッジ）２０を着脱自在に装着するためのカード挿入部（図示せず）が形成される。カード挿入部の内部には、メモリカード２０と電気的に接続するためのコネクタ（図示せず）が内蔵される。さらに、下ハウジング１３ｂ（又は上ハウジング１３ａでも可）には、ＣＰＵ等の各種電子部品を実装した電子回路基板（後述の図３に示す３０）が収納される。なお、ゲームプログラムを記憶する記憶媒体としては、ＲＯＭ又はフラッシュメモリのような不揮発性半導体メモリに限らず、ＣＤ−ＲＯＭやＤＶＤ等の光学式ディスク状記憶媒体を用いてもよい。
【００７５】
図２はこの発明の一実施例の携帯ゲーム機のブロック図である。図２において、ハウジング１３に収納される電子回路基板３０には、ＣＰＵコア３１が実装される。ＣＰＵコア３１には、バス３２を介して、コネクタ３３が接続されるとともに、入出力インターフェース（Ｉ／Ｆ）回路３４，第１のグラフィック処理ユニット（第１のＧＰＵ）３５，第２のグラフィック処理ユニット（第２ＧＰＵ）３６及びワーキングＲＡＭ（以下「Ｗ−ＲＡＭ」という）３７が接続される。コネコタ３３には、メモリカード２０が着脱自在に接続される。メモリカード２０には、ＲＯＭ２１及びＳ−ＲＡＭ２５が内蔵される。Ｓ−ＲＡＭ２５は、携帯ゲーム装置１０から取り外されたとき、電力供給の停止によって記憶データが破壊されるのを防止するために、ボタン電池（図示せず）からのバックアップ電源が供給される。このＲＯＭ２１はＣＰＵコア３１によって読出し制御され、Ｓ−ＲＡＭ２５はＣＰＵコア３１によって書込み及び／又は読出し制御される。Ｉ／Ｆ回路３４には、操作スイッチ部１５及びタッチパネル１６が接続されるとともに、スピーカ１８が接続される。スピーカ１８は、音抜き孔１４ａの内側位置に配置される。第１のＧＰＵ３５には、第１のビデオＲＡＭ３８が接続され、第２のＧＰＵ３６には、第２のビデオＲＡＭ（以下「Ｖ−ＲＡＭ」）３９が接続される。
【００７６】
図３はこの発明の一実施例のゲーム画面（上画面のＬＣＤ１１と下画面のＬＣＤ１２）の表示例を示した図である。この実施例では、下画面のＬＣＤ１２がゲームにおける主画面となり、上画面のＬＣＤ１１が補助画面となる。下画面（主画面）のＬＣＤ１２は、プレイヤによって操作されるキャラクタ（操作対象キャラクタ）が表示される領域であり、プレイヤがゲームプレイにおいて主として使用し又は見る画面である。これに対して、上画面（補助画面）のＬＣＤ１１は、プレイヤの操作が直接影響を及ぼさない画面であって、下画面においてゲームプレイする場合の参考となる画像を表示する領域であり、プレイヤがゲームプレイを有利に進めるための参考として使用し又は見る画面である。
【００７７】
具体的には、下画面のＬＣＤ１２に表示される操作対象キャラクタは、プレイヤが移動方向や動作を指示できるプレイヤキャラクタである。また、操作対象キャラクタには、必要に応じて、移動方向を指示できないが動作を一時停止させることのできる敵キャラクタや、プレイヤキャラクタの移動に障害となるブロック等の障害物を含めても良い。その場合、プレイヤキャラクタと敵キャラクタ・障害物は、プレイヤが自分自身の意思でその移動方向又は動作（機能）を変化させることができように、操作の仕方によってどのような変化を生じさせるかをプログラム設定されている。
【００７８】
例えば、プレイヤキャラクタＰＣは、プレイヤによって描かれた操作軌跡（実施例では、この操作軌跡を「虹のライン」または「虹のベルトコンベア」と呼ぶこともできる）ＴＲの形状と方向によって移動方向を変えることができ、直接タッチされることにより動作を変えることができる。操作軌跡の形状によってプレイヤキャラクタＰＣの移動方向を変化させる場合としては、移動方向前方から近付いて来ている敵キャラクタＥＣの攻撃を回避するか、ブロックＢＬ１に載せられたアイテムＩＴを取得したい場合、プレイヤキャラクタを空中に浮遊するブロックＢＬ１に誘導する。このとき、プレイヤは、移動方向前方の座標を始点としてブロックＢＬ１の近傍を終点とする右上向きの操作軌跡ＴＲ１を描くように、タッチパネル１６を操作する。操作軌跡ＴＲ１は、始点を指定したときから現在指定されている座標点（現在点）が画面に表示され、タッチオフした時点で直前の現在点の座標が終点の座標となる。そして、プレイヤキャラクタＰＣは、操作軌跡ＴＲ１の始点近傍で操作軌跡ＴＲ１に吸着された状態（吸着力を有する状態）となる。吸着状態になると、プレイヤキャラクタＰＣは所定の速度に達するまで加速されながら、操作軌跡ＴＲ１の描画方向に沿って移動（又は並行移動）し、操作軌跡ＴＲ１の終点近傍で吸着状態が解除されてブロックＢＬ１にのり上がることができる。ここで、プレイヤキャラクタＰＣが操作軌跡ＴＲ１に対して吸着力を有する状態とするのは、操作軌跡ＴＲ１が傾斜の急な斜線または円弧であっても、線から外れずに線上を滑らかに移動するような映像表現を実現するためである。なお、プレイヤキャラクタＰＣが操作軌跡ＴＲ１に吸着する状態に代えて、操作軌跡ＴＲ１の始点近傍で強い引力を持たせるようにしても良い。ここで、「吸着力」とはプレイヤキャラクタＰＣが操作軌跡に接触したときに発生する力であるのに対して、「引力」とはプレイヤキャラクタＰＣが操作軌跡から離れていているときにも発生する力であるとする。引力は、例えば、プレイヤキャラクタＰＣの位置と操作軌跡の始点との間の距離の二乗に反比例する値を有するベクトルで表現することができ、このようなベクトルを後述する移動ベクトルと合成することによって、プレイヤキャラクタＰＣが操作軌跡の始端に引き寄せられて移動するような表現が可能となる。
【００７９】
また、敵キャラクタＥＣの攻撃を回避するために、敵キャラクタＥＣの前方から円弧又は山形を描くように操作軌跡ＴＲ２を書くと、プレイヤキャラクタＰＣは操作軌跡ＴＲ２の上を通過するので、敵キャラクタＥＣに遭遇（又は接触）することなく、移動できる。また、操作軌跡の形状と方向によってプレイヤキャラクタＰＣの移動方向を変化させる場合は、操作軌跡ＴＲ１の始点と終点を逆とした左下向きの操作軌跡ＴＲ１’を描くようにタッチパネル１６を操作すると、プレイヤキャラクタＰＣが操作軌跡ＴＲ１’の終点座標（左下）に到来したとき、終点近傍で操作軌跡ＴＲ１に吸着されて操作軌跡ＴＲ１に沿って移動（又は並行移動）を始めても、減衰力（すなわち進行方向とは逆の加速度）が働くため、プレイヤキャラクタＰＣが操作軌跡ＴＲ１’を上り始めてから暫くして速度の低下を招き、やがてプレイヤキャラクタＰＣが操作軌跡ＴＲ１’を滑り落ちて逆向きの方向に移動するように方向変更される。この場合も、吸着力に代えて引力を働かせても良い。なお、動作の変化例として、プレイヤキャラクタにタッチしてから一定時間だけ高速移動させたり、回転させたり、敵キャラクタの攻撃を受けてもダメージを受けない無敵状態に変化させることも可能である。
【００８０】
そして、プレイヤキャラクタＰＣ以外のキャラクタ等に対する操作例としては、敵キャラクタＥＣに直接タッチすると、敵キャラクタＥＣがその場で立ち止まって一時停止するので、プレイヤキャラクタＰＣが敵から攻撃を受けることなくその場を通過できる。また、移動通路にプレイヤキャラクタＰＣの行く手を遮る障害物（障害ブロック）ＯＡが存在するとき、プレイヤが障害物ＯＡに直接タッチすると、障害物ＯＡが爆破されて、プレイヤキャラクタＰＣが通過可能となる。
【００８１】
以上説明した様に、この実施例のゲームでは、従来の方向指示スイッチ１５ａと動作指示スイッチ１５ｄ，１５ｅを操作する場合（間接的に指示する場合）に比べて、タッチパネル１６を操作して操作軌跡ＴＲ１，ＴＲ２を直接描いたり、画像変化させたい対象物に直接指示（例えば、プレイヤキャラクタＰＣには高速移動、敵キャラクタＥＣには一時停止、障害物には破壊の指示）をすることにより、直接かつ直感的に操作することができる。そのため、プレイヤがゲームプレイする前に各種操作スイッチの操作に関する取扱説明書を熟読したり、各種操作スイッチの操作に熟練する必要性を低減でき、初心者でも容易にゲームプレイに慣れてゲームを楽しむことができる。
【００８２】
一方、上画面（補助画面）のＬＣＤ１１に表示される画像としては、縮小マップＲＭＰ，操作軌跡ＴＲを描くことのできる残存距離又はその残存距離をインク量に見立ててインク量（又はインク残量）を表示する表示部ＤＳ１，マップ数や取得アイテムや得点等のゲーム進行状態を表示する表示部ＤＳ２等を含む。縮小マップＲＭＰは、プレイヤキャラクタＰＣがマップ上のどの位置にいるかを知らせるために、１つのステージ又はマップの全体（又はマップが広い場合は当該マップ全体の１／２等の一部マップ）を縮小して表示するものである。表示部ＤＳ１は、タッチパネル１６を操作して１回に描ける操作軌跡ＴＲ１の長さ（または同時に存在する操作軌跡ＴＲの総長さ）に何の制限も付けないと、連続的に操作軌跡を描くプレイヤもいるので、それを防止するためである。
【００８３】
図４はＲＯＭ２１の記憶データを図解的に示したメモリマップである。図４において、ＲＯＭ２１は、記憶領域２１０と記憶領域２１５に大別される。記憶領域２１０は、画像データを記憶する記憶領域であり、記憶領域２１１及び２１２を含む。記憶領域２１１は、キャラクタ画像データを記憶する記憶領域（キャラクタ画像データ記憶領域）である。ここで、キャラクタ画像としては、例えばプレイヤキャラクタや敵キャラクタ等の移動キャラクタ，アイテムキャラクタ等の各種キャラクタが含まれる。プレイヤキャラクタは、プレイヤの意思で操作可能な移動キャラクタであり、プレイヤオブジェクト又は移動キャラクタともいう。記憶領域２１２は、初期画面や、各ステージ（又はマップ）の背景画面データやエンディング画面等を表示するための画像データを記憶する記憶領域である。背景画面としては、プレイヤキャラクタが自由に移動できる野山，洞窟，建造物，地下迷路等の画面である。
【００８４】
また、この実施例では、背景画面や、プレイヤによって直接又は間接的に指定されるプレイヤキャラクタ，敵キャラクタ，味方キャラクタ等の移動キャラクタ、又はプレイヤの操作によって破壊することのできるブロック等のゲームプレイの主要な画像は下側のＬＣＤ１２に表示し、縮小マップ，得点，インク量等のゲームプレイに参考となる画像又は情報は上画面のＬＣＤ１１に表示しているが、下画面に表示する画像の一部を上画面のＬＣＤ１１に表示しても良い。
【００８５】
記憶領域２１５は、ゲームプログラムデータを記憶する記憶領域であり、記憶領域２１５ａ〜２１５ｄを含む。記憶領域２１５ａには、上画面の表示制御プログラムが記憶される。記憶領域２１５ｂには、下画面の表示制御プログラムが記憶される。記憶領域２１５ｃには、操作スイッチの操作状態検出処理プログラムが記憶される。操作スイッチ操作状態検出処理プログラムは、例えば、短い一定時間ごとに、方向指示スイッチ１５ａの上下左右の何れかの指示の検出とその方向指示の継続時間による移動量の検出や、動作スイッチ１５ｄ，１５ｅの種類の検出などのプログラムである。記憶領域２１５ｄには、タッチパネル操作状態検出処理プログラムが記憶される。タッチパネル操作状態検出処理プログラムは、短い一定時間（例えばフレーム周期）ごとにタッチパネルの操作によって変化する座標データを読み取りかつその座標データを一時記憶し、比較的長い一定時間（例えばフレーム期間の数十倍〜数百倍）ごとに座標データの変化状態を検出し、座標データの変化が同じ（又は略同じ）座標データの繰り返しであればタッチ位置で停止していることを検出し、座標データの変化が徐々にかつ連続的に変化していればＸ軸成分とＹ軸成分の変化量に基づいて操作軌跡の入力であることを検出する。また、Ｘ軸成分とＹ軸成分のそれぞれの変化量を合成したベクトル量に基づいて、移動量（スクロールの量又は距離）を検出してもよい。なお、これらの記憶領域２１５ａ〜２１５ｄに記憶されている各種プログラムの処理の詳細は、後述の図８〜図１２を参照して説明する。
【００８６】
再び図２を参照して、ＣＰＵコア３１は、ＲＯＭ２１に記憶されているプログラムに基づいて、１つのステージ（又はマップ）の初期画面データ（例えば、図４のＲＯＭ２１のメモリマップに示す或る１つのステージ番号）の初期画面（又はスタート画面）の画像データ（例えば、下画面のみ又は下画面と上画面の両方の画像データ）を読み出して、Ｗ−ＲＡＭ３７へ転送する。また、ＣＰＵコア３１は、上画面の画像を発生制御するためのプログラムをＲＯＭ２１から読み出してＧＰＵ３５に与え、下画面の画像を発生制御するためのプログラムをＲＯＭ２１から読み出してＧＰＵ３６に与える。これに応じて、ＧＰＵ３５は、Ｗ−ＲＡＭ３７を読出処理しかつ上画面の画像データを生成処理して、ＬＣＤ１１に表示すべき上画面の画像データをＶ−ＲＡＭ３８に書込処理するとともに、所定のタイミングでＶ−ＲＡＭ３８を読出制御して、上画面の画像をＬＣＤ１１に表示させる。これに並行して、ＧＰＵ３６は、Ｗ−ＲＡＭ３７を読出処理しかつ下画面の画像データを生成処理して、ＬＣＤ１２に表示すべき下画面の画像データをＶ−ＲＡＭ３９に書込処理するとともに、所定の表示タイミングで読出してＬＣＤ１２に下画面の画像を表示させる。
【００８７】
図５はワーキングＲＡＭ３７の記憶領域を図解的に示した図である。ワーキングＲＡＭ３７は、記憶領域３７１〜記憶領域３７３を含む。記憶領域３７１は、タッチパネル１６を操作して入力された単位時間ごとの座標データを一時記憶するものであり、先入れ先出し態様で記憶する。記憶領域３７２は、プレイヤがタッチパネル１６を操作して入力された座標データが１回のタッチオン時から連続するものであるとき、タッチオンからタッチオフまでの座標変化を順次記憶することにより、操作軌跡の（結果として操作軌跡の形状）データを記憶する。記憶領域３７３は、ゲーム進行に関連するデータを記憶する領域であり、例えばクリアしたステージ（マップ）番号，取得したアイテム，得点等のバックアップデータや、処理に応じて一時記憶すべきその他のデータ（例えば、プレイヤキャラクタＰＣの位置座標データ、移動速度データ（Ｘ方向の移動速度データとＹ方向の移動速度データを含む移動速度ベクトルデータである），吸着力データ、インク量データ、操作軌跡ＴＲの法線データ、背景画面のスクロール速度やスクロールのオフセット値等）を記憶する領域である。
【００８８】
図６はこの発明の一実施例であるゲーム画面の表示変化の一例を説明するための図である。プレイヤが何も操作しない場合は、図６（Ａ）に示すように、プレイヤキャラクタＰＣは背景画面の地形（又は地面）ＧＲに沿って慣性によりまたは自立的に移動する。このとき、プレイヤは、プレイヤキャラクタＰＣを起伏のある地面の位置から空中に浮遊しているブロック（又は島）ＢＬ１に登るように移動させたい場合、図６（Ｂ）に示すように、プレイヤキャラクタＰＣの進行方向前方の地面ＧＲからブロックＢＬ１へ向けて上昇するような直線（又は円弧の）形状の操作軌跡ＴＲ１を描く。すると、プレイヤキャラクタＰＣは、図６（Ｃ）に示すように、操作軌跡ＴＲ１の始点に接したとき（又は近傍に来たときでもよい）、操作軌跡ＴＲ１に吸着して、操作軌跡ＴＲ１に沿って移動する。すなわち、プレイヤキャラクタＰＣは、操作軌跡ＴＲ１の傾斜角に影響を受けずに、操作軌跡ＴＲ１に沿って平行移動し、操作軌跡ＴＲ１の終点位置で吸着状態が解除されて、ブロックＢＬ１の上に載る。図６（Ｄ）に示すように、操作軌跡ＴＲ１の描画終了から（または描画開始から）一定時間経過後に操作軌跡ＴＲ１が始点から終点に向かって徐々に消去される。さらに、プレイヤキャラクタＰＣを隣のブロックＢＬ２へ移動させたい場合は、図６（Ｅ）に示すように、ブロックＢＬ１からブロックＢＬ２へ向かうような操作軌跡ＴＲ２を描くと、プレイヤキャラクタＰＣが操作軌跡ＴＲ２を通ってブロックＢＬ１からブロックＢＬ２へと移動する。なお、このとき、先に表示された操作軌跡ＴＲ１は次に描かれた操作軌跡ＴＲ２が表示される前に完全に消去して、複数の操作軌跡ＴＲ１，ＴＲ２が同時に表示されないようにしてもよいし、操作軌跡ＴＲ２の始点が描画された時点で、操作軌跡ＴＲ１を始点から終点に向けて徐々に消去するようにしてもよい。また、各線分（または、線分の始端あるいは終端）毎に、操作軌跡情報の一部としてＷ−ＲＡＭ３７に格納されてから一定時間の有効期間（例えば１秒間）を設け、この有効期間が終了した時点でその線分（または、線分の始端あるいは終端）に関する情報をＷ−ＲＡＭ３７から消去するようにしてもよい。
【００８９】
図７はゲーム画面の表示変化においてプレイヤキャラクタと操作軌跡の関係を説明するための図である。プレイヤキャラクタＰＣの高さと操作軌跡ＴＲの始点座標の位置との関係によっては、プレイヤキャラクタＰＣが操作軌跡ＴＲに載って移動することが不自然な場合もあるので、プレイヤキャラクタＰＣが操作軌跡ＴＲに吸着して操作軌跡ＴＲ上を移動する（又は登る）か、それとも操作軌跡ＴＲに衝突して移動方向を変更するかは、次のように処理してもよい。すなわち、地面とプレイヤキャラクタＰＣの中心との間の垂直方向の距離をｄ１とし、地面と操作軌跡ＴＲの始点との間の垂直方向の距離をｄ２としたとき（図７（Ａ）参照）、ｄ１＞ｄ２又はｄ１＝ｄ２の場合は図７（Ｂ）に示すように、プレイヤキャラクタＰＣが操作軌跡ＴＲに載って移動できる（登る）こととする。一方、ｄ１＜ｄ２の場合は、プレイヤキャラクタＰＣが操作軌跡ＴＲに登ることが不自然な動きとなるので、図７（Ｃ）に示すように、プレイヤキャラクタＰＣが操作軌跡ＴＲに衝突して移動方向を反転させることとする。なお、ｄ１は、地面からプレイヤキャラクタＰＣの中心までの垂直方向の距離を使用する代わりに、地面からプレイヤキャラクタＰＣの外形までの垂直方向の距離またはその近似値、及びそれらにオフセットを加えて近傍の値を使っても良い。
【００９０】
一方、図７（Ａ）において、操作軌跡ＴＲの形状が同じでも、始点と終点の座標が逆の関係にある場合、言い換えれば操作軌跡ＴＲが右上を始点として左下を終点とするような斜め下向きに描かれた場合は、ｄ１＞ｄ２又はｄ１＝ｄ２の条件（すなわちｄ１＜ｄ２でない条件）であっても、プレイヤがプレイヤキャラクタＰＣの移動方向を右向から左向に反転させるための操作指示と考えられる。その場合は、操作軌跡ＴＲの向きが左下向きの指示であることを検出することにより、ｄ１＜ｄ２の場合と同様に、プレイヤキャラクタＰＣの移動方向を反転させる。この場合、より好ましくは、プレイヤキャラクタＰＣは、操作軌跡ＴＲを少し登りかけて徐々に減速し、逆向きの移動方向が付与されてそれまでの進行方向とは逆の方向に移動表示させる。
【００９１】
このように、プレイヤキャラクタと操作軌跡の関係を考慮して、移動方向や移動速度を変化させれば、プレイヤから見てプレイヤキャラクタが自然な動きをするように見ることができ、違和感なくプレイヤキャラクタを移動表示させることができる利点がある。
【００９２】
図８ないし図１２はこの実施例のゲーム（ゲームソフト）の一例の動作を説明するためのフローチャートであり、特に図８及び図９はそのメインルーチンを示し、図１０はタッチパネルの操作状態の検出処理の詳細なフローチャートを示し、図１１および図１２は下画面の表示制御のための詳細なフローチャート（下画面の表示制御プログラムのサブルーチン）を示す。次に、図１〜図１２を参照してフローに沿って、図３，図６及び図７のゲーム画像表示の動作の概略を説明する。
【００９３】
電源スイッチ（図示せず）が投入されると、ＣＰＵコア３１はＲＯＭ２１の記憶領域２１５に記憶されている各プログラムに基づいて以下の処理を開始する。まず、ステップ（図示では記号「Ｓ」と略して示す）１１において、初期処理が行われる。この初期処理としては、例えば、Ｗ−ＲＡＭ３７及びＶ−ＲＡＭ３８，３９がイニシャルクリアされた後、Ｓ−ＲＡＭ２５に記憶されているバックアップデータ（これまでにプレイされている場合は前回のプレイまでの攻略したステージ番号や得点等の経過データ）が読み出され、Ｗ−ＲＡＭ３７のゲーム進行データ記憶領域３７３に書き込まれる。また、プレイ開始の選択画面が表示され、始めのステージ番号１から開始するか、前回プレイの続きのステージ番号から開始するかの選択が行われる。この選択画面では、例えばゲームの難易度を選択するようにしても良い。ステップ１２において、選択されたステージ番号又はマップ番号（始めてプレイする場合はステージ又はマップ番号「１」）が、ステージ（又はマップ）カウンタ（カウンタに代えてレジスタでもよい；図示しないが、Ｗ−ＲＡＭ３７の一部アドレス）に設定される。このようにして、ゲームプレイ開始のための準備処理が行われる。
【００９４】
続くステップ１３において、ステージカウンタに設定されているステージ番号の１ステージ分の背景画面データとそのキャラクタデータが、ＲＯＭ２１から読み出されて、Ｗ−ＲＡＭ３７の記憶領域３７１，３７３に書き込まれる。ステップ１４において、カーソルの座標データが初期値に設定される。但し、この処理は、タッチパネル１６に代えてマウス等のポインティングデバイスを用いてキャラクタの動作を指定するか、操作軌跡を入力する場合であり、タッチパネルのみ使用して座標入力する場合は省略される。
【００９５】
ステップ１５において、方向指示スイッチ１５ａの入力があったか否かが判断されるが、入力のあることが判断されるとステップ１６へ進み、入力のないことが判断されるとステップ１８へ進む。方向指示スイッチ１５ａの入力があると、ステップ１６において、方向指示スイッチ１５ａの操作状態の検出処理、例えば方向指示スイッチ１５ａの「上」，「下」，「左」，「右」の何れかが押圧されていれば、操作された「上」，「下」，「左」，「右」に対応するキーコードを読み込んで内部レジスタ（図示せず）に一時記憶する。ステップ１７において、方向指示スイッチ１５ａの操作に基づくカーソルの現在座標位置の変更処理が行われる。ステップ１８において、その他の操作スイッチ１５ｂ〜１５ｅ，１５Ｌ，１５Ｒの入力があるか否かが判断され、操作スイッチ１５ｂ〜１５ｅ，１５Ｌ，１５Ｒの入力のあることが判断されると、ステップ１９において、他のスイッチに応じた入力処理が行われる。その後、又は操作スイッチ１５ｂ〜１５ｅ，１５Ｌ，１５Ｒの入力のないことが判断されると、ステップ２０へ進む。このようにして、方向指示スイッチ１５ａおよびその他の操作スイッチ１５ｂ〜１５ｅ，１５Ｌ，１５Ｒの操作入力に応じた処理が行われる。
【００９６】
ステップ２０において、タッチパネル１６の操作による座標入力があったか否かが判断される。タッチパネル１６の操作による座標入力があった場合は、そのことが判断されて、ステップ３０のタッチパネル操作状態検出処理及びその検出に基づく画像処理のサブルーチン処理が行われるが、その場合の動作は図１０を参照して後述する。
【００９７】
そして、ＬＣＤ１１及びＬＣＤ１２の非表示期間（垂直帰線期間）において、ステップ２１〜２３の処理が行われる。すなわち、ステップ２１において、ＬＣＤ１１及びＬＣＤ１２の非表示期間か否かが判断され、非表示期間であることが判断されると、ステップ２２において、上画面の画像表示制御プログラムに基づいて、ＣＰＵコア３１とＧＰＵ３５が共同して、上画面に表示すべき画像データの処理を行う。例えば、上画面の画像データ（画像表示のためのプログラムデータとキャラクタデータ）がＷ−ＲＡＭ３７から読み出されて、ＧＰＵ３５に与えられると、ＧＰＵ３５が上画面用１画面サイズのビットマップ形式の画像データを発生して、当該画像データがＶ−ＲＡＭ３８に上書きされる。これによって、上画面の１画面分の画像データ（ビットマップデータ）がＶ−ＲＡＭ３８に一時記憶されることになる。続くステップ２３において、下画面の画像表示制御プログラムに基づいて、ＣＰＵコア３１とＧＰＵ３６が共同して、下画面の画像処理（表示制御処理）を行う。この下画面の表示制御処理については、後述の図１１のサブルーチンのフローチャートを参照して詳細に説明する。
【００９８】
続く、ステップ２４において、ステージクリア条件に達したか否かが判断され、ステージクリアしていないことが判断されると、ステップ２５においてゲームが終了したか否かが判断される。このゲーム終了条件の検出は、ステージカウンタの計数値が最大ステージ番号（Ｎ）に達しているとき、又はゲームオーバー条件（例えば、１ステージをクリアするための制限時間をオーバーしたこと）に基づいて検出される。そして、ステップ２４においてステージクリア条件ではなく、かつステップ２５においてゲーム終了条件でもないことが検出されると、前述のステップ１３へ戻って、ステップ１３〜２５及び後述のステップ２７，２８の動作を一定周期で繰り返すことになる。
【００９９】
一方、前述のステップ２１において、ＬＣＤ１１及びＬＣＤ１２の非表示期間でないこと（すなわち表示期間であること）が判断されると、ステップ２７において、ＬＣＤ１１の表示タイミングにおいて、ＧＰＵ３５がＶ−ＲＡＭ３８を読出制御することにより、上画面の画像データが１フレーム期間にフレーム走査に同期して順次読み出されて、上画面の画像がＬＣＤ１１に表示される。これに並行して、ステップ２８において、ＬＣＤ１２の表示タイミングにおいて、ＧＰＵ３６がＶ−ＲＡＭ３９を読出制御することにより、下画面の画像データが１フレーム期間にフレーム走査に同期して順次読み出されて、下画面の画像がＬＣＤ１２に表示される。このようにして、上画面の画像がＬＣＤ１１に表示され、下画面の画像がＬＣＤ１２に表示されることになる。
【０１００】
次に、図１０を参照して、タッチパネル操作状態検出処理及びその検出に基づく画像処理のサブルーチン処理を説明する。ステップ３１において、タッチパネル１６の操作による座標データが読込まれて、記憶領域３７１の各番地に先入れ先出し態様で書き込まれる。すなわち、このステップでは、タッチパネル１６を操作して入力される座標データが一定時間間隔で（又は単位時間毎に）書き込まれるが、タッチ操作の座標位置が止まったままでも、その入力座標データが書き込まれることになる。続くステップ３２において、タッチオンが開始されたか否かが判断される。タッチオンの開始であることが判断されると、ステップ３３においてタッチオン座標位置に操作対象となるプレイヤキャラクタＰＣ，敵キャラクタＥＣ又は障害物ＯＡが存在するか否かが判断される。操作対象物であることが判断されると、ステップ３４においてプレイヤキャラクタＰＣか否かが判断される。プレイヤキャラクタＰＣであることが判断されると、プレイヤキャラクタＰＣの加速処理又は無敵状態化処理が行われる。加速処理としては、プレイヤキャラクタＰＣが高速で移動しているように見せるためにプレイヤキャラクタＰＣを回転させる処理、又は足のあるキャラクタであれば左右の足を交互に早く動かす処理である。また、無敵状態化処理としては、例えばプレイヤキャラクタＰＣが無敵状態か否かを示すフラグを無敵状態にセットする処理である。これにより、敵キャラクタに接触してもダメージを受けない状態となる。なお、後述するステップ６４の処理では、こうして無敵状態にセットしたフラグに基づいてプレイヤキャラクタＰＣの周りにバリアを掛けたような画像が表示される。その後、又はプレイヤキャラクタＰＣでないことが判断されると、ステップ３６において、敵キャラクタＥＣか否かが判断される。敵キャラクタＥＣであることが判断されると、ステップ３７において敵キャラクタＥＣの一時停止のための処理が行われる。その後、又は敵キャラクタＥＣでないことが判断されると、ステップ３８において、障害ブロックＯＡか否かが判断される。障害ブロックＯＡであることが判断されると、ステップ３９において障害ブロックＯＡの破壊のための処理が行われる。このようにして、タッチオン座標位置にプレイヤの操作可能な操作対象物がある場合は、操作対象物の種類に応じて、操作対象物の画像変化を与えるための処理が行われる。その後、メインルーチンへ戻る。
【０１０１】
一方、前述のステップ３３において、タッチオン座標位置に操作対象物の存在しないことが判断された場合は、操作軌跡ＴＲの始点座標の入力であるので、ステップ４１へ進み、以下の処理を行う。すなわち、ステップ４１において、タッチオンが開始しかつタッチオン座標に操作対象物の存在しない条件の検出された場合は、操作軌跡ＴＲの始点座標が入力されたことであるため、タッチオン座標を操作軌跡ＴＲの始点座標（Ｐ１＝Ｐｓ＝ｘ１，ｙ１）として記憶領域３７２に記憶させる。続くステップ４２において、操作軌跡ＴＲの途中の距離が計算（又は累計）されるが、始点座標の入力のあった直後は操作軌跡ＴＲの距離が０の状態である。ステップ４３において、操作軌跡ＴＲの累計距離が１回の描画で許容された最大距離（又は表示部ＤＳ１で表示されるインク量で書くことのできる最大値）を超えたか否かが判断されるが、最大距離又は最大値を超えていなければメインルーチンへ戻る。
【０１０２】
そして、再びタッチパネル操作処理サブルーチンが実行されると、前述のステップ３２においてタッチオンの開始でないこと、すなわちタッチオン状態を継続していることが判断されて、ステップ４５へ進む。ステップ４５において、連続タッチ中でありかつタッチ座標に変化があるか否かが判断される。連続タッチ中に座標変化のあることが判断されると、ステップ４６へ進み、操作軌跡ＴＲの途中の座標が記憶領域３７２に書き込まれて一時記憶される。続くステップ４２において、操作軌跡ＴＲの途中の距離が累計される。すなわち、始点座標から次の指定座標（Ｐ２＝ｘ２，ｙ２）の変化分（ｄｘ，ｄｙ）が累計される。その後、前述のステップ４３において、操作軌跡の累計距離が最大値を超えていないことが判断され、メインルーチンへ戻る。そして、操作軌跡ＴＲを描くためのタッチ座標の変化がある毎に、ステップ３１，３２，４５，４６，４２，４３の各ステップの処理が繰り返される。このようにして、操作軌跡ＴＲの各点の座標データ（Ｐ３＝ｘ３，ｙ３、Ｐ４＝ｘ４，ｙ４、・・・Ｐｎ−１＝ｘｎ−１，ｙｎ−１）が順次記憶領域３７２に記憶される。
【０１０３】
そして、プレイヤが操作座標ＴＲの座標入力を終了するために、タッチパネル１６をタッチオフすると、前述のステップ３１，３２，４５，４６，４２，４３を繰り返している途中のステップ４５において、連続タッチ中でなくかつタッチ座標に変化のないことが判断されて、ステップ４７へ進む。ステップ４７において、連続タッチの終了したことが判断されて、ステップ４８において、操作軌跡の終点座標（Ｐｎ＝Ｐｅ＝ｘｎ，ｙｎ）が記憶領域３７２に記憶される。このようにして、操作軌跡ＴＲの始点（Ｐ１＝Ｐｓ）から終点（Ｐｎ＝Ｐｅ）までの座標データ（Ｐ１〜Ｐｎ）が記憶領域３７２に記憶されることになる。
【０１０４】
なお、操作軌跡ＴＲの距離の累計がインク量によって許容されている最大値を超えた場合は、前述のステップ４３において、距離の累計が最大値を超えたことが判断されて、ステップ４９において直前の検出座標を終点の座標（Ｐｅ）として記憶させることになる。このようにして、タッチパネル１６のタッチ操作に応じて操作軌跡ＴＲの座標が連続的に記憶されることになる。このとき、記憶領域３７３に記憶されている操作軌跡ＴＲの形状は、各座標点を結ぶ折れ線で近似された形状の直線又は曲線となる。
【０１０５】
次に、図１１及び図１２の下画面の表示制御サブルーチンを参照して、図３，図６及び図７に示すようなゲーム表示の流れに沿って詳細な動作を説明する。ステップ５１において、各ステージ（又はマップ）のスタート点からの表示開始か否かが判断される。いずれかのステージのスタート点からの表示開始であることが判断されると、ステップ５２において、スクロールレジスタ（図示せず）にオフセット値として当該ステージのスタート位置の値（最初は０）が設定される。続くステップ５３において、ステージカウンタの値に応じたステージのスタート位置の背景画面の画像が生成される。具体的には、１つのステージの背景画面は、ＬＣＤ１２で表示される１画面よりもスクロール方向に数倍分大きな画面であり、その大きな画面分（１ステージ分）の背景画像データが、背景を構成するキャラクタ別の画像データ（パネル）とパネルの配置パターンを示す表示座標データとしてＷ−ＲＡＭ３７に記憶されている。そして、ＣＰＵコア３１は、キャラクタ単位のパネルと表示座標データとに基づいてビットマップデータに変換することによって１画面分の背景画面の画像データ（ビットマップデータ）を生成し、その画像データをＶ−ＲＡＭ３９の表示位置に対応するアドレスに書き込む。その後、又は前述のステップ５１において各ステージのスタート点からの開始でないことが判断された後に、ステージカウンタによって決定されるステージの敵キャラクタの画像データが生成され、表示位置に対応するＶ−ＲＡＭ３９のアドレスにビットマップデータで書き込まれる。ステップ５５において、プレイヤキャラクタＰＣの画像データが生成され、位置座標データに基づいて、表示位置に対応するＶ−ＲＡＭ３９のアドレスにビットマップデータで書き込まれる。ここで、敵キャラクタＥＣのビットマップデータは背景画像のあるドット位置について背景画像データに上書され、プレイヤキャラクタＰＣのビットマップデータは背景画像又は敵キャラクタＥＣのあるドット位置について背景画像又は敵キャラクタＥＣのビットマップデータに上書されることになる。このようにして、１画面に表示すべき背景画像ＢＧ，敵キャラクタＥＣ，プレイヤキャラクタＰＣの画像がＶ−ＲＡＭ３９に書き込まれる。そして、上述のステップ２８において下画面の画像データを読み出す場合は、スクロールレジスタの値に基づいて１画面分の画像データだけが読み出されることになる。
【０１０６】
ステップ５６において、プレイヤキャラクタＰＣが背景画面をスクロールさせるように設定されている単位距離だけ移動したか否かが判断される。単位距離だけ移動したことが判断されると、続くステップ５７においてスクロールレジスタに単位距離（例えば１）だけ加算され、ステップ５８においてスクロール表示のための処理（背景画面を単位距離だけスクロール方向に移動又はずらせるように処理）が行われる。その後又は前述のステップ５６において単位距離の移動でないことが判断された後、ステップ５９においてプレイヤキャラクタがダメージを受けたか否かが判断される。ダメージを受けたことが判断されると、ステップ６０において、プレイヤキャラクタのダメージ処理（例えばプレイヤキャラクタが衝撃を受けたような画像表示のための処理）が行われる。その後又は前述のステップ５９においてプレイヤキャラクタがダメージを受けていないことが判断された後、ステップ６１において敵キャラクタがダメージを受けたか否かが判断される。ダメージを受けたことが判断されると、ステップ６２において、敵キャラクタのダメージ処理（例えば敵キャラクタが衝撃を受けたような画像表示のための処理）が行われる。このようにして、背景画面のスクロール処理とプレイヤキャラクタ又は敵キャラクタのダメージ処理が行われる。
【０１０７】
ステップ６３において、プレイヤによって操作可能な操作対象物（プレイヤキャラクタＰＣ，敵キャラクタＥＣ又は障害ブロックＯＡ）がタッチパネル１６によって操作されたか否かが判断される。何れかの走査対象物が操作されたことが判断された場合は、ステップ６４において、ステップ３５，３７，３９の動作処理に基づいた表示状態の変化処理が行われる。この処理は、例えばプレイヤキャラクタＰＣがタッチされたとき、プレイヤキャラクタＰＣが高速移動しているように回転表示し又は、無敵状態に表示する等の画像変化の処理が行われる。また、敵キャラクタＥＣがタッチされたとき、敵キャラクタＥＣの動きを一時停止する等の画像変化の処理が行われる。障害ブロックＯＡがタッチされたとき、障害ブロックＯＡを爆破するような画像変化の処理が行われる。これによって、タッチ操作されたキャラクタの種類に応じて異なる表示変化の処理が行われる。
【０１０８】
その後又はステップ６３で操作対象物の指定のないことが判断された後、続くステップ６５において、操作軌跡ＴＲの指定があったか否かが判断される。この判断は、タッチオン中であるか否か、すなわち図１０のステップ４１又は４６において座標が記憶されたことを検出した場合である。操作軌跡ＴＲの指定があったことが判断されると、ステップ６６において、始点座標から現在点座標（タッチオフした場合はそのときの現在点が終点座標Ｐｅとなる）までの各点の折れ線で近似される形状の直線又は曲線による操作軌跡ＴＲの画像が生成され、その操作軌跡ＴＲの画像データ（ビットマップデータ）がＶ−ＲＡＭ３９に書き込まれる。例えば、プレイヤキャラクタＰＣが空中に架かった虹を渡って移動しているように見えるように、操作軌跡ＴＲが虹色を構成する七色で表現される。その後、又は前述のステップ６５において操作軌跡ＴＲの指定の無いことが判断された後、ステップ６７へ進む。
【０１０９】
ステップ６７において、プレイヤキャラクタＰＣが操作軌跡ＴＲの任意の点（始点座標Ｐｓを含む）に近接したか否かが判断され、近接したことが判断されると次のステップ６８において操作軌跡ＴＲの法線方向に対応するプレイヤキャラクタＰＣの移動速度（つまり衝突速度）が所定値以下か否かが判断される。所定値以下である場合は、ステップ６９において、プレイヤキャラクタＰＣが図７を参照して説明したように、操作軌跡ＴＲに吸着できる条件になっているか否かが判断される。吸着条件を満たしていることが判断されると、ステップ７０においてプレイヤキャラクタＰＣに吸着力が付与され、プレイヤキャラクタＰＣが操作軌跡ＴＲに吸着した状態で操作軌跡ＴＲに沿って移動できることになる。ここで、プレイヤキャラクタＰＣが操作軌跡ＴＲに沿って移動する場合は、操作軌跡ＴＲに吸着した状態で移動するので、見た目的には操作軌跡ＴＲ上を並行移動することになる。
【０１１０】
一方、ステップ６８の条件を満たさず又はステップ６９の条件を満たさない場合（すなわち、何れかがＮｏの場合）は、プレイヤキャラクタＰＣが操作軌跡ＴＲを通って移動できない場合であるので、ステップ７１においてプレイヤキャラクタＰＣの移動方向の反転処理が行われる。この処理は、操作軌跡ＴＲの法線方向に対応するプレイヤキャラクタＰＣの移動速度ベクトル成分を反転させることにより行う。
【０１１１】
その後、又はステップ６７において近接していないことが判断された場合は、ステップ７２へ進む。ステップ７２において、プレイヤキャラクタＰＣが操作軌跡ＴＲの終点座標Ｐｅに近接したか否かが判断され、近接したことが判断されるとステップ７３へ進み、プレイヤキャラクタＰＣの吸着力を解除する処理が行なわれる。接近していないと判断した場合は、ステップ７４へ進み、ステップ７４においてプレイヤキャラクタＰＣの剥離条件を満たしているか否かが判定される。ここで、剥離条件は、操作軌跡ＴＲで円弧や角を描いたときに発生する操作軌跡ＴＲの法線方向に対するキャラクタＰＣの移動速度ベクトル成分、すなわち遠心力や慣性力による加速度に相当する力が吸着力を上回ったときに剥離したものと判断される。その結果、前述のステップ７３へ進み、吸着力を解除するための処理が行われる。続くステップ７５において、プレイヤキャラクタＰＣがそのときの移動速度と操作軌跡ＴＲの終端部分の形状に応じて、慣性による移動処理が行われる。例えば、移動速度との関係について説明すれば、移動速度が速い場合は、プレイヤキャラクタＰＣが操作軌跡ＴＲの終点から慣性力で遠くへ飛ぶように表示される。逆に、移動速度が遅い場合は、慣性力が少ししか作用しないので、プレイヤキャラクタＰＣが操作軌跡ＴＲの終端から斜め下向きに落下するように表示される。また、操作軌跡ＴＲの形状が逆向きのＶ字やそれに近い急な円弧になっている場合は、プレイヤキャラクタＰＣが操作軌跡ＴＲを駆け上がって頂点を飛び出して落下するように表示される。これに対して、操作軌跡ＴＲの形状が放物線の頂点を上向きとする緩やかな円弧状に描かれている場合は、プレイヤキャラクタＰＣが操作軌跡ＴＲを駆け上がった後、操作軌跡ＴＲに沿っての斜め下向きに滑り降りるように表示される。
【０１１２】
続くステップ７６において、プレイヤキャラクタＰＣが吸着状態にあるか否かが判断される。吸着状態にある場合は、ステップ７７において、プレイヤキャラクタＰＣの進行方向と操作軌跡ＴＲを描いた方向を調べ、同じ方向を向いていればステップ７８に、逆方向であればステップ８０に進む。ステップ７８では、プレイヤキャラクタＰＣの速度が所定速度に達しているか否かが判断され、所定速度以下であればステップ７９に進み、ステップ７９においてプレイヤキャラクタＰＣの速度を進行方向に増加させる処理を行う。ステップ７７において、それぞれの方向が逆の場合はステップ８０に進み、ステップ８０では、プレイヤキャラクタＰＣの速度を減速させる処理が行われる。なお、プレイヤキャラクタＰＣの速度の減速は、直ちにゼロの速度にすることも含まれるものとする。
【０１１３】
続くステップ８１において、プレイヤキャラクタＰＣがアイテムＩＴを取得したか否かが判断される。アイテムＩＴを取得した場合は、ステップ８２において、取得したアイテムの種類データがＷ−ＲＡＭ３７の記憶領域３７３に書き込まれる。ステップ８３において、得点を付与する条件になったか否かが判断され、得点付与条件を満たしている場合はステップ８４において得点が付与され、それまでに獲得していた得点に加算される。ステップ８５において、スクロールレジスタの値が当該ステージの最終位置を表す値に達したか否かが判断され、最終位置を表す値に達していないことが判断されると、メインルーチン（ステップ２４）へ戻る。そして、一定周期毎に上述の下画面表示のためのサブルーチンの処理が繰り返され、タッチパネル１６の操作に応じた表示処理が行われる。このような表示処理結果が前述のステップ２８のタイミングで下画面のＬＣＤ１２に表示されることになる。
【０１１４】
そして、前述のステップ８５において、スクロールレジスタの値が当該ステージの最終位置を表す値に達したことが判断されると、ステージクリアの処理が行われる。例えば、ステージクリア処理としては、ステージカウンタの計数値に１を加算して、次のステージの処理に進めたり、ゲーム途中のバックアップデータを退避（又はバックアップ）記憶させたり、スクロールレジスタをリセットして初期値に戻す等の処理をした後に、メインルーチンへ戻り、次のステージの動作処理が行われる。
【０１１５】
ところで、上述のステップ２２における上画面の表示処理では、図３に示す表示を行うために、ＣＰＵコア３１が下画面のＬＣＤ１２に表示されているステージの全体マップを縮小処理して、そのビットマップデータをＶ−ＲＡＭ３８に書き込む。また、ＣＰＵコア３１は、プレイヤによって入力された操作軌跡ＴＲの距離に逆比例させるように、インク残量を求め、インク残量の棒グラフを表示するための画像データを生成して、Ｖ−ＲＡＭ３８へ書き込む（または、操作軌跡ＴＲの距離に比例する量だけインク量を減らすようにしてもよい）。さらに、取得したアイテムや獲得した得点などの情報を表示するための画像データを生成して、Ｖ−ＲＡＭ３８へ書き込む。このようにして、Ｖ−ＲＡＭ３８に書き込まれた上画面の画像データは、上述のステップ２７においてＧＰＵ３５によって読み出されて、図３に示すようにＬＣＤ１１に表示される。ここで、表示部ＤＳ１にインク残量を表示するのは、操作軌跡ＴＲの長さが入力可能な一定距離に制限されているので、制限された距離をインクの残量に見立てて、その範囲で操作軌跡ＴＲを入力させるためであるが、制限された長さをその他の方法で表示しても良い。また、操作軌跡の累計長さを表示しても良い。また、このような制限を無くしても良い。
【０１１６】
そして、前述のステップ２５において、ゲーム終了条件に達したことが判断されると、ステップ２９へ進み、ステップ２９においてゲーム終了処理が行われる。ゲーム終了処理は、例えばＷ−ＲＡＭ３７に記憶されているゲームの経過を表すデータ（進行したステージ番号，得点等の各種のバックアップデータ）がＣＰＵコア３１によって読み出され、メモリカード２０のＳ−ＲＡＭ２５に書き込まれる。このようにして、一連のゲーム処理の動作を終了する。
【０１１７】
図１３は下画面の他の表示例を示す。上述の図３，図６及び図７の表示例では、インク残量が上画面に表示される場合を示すが、下画面に表示しても良い。また、図１３（Ａ）に示すように、ブロックＢＬ２の上にプレイヤキャラクタのライフをワンアップ等の可能なアイテムＩＴを載せておき、アイテムを取得させるために操作軌跡ＴＲを描かせても良い。図１３（Ｂ）は、プレイヤキャラクタＰＣが地形に沿って移動しているとき、プレイヤキャラクタＰＣを落とし穴の手前からブロックＢＬ２へ誘導する場合を示す。図１３（Ｃ）は、プレイヤキャラクタＰＣが小高い丘にいる状態において、当該丘からブロックＢＬ１の上を通ってブロックＢＬ２まで長いアーチ状（虹状又は山形）の操作軌跡ＴＲ３を描いたとき、インク量が限界量に達した状態の例を示す。さらに、上述の実施例では、操作軌跡がプレイヤキャラクタの移動方向を誘導する場合を説明したが、その他にも敵キャラクタの移動を妨害することによってプレイヤキャラクタに対する攻撃を回避するために操作軌跡を用いても良い。なお、操作軌跡ＴＳの入力とそれに基づく表示例は多種多様であり、ゲーム内容の状況に応じて適宜選ばれることは言うまでもない。
【０１１８】
なお、上述の実施例では、ゲーム画面として、上画面と下画面の２画面を用いた場合を説明したが、この発明の技術思想は、１画面のみの表示部に本実施例における下画面のゲーム画像だけを表示する場合にも適用できる。また、この発明のゲーム装置又はゲームプログラムをタッチパネル付の携帯液晶ゲーム機に適用した場合を説明したが、この発明の技術思想はこの実施例に限定されず、家庭用ビデオゲーム機，アーケードゲーム機，パソコン，携帯電話用のゲームソフトとして使用することもできる。その場合、タッチパネルによる座標入力に代えて、マウスやトラックボールのような座標入力手段又はポインティングデバイスを使用してもよい。
【０１１９】
以下では、上述の実施例で説明した種々の処理の好ましい一具体例について説明する。
【０１２０】
（操作軌跡の表示処理）
まず、操作軌跡の表示処理の好ましい具体例を説明する。この具体例では、例えば、図１４の矢印のようにプレイヤがタッチパネル１６上でスティック１７をＰ１からＰ１６までスライドさせ、スティック１７をタッチパネル１６から一旦離してからさらにＰ２１からＰ２９までスライドさせたとき、Ｗ−ＲＡＭ３７の操作軌跡データ記憶領域３７２には図１５に示すような操作軌跡情報が記録される。なお、Ｐ１，Ｐ２，Ｐ３，・・・等は、タッチパネル１６の出力信号に基づいて周期的に（例えば１フレームの周期で）検出される入力座標である。操作軌跡情報においては、操作軌跡は入力座標を始点または終点とした複数の線分（直線）によって近似的に表現される。例えば、図１４のＰ１からＰ１６までの操作軌跡は１５本の線分で表現され、Ｐ２１からＰ２９までの操作軌跡は８本の線分で表現される。操作軌跡情報においては、これらの線分毎に、軌跡番号，線分番号，始点座標，終点座標，接線ベクトル，法線ベクトルの情報が含まれている。軌跡番号は、操作軌跡を識別するための番号であって、各線分がどの操作軌跡に属しているかを示しており、連続的に（すなわちスティック１７をタッチパネル１６から離すことなしに）描かれた複数の線分には共通の軌跡番号が付される。なお、連続的に書かれた操作軌跡であっても、ある点において操作軌跡が鋭角に折れ曲がっている場合には（具体的には、連続する２つの線分の接線ベクトル（または法線ベクトル）のなす角度が閾値よりも大きい場合には）、この点を境にして、操作軌跡の前方部分と後方部分に異なる軌跡番号が割り当てられる（すなわち前方部分と後方部分が別個の操作軌跡として扱われる）。線分番号は、各線分を識別するための番号であって、同一の操作軌跡に属する線分に対して固有に割り当てられる番号である。始点座標は、各線分の両端部のうち、先に入力された端部の座標である。終点座標は、各線分の両端部のうち、後に入力された端部の座標である。接線ベクトルは、始点座標から終点座標に向かう方向を示す単位ベクトルである。法線ベクトルは、接線ベクトルを反時計回りに９０度回転させて得られる単位ベクトルである。なお、接線ベクトル、法線ベクトルは、始点座標および終点座標から計算される情報であり、必ずしも操作軌跡データ記憶領域に記憶しておく必要はない。
【０１２１】
操作軌跡情報に追加された各線分の情報（以下、単に線分情報と称す）は、所定のタイミングで古いものから順番に消去される。以下、線分情報の消去タイミングの具体例を例示する。
【０１２２】
線分情報の消去タイミングの第１の例としては、新しい操作軌跡の入力が検出されたときに、その操作軌跡よりも古い操作軌跡に属する線分の情報をまとめて消去することが考えられる。この場合、例えば図１５において、軌跡番号２かつ線分番号１の線分情報が追加されたときに、軌跡番号１の線分情報がまとめて消去されることになる。
【０１２３】
線分情報の消去タイミングの第２の例としては、各線分情報について、操作軌跡情報に登録された時点から一定時間以上経過した線分情報を操作軌跡情報から削除することが考えられる。この場合、例えば図１５において、線分番号が小さいものから線分情報が順次消去されることになる。なお、各線分情報について、操作軌跡情報に登録された時点から一定時間以上経過したかどうかを判定する方法としては、例えば、操作軌跡情報に登録された時点の時刻情報（またはフレーム番号）を線分情報と関連付けて記憶しておき、その時刻情報と現在時刻（または現在のフレーム番号）とを比較する方法が考えられる。
【０１２４】
線分情報の消去タイミングの第３の例としては、プレイヤが操作軌跡を描き終わった時点（つまりタッチパネル１６からスティック１７を離した時点）から一定時間（例えば２秒間）だけ待機した後に、この操作軌跡が始点側から一定の周期で一定の長さずつ短くなるように、各線分情報を変更または消去することが考えられる。より具体的に説明すると、例えば図１４においてプレイヤがＰ１６でスティック１７をタッチパネル１６から離してから２秒が経過するまでは、図１６（Ａ）に示すように線分番号１の線分情報は変更も消去もされないが、それから１フレーム経過した時点で、図１６（Ｂ）に示すように線分番号１の線分情報の始点座標がＰ１からＰａに変更される。この結果、操作軌跡の長さがｄだけ短くなる。さらにそれから１フレーム経過した時点では、図１６（Ｃ）に示すように線分番号１の線分情報の始点座標がＰａからＰｂに変更され、この結果、操作軌跡の長さがさらにｄだけ短くなる。さらにそれから１フレーム経過した時点では、図１６（Ｄ）に示すように線分番号１の線分情報が消去され、かつ線分番号２の線分情報の始点座標がＰ２からＰｃに変更され、この結果、操作軌跡の長さがさらにｄだけ短くなる。この例によれば、ｄの大きさを任意に設定することができるため、操作軌跡が短くなる速さを適宜に設定することができる。
【０１２５】
上述のように、一度描いた操作軌跡が消去されることにより、プレイヤキャラクタＰＣの現在位置や移動速度等を考慮して、プレイヤは適切なタイミングで操作軌跡を描く必要が生じ、ゲーム性が増す。
【０１２６】
ところで、操作軌跡の終点が決定されるタイミングとしては、プレイヤがタッチパネル１６からスティック１７を離したタイミングと、「インク残量」を表すパラメータが０になったタイミングの２つのタイミングがある（さらに、前述の通り、操作軌跡が鋭角に折れ曲がっている場合がある）。以下、このインク残量の制御方法の一具体例を説明する。インク残量には最大値が設定されており、ゲーム開始直後にはインク残量は最大値に設定されている。そして、プレイヤがタッチパネル１６上でスティック１７をスライドさせると、そのスライド量に比例した量だけインク残量が減る。スライド量は、図１５に示す各線分情報の始点座標と終点座標の距離を合計することによって求めることができる（または、各線分情報が生成されるごとに、当該線分の長さだけインク残量を減らす計算をしてもよい）。プレイヤがタッチパネル１６上でスティック１７をスライドさせている途中でインク残量が０になると、その時点で操作軌跡の入力は受け付けられなくなり、たとえプレイヤがスティック１７をスライドさせ続けたとしても、操作軌跡情報には新たな線分情報は追加されない。
【０１２７】
次に、操作軌跡の入力によって減ってしまったインク残量を回復させるための処理の具体例を例示する。
【０１２８】
インク残量を回復させるための処理の第１の具体例としては、常に一定の割合で徐々にインク残量を回復させることが考えられる。例えば、１フレーム期間が経過する毎に、最大値の６０分の１の量だけインク残量を回復させる。このとき、プレイヤキャラクタＰＣが地面に接しているか否かによってインク残量が回復する速さを変化させるようにしても良い。また、プレイヤがタッチパネル１６からスティック１７を離しているか否かによってインク残量が回復する速さを変化させるようにしても良い。また、プレイヤがタッチパネル１６からスティック１７を離している間、一定時間ごとに一定量だけインク残量を回復させてもよい。
【０１２９】
インク残量を回復させるための処理の第２の具体例としては、プレイヤキャラクタＰＣが特定のアイテム（例えばインク瓶）を取得した時点で一定量だけ、もしくは最大値までインク残量を回復させることが考えられる。
【０１３０】
インク残量を回復させるための処理の第３の具体例としては、プレイヤがタッチパネル１６からスティック１７を離した時点でインク残量を最大値まで回復させることが考えられる。
【０１３１】
上述のように、インク残量を減少させたり回復させたりすることにより、プレイヤが効率的に操作軌跡を描く必要が生じるため、ゲーム性が増す。
【０１３２】
操作軌跡情報に含まれる線分情報は、上記のようにして必要に応じて追加・変更・削除されるが、このような操作軌跡情報に基づいて、操作軌跡を表す画像が生成され、ＬＣＤ１２に表示される。具体的には、図１７に示すように、操作軌跡情報に含まれている各線分情報に基づいて、線分毎に略矩形の虹オブジェクトを線分に沿って配置し、こうして配置された各虹オブジェクトに対して虹色のテクスチャをマッピングすることによって、虹色の操作軌跡の画像が生成される。操作軌跡の画像はこのように操作軌跡情報に含まれる各線分情報に基づいて生成されるので、例えば図１６のように操作軌跡が徐々に短くなるように操作軌跡情報が順次更新されれば、ＬＣＤ１２に表示される操作軌跡もそれに応じて徐々に短くなる。なお、操作軌跡情報から線分情報を徐々に消去する替わりに、各線分情報が有効か否かを示すフラグを用意しておき、これを徐々に無効にセットするようにしてもよい。
【０１３３】
（プレイヤキャラクタの移動処理）
次に、プレイヤキャラクタＰＣの移動処理の好ましい具体例を説明する。
【０１３４】
一般的なゲームのプレイヤキャラクタは、十字スイッチ１５ａなどの方向指示スイッチを操作することによってプレイヤはその移動方向を簡単に制御することができるが、本実施例のゲームのプレイヤキャラクタＰＣは、プレイヤはそのような操作ではその移動方向を制御することができない。本実施例のゲームでは、プレイヤキャラクタＰＣは、操作軌跡ＴＲに接触しない状態では、基本的には地面上を前方に向かって（すなわちプレイヤキャラクタが画面右方向を向いているときには画面右方向に、画面左方向を向いているときには画面左方向に）所定の目標速度で移動するようにコンピュータによって自動制御される。より具体的には、図１８に示すように、プレイヤキャラクタＰＣが地面にいるときには、プレイヤキャラクタＰＣの現在の移動方向および移動速度を示す移動速度ベクトルに対して、図１９により求められる通常加速ベクトルを加算することによって得られる合成ベクトル（この合成ベクトルは、次フレームの処理では移動速度ベクトルとして利用される）にしたがって、プレイヤキャラクタＰＣの中心座標（位置座標データ）を移動させる。プレイヤキャラクタＰＣには「向き（画面右方向か画面左方向か）」が設定されており、図１９において通常加速ベクトルがプラスである場合には、加速度ベクトルの向きはプレイヤキャラクラＰＣの向きと同方向となり、通常加速ベクトルがマイナスである場合には、通常加速ベクトルの向きはプレイヤキャラクタＰＣの向きと反対方向となる。図１９によれば、現在の移動速度ベクトルの大きさが目標速度Ｖｔに達していない場合にはプレイヤキャラクタＰＣを加速し、現在の移動速度ベクトルの大きさが目標速度Ｖｔを超えている場合にはプレイヤキャラクタＰＣを減速するような通常加速ベクトルが選ばれるので、プレイヤキャラクタＰＣの移動速度は徐々に目標速度Ｖｔに近付くようになる。
【０１３５】
なお、本実施例では、プレイヤキャラクタＰＣが地面上に存在するときのみ、地面上を前方に向かって自立的に移動するように自動制御されるが、プレイヤキャラクタＰＣが空中にいるときにも、所定のアルゴリズムに従って自立的に移動制御されるようにしてもよい。
【０１３６】
プレイヤキャラクタＰＣは、上記のような通常加速ベクトルの影響や後述するプレイヤの操作入力（加速指示や操作軌跡）による影響を除けば、基本的には、ゲーム世界においてあたかも現実世界の物理法則に従っているかのような振る舞いをする。つまり、プレイヤキャラクタＰＣに作用する慣性力，重力，遠心力，空気抵抗，浮力，水の抵抗などの影響を考慮して（もちろん必ずしもこれらの全ての要素を考慮する必要はない）、その移動方向および移動速度が決定され、その位置が制御される。図２０は、プレイヤキャラクタＰＣが空中を進んでいるときの移動処理の具体例を示している。図２０において、プレイヤキャラクタＰＣの移動方向および移動速度は、重力と空気抵抗の影響を受けて変化する。重力の影響は、移動速度ベクトルに対して鉛直下方向の重力ベクトルを加算することによって反映され、空気抵抗の影響は、移動速度ベクトルに対して、この移動速度ベクトルの大きさに比例した大きさであり、かつこの移動速度ベクトルの向きとは反対方向の空気抵抗ベクトルを加算することによって反映される。つまり、プレイヤキャラクタＰＣの中心座標の移動先は、現在の中心座標に対して、現在の移動速度ベクトルと重力ベクトルと空気抵抗ベクトルとを合成して得られる合成ベクトルを加算することによって決定される。
【０１３７】
上述のようなプレイヤキャラクタＰＣの移動制御は、プレイヤキャラクタＰＣが操作軌跡に接触しないときの移動制御である（以下、通常移動制御と呼ぶ）。本実施例では、プレイヤキャラクタＰＣが操作軌跡に接触したときには、通常移動制御は実行されず、これとは異なる移動制御（以下、接触時移動制御と呼ぶ）がされる（後述）。しかしながら、プレイヤキャラクタＰＣが操作軌跡に接触したときに、接触時移動制御に加えて通常移動制御をするようにしてもよい。そのようにすれば、例えば、操作軌跡と地面が交差している場合、操作軌跡上を移動するプレイヤキャラクタＰＣが地面上に位置する瞬間に地面上を前方に自立的に移動する処理がされ、操作軌跡を離脱させるような処理が可能である。
【０１３８】
ところで、図１３（Ａ）の状況で仮にプレイヤが何もしないでいると、プレイヤキャラクタＰＣは、空気の抵抗力でその速度は幾分低下するものの、慣性力によって前進し続けて結果的に穴に落ちてしまうことになる。そこでプレイヤは、プレイヤキャラクタＰＣが穴に落ちてしまわないように、プレイヤキャラクタＰＣの移動方向や移動速度をプレイヤが変化させて、プレイヤキャラクタＰＣが穴に落ちてしまうのをうまく回避しなくてはならない。プレイヤキャラクタＰＣの移動方向や移動速度をプレイヤが変化させる方法としては、基本的には、プレイヤキャラクタＰＣの表示位置をスティック１７でタッチすることによってプレイヤキャラクタＰＣを大きく加速する方法と、タッチパネル１６に描いた操作軌跡に沿ってプレイヤキャラクタＰＣを加速させる方法の２つの方法が用意されているのみである。以下、これらの各方法について説明する。
【０１３９】
まず、プレイヤキャラクタＰＣの表示位置をスティック１７でタッチすることによってプレイヤキャラクタＰＣを大きく加速するときの処理の具体例を説明する。プレイヤがプレイヤキャラクタＰＣの表示位置をスティック１７でタッチすると、プレイヤの移動速度ベクトルに対して、図２１に示すようなタッチ加速ベクトルが加算され、この加算結果である合成ベクトルに基づいてプレイヤキャラクタＰＣの中心座標が移動される。タッチ加速ベクトルは、移動速度ベクトルと同方向のベクトルであって、その大きさは例えば移動速度ベクトルの０．８倍の大きさに決定される。タッチ加速ベクトルの大きさは、移動速度ベクトルの大きさに依存せず常に一定としても構わない。タッチ加速ベクトルが加算される期間は、プレイヤがプレイヤキャラクタＰＣの表示位置をスティック１７でタッチした直後のフレームだけでもよいし、そのフレームから一定期間、タッチ加速ベクトルが毎フレーム加算されるようにしてもよい。
【０１４０】
次に、タッチパネル１６に描いた操作軌跡に沿ってプレイヤキャラクタＰＣを加速させるときの処理の具体例を説明する。なお、プレイヤキャラクタＰＣは必ずしもプレイヤが描いた操作軌跡に沿って移動する訳ではない。例えば、プレイヤキャラクタＰＣが操作軌跡に接触しないような位置にプレイヤが操作軌跡を描いた場合には、この操作軌跡はプレイヤキャラクタＰＣの動作に影響を与えることはない。つまり、操作軌跡は、プレイヤキャラクタＰＣが接触することによってプレイヤキャラクタＰＣの移動方向や移動速度に影響を与えることができる（ただし、前述したようにプレイヤキャラクタＰＣと操作軌跡との間にあたかも引力が生じているようにプレイヤキャラクタＰＣを移動制御する場合は、この限りでない。）。また例えば、プレイヤキャラクタＰＣが操作軌跡に対してほぼ垂直方向から高速で接触した場合には、プレイヤキャラクタＰＣは操作軌跡で跳ね返ってしまう。また例えば、操作軌跡の曲率が大きすぎる場合には、操作軌跡に沿って移動している途中にプレイヤキャラクタＰＣは大きな遠心力を受けて、操作軌跡の終端に到達する前に操作軌跡から離れてしまうことになる。
【０１４１】
まず、プレイヤキャラクタＰＣが操作軌跡に接触したときの処理の具体例について説明する。プレイヤキャラクタＰＣが操作軌跡に接触したかどうかの判定は、その操作軌跡を構成する各線分にプレイヤキャラクタＰＣが接触したかどうかをそれぞれ判定することによって行われる。具体的には、操作軌跡の始端側の線分から順番に、線分とプレイヤキャラクタＰＣとの接触の有無が判定される。例えば、図１４に示す操作軌跡とプレイヤキャラクタＰＣとの接触判定は、まず、図２２に示すように、Ｐ１とＰ２を結ぶ線分（以下、単に線分Ｐ１−Ｐ２と称す）の始点Ｐ１を中心とした半径ｒ（ｒはプレイヤキャラクタＰＣの半径に等しい）の半円形判定領域にプレイヤキャラクタＰＣの中心座標が含まれているかどうかを判定し、次に、線分Ｐ１−Ｐ２を中心軸とした、幅が２ｒの矩形判定領域にプレイヤキャラクタＰＣの中心座標が含まれているかどうかを判定する。さらに、図２３に示すように、線分Ｐ２−Ｐ３の始点Ｐ２を中心とした半円形判定領域にプレイヤキャラクタＰＣの中心座標が含まれているかどうかを判定し、次に、線分Ｐ２−Ｐ３を中心軸とした矩形判定領域にプレイヤキャラクタＰＣの中心座標が含まれているかどうかを判定する。残りの線分についても同様である。図２２および図２３の例では、プレイヤキャラクタＰＣの中心座標が線分Ｐ２−Ｐ３を中心軸とした矩形判定領域に含まれているため、プレイヤキャラクタＰＣが線分Ｐ２−Ｐ３に接触したと判定される。
【０１４２】
上記のようにしてプレイヤキャラクタＰＣがいずれかの線分に接触したことが検出されると、次に、プレイヤキャラクタＰＣが操作軌跡で跳ね返るか、操作軌跡に吸着する（つまり操作軌跡に沿って移動を開始する）かの判定（以下、吸着判定と称す）が行われる。
【０１４３】
まず、プレイヤキャラクタＰＣの中心座標が、例えば図２３に示すように矩形判定領域に進入した場合の吸着判定の方法を説明する。以下の説明では、図２４に示すように、便宜上、移動速度ベクトルを、プレイヤキャラクタＰＣが接触している線分に対して垂直な成分と、プレイヤキャラクタＰＣが接触している線分に対して平行な成分とに分割し（図１５の操作軌跡データ記憶領域に記憶された法線ベクトル、接線ベクトルに基づいて各成分の値が計算される）、前者を垂直ベクトルと称し、後者を平行ベクトルと称することとする。
【０１４４】
吸着判定は、接触時点における垂直ベクトルの大きさが、しきい値αよりも大きいかどうかを判定することによって行われる。垂直ベクトルの大きさがしきい値αよりも大きい場合にはプレイヤキャラクタＰＣは操作軌跡で跳ね返り、垂直ベクトルの大きさがしきい値αよりも小さい場合にはプレイヤキャラクタＰＣは操作軌跡に吸着する。しきい値αは、垂直ベクトルの角度（衝突角度とも言い換えることができる）に依存して変動する。垂直ベクトルの角度としきい値αとの関係は図２５のようになっている。なお、図２５において規定されている角度以外の角度については補間演算によって決定される。例えば垂直ベクトルの角度が４５°である場合には、しきい値αは（α２＋α１）／２となる。しきい値αが大きいほど、プレイヤキャラクタＰＣは操作軌跡に吸着し易くなるので、図２５のα１，α２，α３の値を適宜に調整することによって、吸着力の大きさを所望の大きさに設定することができる。このように、垂直ベクトルの角度によって閾値を変化させることにより、吸着するか跳ね返るかの条件が一定でなくなるのでゲーム性が増し、また、自然な現象を再現することができる。
【０１４５】
吸着判定によってプレイヤキャラクタＰＣが操作軌跡で跳ね返ると判定された場合には、図２６に示すように、接触時の垂直ベクトルとは反対方向のベクトル（大きさは、例えば垂直ベクトルの大きさの０．８倍）と、接触時の水平ベクトルとを合成して得られるベクトルを新たな移動速度ベクトルとして、その後のプレイヤキャラクタＰＣの移動先の決定に利用する。
【０１４６】
吸着判定によってプレイヤキャラクタＰＣが操作軌跡に吸着する（つまり操作軌跡に沿って移動を開始する）と判定された場合には、図２７に示すように、接触時の水平ベクトルを新たな移動速度ベクトルとして、その後のプレイヤキャラクタＰＣの移動先の決定に利用する。このとき（すなわち、吸着すると判定されたとき）、プレイヤキャラクタＰＣの中心座標（位置座標データが示す座標）と線分（ここでは線分Ｐ２−Ｐ３）との間の距離がプレイヤキャラクタＰＣのサイズに応じた所定距離（ここでは、プレイヤキャラクタＰＣの半径ｒ）より小さいか否かを判定する。その判定により、小さいことが判定された場合には、プレイヤキャラクタＰＣの中心座標と線分（ここでは線分Ｐ２−Ｐ３）との間の距離がプレイヤキャラクタＰＣの半径ｒと等しくなるように（つまりプレイヤキャラクタＰＣが線分にめり込まないように）、図２８のようにプレイヤキャラクタＰＣの中心座標を線分から離れる方向に移動させてもよい（すなわち、線分の法線ベクトル方向またはその反対方向に位置座標データを移動させる。位置座標データが示す位置が線分よりも法線ベクトル方向に存在するときには法線ベクトル方向に移動し、法線ベクトルの反対方向に存在するときには法線ベクトルの反対方向に移動させる）。このような処理によって、プレイヤキャラクタＰＣの内部を通過するような操作軌跡ＴＲが描かれたときであっても、プレイヤキャラクタＰＣが操作軌跡ＴＲにめりこまない状態にすることができる。また、図２２および２３を参照して前述した接触判定において、プレイヤキャラクタＰＣの移動速度が速いときには、判定時点でプレイヤキャラクタＰＣが操作軌跡ＴＲにめりこんでいる場合もある。この場合でも、上述の処理によって、プレイヤキャラクタＰＣが操作軌跡ＴＲにめり込まない状態にすることができる。
【０１４７】
上述のプレイヤキャラクタＰＣの中心座標を線分から離れる方向に移動させる処理は、徐々に（例えば１フレーム毎に一定距離ずつ）、プレイヤキャラクタＰＣの中心座標と線分との間の距離がプレイヤキャラクタＰＣの半径ｒと等しくなるまで、継続しておこなうようにしてもよい。そのようにすれば、プレイヤキャラクタＰＣの移動が唐突になることがなく自然な表現が可能になる。なお、操作軌跡に沿ってプレイヤキャラクタＰＣを移動させるための処理の詳細については後述する。
【０１４８】
なお、本実施例では、プレイヤキャラクタＰＣの中心座標と線分との間の距離がプレイヤキャラクタＰＣの半径と等しくなるように移動させたが、プレイヤキャラクタＰＣの中心座標と線分との間の距離が０になるように移動させても良い（すなわち、プレイヤキャラクタＰＣの中心座標が線分上に位置するように移動させても良い）。この場合、プレイヤキャラクタＰＣは操作軌跡に接触したときに、操作軌跡上に引っ張られ、操作軌跡上を移動することになる。
【０１４９】
次に、プレイヤキャラクタＰＣの中心座標が、例えば図２９に示すように、半円形判定領域に進入した場合の吸着判定の方法を説明する。この場合、プレイヤキャラクタＰＣの中心座標と始点Ｐ１を結ぶ直線に直交し、かつ始点Ｐ１を通るような仮想線分を利用することによって、プレイヤキャラクタＰＣの中心座標が矩形判定領域に進入した場合と同様の方法で吸着判定を行うことができる。つまり、接触時点における移動速度ベクトルを、仮想線分に対して垂直な成分である垂直ベクトルと、仮想線分に対して平行な成分である水平ベクトルとに分割し、接触時点における垂直ベクトルの大きさが、垂直ベクトルの角度によって決定されるしきい値αよりも大きいかどうかを判定することによって、プレイヤキャラクタＰＣが操作軌跡で跳ね返るか、操作軌跡に吸着するかを判定することができる。なお、プレイヤキャラクタＰＣの中心座標が、始点Ｐ２，Ｐ３のような操作軌跡の途中の始点に対応する半円形判定領域に進入した場合にも、同様の吸着判定が行われる。
【０１５０】
図２９において、吸着判定によってプレイヤキャラクタＰＣが操作軌跡で跳ね返ると判定された場合には、図２６と同様に、接触時の垂直ベクトルとは反対方向のベクトル（大きさは、例えば垂直ベクトルの大きさの０．８倍）と、接触時の水平ベクトルとを合成して得られるベクトルを新たな移動速度ベクトルとして、その後のプレイヤキャラクタＰＣの移動先の決定に利用する。また、吸着判定によってプレイヤキャラクタＰＣが操作軌跡に吸着する（つまり操作軌跡に沿って移動を開始する）と判定された場合には、図２７と同様に、接触時の水平ベクトルを新たな移動速度ベクトルとして、その後のプレイヤキャラクタＰＣの移動先の決定に利用する。
【０１５１】
吸着すると判定された場合には、プレイヤキャラクタＰＣの中心座標と始点Ｐ１を結ぶ直線が、線分Ｐ１−Ｐ２に直交する状態になったと判定されるまで（操作軌跡の途中の始点の場合、例えば、Ｐ２についての半円形判定領域に侵入した場合には、線分Ｐ２−Ｐ３と線分Ｐ１−Ｐ２の両方について、直交する状態になったかどうかを判定する必要がある）、プレイヤキャラクタＰＣの中心座標を、始点Ｐ１を中心とする円弧上を移動させる（例えば、１フレームごとに上述の水平ベクトルの絶対値だけ移動させる）。なお、プレイヤキャラクタＰＣの中心座標と始点Ｐ１を結ぶ直線が、線分Ｐ１−Ｐ２に直交する状態になった後において、操作軌跡に沿ってプレイヤキャラクタＰＣを移動させるための処理の詳細については後述する。なお、図２９の例では、平行ベクトルの方向は始点Ｐ１を中心として時計回りの方向となるが、プレイヤキャラクタＰＣと操作軌跡との接触の仕方によっては、図３０に示すように平行ベクトルの方向が始点Ｐ１を中心として反時計回りの方向になることもある。すなわち、上述の円弧上を移動させる処理において、円弧上をどちらの方向に移動させるかは、上述の平行ベクトルの向きによって定める。この結果、図２９の場合はプレイヤキャラクタＰＣが操作軌跡の上面に吸着した状態で操作軌跡に沿って移動するが、図３０の場合にはプレイヤキャラクタＰＣが操作軌跡の下面に吸着した状態で操作軌跡に沿って移動することになる。
【０１５２】
なお、図２９や図３０のように仮想線分を用いて吸着判定を行う代わりに、接触時点における移動速度ベクトルを、線分Ｐ１−Ｐ２に対して垂直な成分である垂直ベクトルと、線分Ｐ１−Ｐ２に対して平行な成分である水平ベクトルとに分割し、当該垂直ベクトルの大きさが、垂直ベクトルの角度によって決定されるしきい値αよりも大きいかどうかを判定することによって、プレイヤキャラクタＰＣが操作軌跡で跳ね返るか、操作軌跡に吸着するかを判定することができる。この判定は、接触時点でおこなってもよいが、図３１や図３２のように、接触時のプレイヤキャラクタＰＣの中心座標を始点Ｐ１を中心として時計回りまたは反時計回りに回転させて（時計回りか反時計回りかの判定は上述の通り）、半円形判定領域の外縁まで移動させた後（プレイヤキャラクタＰＣの中心座標と始点Ｐ１を結ぶ直線が、線分Ｐ１−Ｐ２に直交する状態になるまで移動させた後）、図２４と同様の方法で吸着判定を行うようにしても良い。この場合、接触時点における垂直ベクトルを記憶しておいて、時計回りまたは反時計回りに回転させ、半円形判定領域の外縁まで移動したときに、記憶しておいた垂直ベクトルを用いて図２４と同様の方法で吸着判定をおこなうようにしてもよい。このとき、記憶しておいた垂直ベクトルの方向が線分Ｐ１−Ｐ２から離れる方向となる場合があるが、この場合には、吸着することなく、また、跳ね返ることなく、接触時点における移動速度ベクトル（または垂直ベクトル）の方向にプレイヤキャラクタＰＣが移動するようにしてもよい。また、この場合、半円形判定領域の外縁まで移動する前であっても、現在のプレイヤキャラクタＰＣの中心座標からみて記憶しておいた垂直ベクトルの方向が線分Ｐ１−Ｐ２から離れる方向であると判定された時点で、接触時点における移動速度ベクトル（または垂直ベクトル）の方向にプレイヤキャラクタＰＣが移動するようにしてもよい。
【０１５３】
上述したような判定により、吸着するか跳ね返るか（または吸着も跳ね返ることもないか）を決定することによって、プレイヤキャラクタＰＣが不自然に操作軌跡に吸着することがなくなり、また、熟練したプレイヤは、操作軌跡に吸着させてプレイヤキャラクタＰＣを軌跡に沿って移動させるか、それとも、操作軌跡に跳ね返りをさせてプレイヤキャラクタＰＣの方向転換をさせるかを、操作軌跡を適切に描くことによって使い分けることができる。また、適切に操作軌跡を描かないと軌跡に沿った移動をさせることができないため、ゲーム性が増す。
【０１５４】
なお、上記の吸着判定の結果、プレイヤキャラクタＰＣが操作軌跡に吸着すると判定された場合には、Ｗ−ＲＡＭ３７に以下の情報が記憶され、プレイヤキャラクタＰＣの移動に伴って適宜に更新される。なお、接触時点における移動速度ベクトルのうち接触した線分の接線方向の成分ベクトルが新たな移動速度ベクトルとされる。
・プレイヤキャラクタＰＣが接している線分の軌跡番号および線分番号
・線分の始点から終点方向を見たときにプレイヤキャラクタＰＣが線分の左右のどちら側に接しているかを示す接触方向パラメータ
・プレイヤキャラクタＰＣの操作軌跡への吸着度合を示す耐久パラメータ
【０１５５】
接触方向パラメータは、図３３（Ａ）のように線分の始点（ここではＰ２）から終点（ここではＰ３）方向を見たときにプレイヤキャラクタＰＣが線分の左側に接しているときは正の値となり、図３３（Ｂ）のように線分の右側に接しているときは負の値となる。また、その絶対値は、プレイヤキャラクタＰＣの中心座標と線分との間の距離をｄとし、プレイヤキャラクタＰＣの半径をｒとしたとき、ｄ／ｒとなる。なお、線分の始点から終点方向を見たときにプレイヤキャラクタＰＣが線分の左右のどちら側に接しているかを判定する方法としては、例えば、線分の始点からプレイヤキャラクタＰＣの中心座標に延ばしたベクトルと、線分の法線ベクトルとの内積を計算し、内積が正である場合は線分の左側に、内積が負である場合は線分の右側に接していると判定することができる。なお、この接触方向パラメータは、図２８を参照して説明したようなめり込みの補正にも利用することができる。例えば、接触方向パラメータの値が０．９である場合には、めり込みを解消するためにはプレイヤキャラクタＰＣの中心座標を接線の法線ベクトルの方向に移動させればよいことが分かる。また、接触方向パラメータの値が−０．９の場合には、法線ベクトルの反対方向に移動させれば良い。
【０１５６】
耐久パラメータは、プレイヤキャラクタＰＣが操作軌跡に吸着したときに初期値（例えば２０）に設定され、その後、プレイヤキャラクタＰＣが操作軌跡に沿って移動するときに、遠心力や重力の影響を受けて増加したり減少したりする。ただし耐久パラメータには上限値（例えば２５）が設定されており、この上限値を超える値はとり得ない。また、耐久パラメータが０以下になると、プレイヤキャラクタＰＣは操作軌跡から離れてしまう。耐久パラメータの増減の仕方の詳細については後述する。
【０１５７】
プレイヤキャラクタＰＣが操作軌跡に接触して吸着すると、プレイヤキャラクタＰＣは操作軌跡に沿って移動を始める。操作軌跡に沿って移動中のプレイヤキャラクタＰＣの移動処理は、図３３（Ａ）に示すように、移動速度ベクトル，軌跡加速ベクトル，重力ベクトル，空気抵抗ベクトルに基づいて行われる。移動速度ベクトル，重力ベクトル，空気抵抗ベクトルについては図２０と同様であるので説明を省略する。軌跡加速ベクトルは、プレイヤキャラクタＰＣが接している線分の接線ベクトルと同一方向のベクトルであって、その大きさは、図３５に示すように、移動速度ベクトルの大きさに基づいて変化する。つまり、軌跡加速ベクトルも、図１８および図１９で説明した通常加速ベクトルと同様に、プレイヤキャラクタＰＣの移動速度を目標速度Ｖｔ’に近付けるように作用する。
【０１５８】
プレイヤキャラクタＰＣの移動先は、上述の移動速度ベクトル，軌跡加速ベクトル，重力ベクトル，空気抵抗ベクトルを合成して得られる合成ベクトル（図３４（Ｂ）参照）を、図３４（Ｃ）のように線分に平行な成分である平行成分と、線分に垂直な成分である垂直成分とに分割し、この平行成分（この平行成分は、次フレームの処理では移動速度ベクトルとして利用される）にしたがって、プレイヤキャラクタＰＣの中心座標を移動させる。
【０１５９】
なお、図３４において、重力ベクトル以外のベクトルについては線分の接線ベクトルに対して平行なベクトルであるので、重力ベクトルの接線ベクトルに対して平行な成分の大きさを最初に求めれば、スカラー量の加減算のみで図３４（Ｃ）の合成ベクトルの平行成分の大きさを求めることもできる。
【０１６０】
プレイヤキャラクタＰＣは上記のようにして操作軌跡に沿って移動するが、その途中で、ある線分から別の線分への移動が発生する。この線分間の移動の発生の有無は、例えば、プレイヤキャラクタＰＣの中心座標の移動先を決定するときに、その移動先が次の線分の矩形判定領域に進入したかどうか、またはその移動先が現在接している線分の矩形判定領域の終端（線分の終点を含む辺）を超えたかどうかを毎回確認することによって判定される。例えば図３６（Ａ）の例では、合成ベクトルの平行線分にしたがって決定された次の移動先（仮の移動先）が次の線分Ｐ６−Ｐ７の矩形判定領域に進入していると判定されるため、図３６（Ｂ）のようにプレイヤキャラクタＰＣの中心座標の移動先が変更される。好ましくは、移動量が図３６（Ａ）の合成ベクトルの平行成分の大きさと同一となるように移動先が決定される。また、例えば図３７（Ａ）の例では、合成ベクトルの平行線分にしたがって決定された次の移動先（仮の移動先）が線分Ｐ５−Ｐ６の矩形判定領域の終端を超えたと判定されるため、図３７（Ｂ）のように、Ｐ６を中心とした半径ｒの円弧に沿って移動するように、プレイヤキャラクタＰＣの中心座標の移動先が変更される。好ましくは、移動量が図３７（Ａ）の合成ベクトルの平行成分の大きさと同一となるように移動先が決定される。
【０１６１】
次に、耐久パラメータの増減の仕方の詳細について説明する。耐久パラメータは、重力による影響と遠心力による影響を受けて増減する。
【０１６２】
まず、重力による耐久パラメータの変動について説明する。仮想世界におけるプレイヤキャラクタＰＣの中心座標がプレイヤキャラクタＰＣと線分との接触点（プレイヤキャラクタＰＣの中心座標を通りかつ線分に直交する直線と、この線分との交点）よりも下方にあれば（すなわち、画面左上に原点があってＹ軸が垂直方向で下方向を正として設定されているときに、Ｙ座標値が大きければ）、１フレームにつき一定量（例えば１）ずつ耐久パラメータが減る。逆に、プレイヤキャラクタＰＣの中心座標が接触点よりも上方にあれば、１フレームにつき一定量（例えば１）ずつ耐久パラメータが増える。
【０１６３】
他の例では、上述の図３４（Ｃ）を参照して説明した垂直成分の大きさ（絶対値）だけ耐久パラメータを増減させてもよい。また、この値は、重力ベクトルの接線ベクトルに対して垂直な成分の大きさとして求めても良い。
【０１６４】
次に、遠心力による耐久パラメータの変動について説明する。遠心力は、プレイヤキャラクタＰＣがある線分（便宜上、線分Ａと称す）から次の線分（便宜上、線分Ｂと称す）に移動する際に発生し得る。このときに発生する遠心力によって耐久パラメータが増加するか低減するかは、図３６のようにコーナー（すなわち線分間）を内回りに回ったか、図３７のようにコーナーを外回りに回ったかによって異なる。すなわち、内回りに回ったときには耐久パラメータを増加し、外回りに回ったときには耐久パラメータを減少させる。コーナーを内回りに回ったか外回りに回ったかは、例えば、線分Ａの法線ベクトルと線分Ｂの接線ベクトルの内積を計算し、その内積の正負と接触方向パラメータの正負の組み合わせに応じて、図３８のように判定することができる。
【０１６５】
遠心力による耐久パラメータの変化量は、コーナーの角度がきついほど、またプレイヤキャラクタＰＣの移動速度が速いほど大きくなる。具体的には、線分Ａの接線ベクトルと線分Ｂの接線ベクトルの外積の大きさに、コーナー通過時のプレイヤキャラクタＰＣの移動速度ベクトルの大きさを乗算し、この結果得られた値に対して予め決められた適当な係数を乗算することによって、耐久パラメータの変化量が算出される。
【０１６６】
以上のような処理により、例えばきついコーナーを外回りに通過した場合には耐久パラメータが大きく減り、きついコーナーを内回りに通過した場合には耐久パラメータが大きく増え（ただし上限値は超えない）、緩いコーナーを外回りに通過した場合には耐久パラメータが少し減り、緩いコーナーを内回りに通過した場合には耐久パラメータが少し増えることになる。
【０１６７】
耐久パラメータが０になると吸着状態が解除され、その後のプレイヤキャラクタＰＣの移動先は、図１８や図２０を参照して説明したような方法で決定されることになる。操作軌跡の途中で吸着状態が解除される場合のプレイヤキャラクタＰＣの動作例を図３９に示す。
【０１６８】
一方、プレイヤキャラクタＰＣが操作軌跡の終点（軌跡番号が同一の線分の中での最終の線分における終点であり、例えば図１４のＰ１６またはＰ２９）に到達したときも、吸着状態が解除され、その後のプレイヤキャラクタＰＣの移動先は、図１８や図２０を参照して説明したような方法で決定されることになる。
上述のように、吸着状態が解除されると判定されたときには、その時点（または直前）の移動速度ベクトルを使用して、吸着状態解除後のプレイヤキャラクタＰＣの中心位置を決定する。なお、操作軌跡の終点から離れるときに、その時点（または直前）のプレイヤキャラクタＰＣの移動速度ベクトルに所定の係数（例えば１．５）を乗算するようにすれば、プレイヤキャラクタＰＣが操作軌跡の終点から勢いよく飛び出すので、プレイヤキャラクタＰＣの動きに躍動感を与えることができる。操作軌跡の終点で吸着状態が解除される場合のプレイヤキャラクタＰＣの動作例を図３９に示す。
【０１６９】
なお、プレイヤキャラクタＰＣが仮想空間において水中を移動するときには、プレイヤキャラクタＰＣの移動先を決定するときに、例えば図２０に示す重力ベクトルの代わりに鉛直上向きの浮力ベクトルを、空気抵抗ベクトルの代わりに空気抵抗ベクトルと向きが同じで大きさがより大きい水抵抗ベクトルを利用することによって、プレイヤキャラクタＰＣの自然な動きを表現することができる。この場合、前述の耐久パラメータは浮力の影響を受けて変動し、仮想世界におけるプレイヤキャラクタＰＣの中心座標がプレイヤキャラクタＰＣと線分との接触点（プレイヤキャラクタＰＣの中心座標を通りかつ線分に直交する直線と、この線分との交点）よりも上方にあれば（すなわちＹ座標値が小さければ）、１フレームにつき一定量（例えば１）ずつ耐久パラメータが減る。逆に、プレイヤキャラクタＰＣの中心座標が接触点よりも下方にあれば、１フレームにつき一定量（例えば１）ずつ耐久パラメータが増える。
【０１７０】
なお、本実施例では、プレイヤキャラクタＰＣが操作軌跡ＴＲに接触したときに、プレイヤキャラクタＰＣは操作軌跡ＴＲに吸着されて、操作軌跡ＴＲに沿って移動するため、操作軌跡ＴＲに応じた移動制御が継続的に実行されるが、プレイヤキャラクタＰＣが操作軌跡ＴＲに吸着せず、操作軌跡ＴＲに接触したときにだけ操作軌跡ＴＲに応じた移動制御を実行するようにしてもよい。例えば、プレイヤキャラクタＰＣが操作軌跡ＴＲに接触したと判定されたときに、図１５の操作軌跡データ記憶領域３７２を参照して、接触したと判定された線分についての、始点座標から終点座標に向かうベクトルを、加速度ベクトルとして、当該加速度ベクトルと移動速度ベクトル，重力ベクトル，空気抵抗ベクトルを合成して得られる合成ベクトルにしたがって、プレイヤキャラクタＰＣの移動先座標を決定してもよい。
【０１７１】
なお、上記の実施形態では、図６（Ｄ）に示すように、操作軌跡ＴＲ１が時間の経過に応じて始点側から終点側に向かって徐々に消去されるが、このように、操作軌跡の各線分（または各線分を繋ぐ各点）の有効時間に制限が設けられていることにより、操作軌跡を適切なタイミングで描くことが要求されるため、ゲーム性が増す。また、このように操作軌跡に有効時間を設けることは、例えばプレイヤがタッチパネル上ですばやく円（他の図形や記号でもよい）を描いたときにだけ特定の処理を実行するような場合にも適用することができる。この場合、有効時間が過ぎた操作軌跡の点が画面から消えていくため、プレイヤは、操作軌跡の有効時間を視覚的に判断することができ、どの程度の速さで入力操作を行えばよいかを容易に把握することができる。
【図面の簡単な説明】
【０１７２】
【図１】この発明のゲーム装置の一例の携帯ゲーム機の外観図
【図２】この発明の一実施例の携帯ゲーム装置のブロック図
【図３】この発明のゲーム装置又はゲームプログラムの一実施例である上画面（ＬＣＤ１１）と下画面（ＬＣＤ１２）の表示例を説明するための図
【図４】ＲＯＭ２１の記憶領域を図解的に示すメモリマップ
【図５】ワーキングＲＡＭ３７の記憶領域を図解的に示すメモリマップ
【図６】この発明の一実施例であるゲーム画面（下画面）の表示変化の一例を説明するための図
【図７】ゲーム画面の表示変化においてプレイヤキャラクタと操作軌跡の関係を説明するための図
【図８】この発明の一実施例のゲーム処理の動作を説明するためのメインルーチンのフローチャートの前半部分
【図９】この発明の一実施例のゲーム処理の動作を説明するためのメインルーチンのフローチャートの後半部分
【図１０】タッチパネルの操作状態の検出処理とそれに基づく画像処理の詳細なフローチャート
【図１１】下画面の表示制御のサブルーチンのフローチャートの前半部分
【図１２】下画面の表示制御のサブルーチンのフローチャートの後半部分
【図１３】ゲーム処理の他の例の表示変化を説明するための図
【図１４】入力座標の遷移例を示す図
【図１５】操作軌跡情報の一例
【図１６】操作軌跡が徐々に消去される様子を示す図
【図１７】操作軌跡画像の生成方法の一例を示す図
【図１８】プレイヤキャラクタの移動制御方法の一例を示す図
【図１９】通常加速ベクトルの決定方法を示す図
【図２０】プレイヤキャラクタの移動制御方法の一例を示す図
【図２１】プレイヤキャラクタの移動制御方法の一例を示す図
【図２２】接触判定方法の一例を示す図
【図２３】接触判定方法の一例を示す図
【図２４】吸着判定方法の一例を示す図
【図２５】吸着判定で利用されるしきい値αの決定方法を示す図
【図２６】プレイヤキャラクタの移動制御方法の一例を示す図
【図２７】プレイヤキャラクタの移動制御方法の一例を示す図
【図２８】プレイヤキャラクタの移動制御方法の一例を示す図
【図２９】プレイヤキャラクタの移動制御方法の一例を示す図
【図３０】プレイヤキャラクタの移動制御方法の一例を示す図
【図３１】プレイヤキャラクタの移動制御方法の一例を示す図
【図３２】プレイヤキャラクタの移動制御方法の一例を示す図
【図３３】接触方向パラメータについて説明するための図
【図３４】プレイヤキャラクタの移動制御方法の一例を示す図
【図３５】軌跡加速ベクトルの決定方法を示す図
【図３６】コーナーを通過するときの移動処理の詳細を示す図
【図３７】コーナーを通過するときの移動処理の詳細を示す他の図
【図３８】内回りか外回りかの判定方法を示す図
【図３９】プレイヤキャラクタの動作例
【図４０】プレイヤキャラクタの他の動作例
【符号の説明】
【０１７３】
１０  携帯ゲーム装置
１１  第１の液晶表示器（ＬＣＤ）
１２  第２の液晶表示器（ＬＣＤ）
１３  ハウジング
１５  操作スイッチ部
１６  タッチパネル
２０  メモリカード
２１  ＲＯＭ
２５  Ｓ−ＲＡＭ
３０  電子回路基板
３１  ＣＰＵコア
３４  入出力インターフェース回路
３５，３６  ＧＰＵ
３７  ワーキングＲＡＭ（Ｗ−ＲＡＭ）
３８，３９  ビデオＲＡＭ（Ｖ−ＲＡＭ）
【図１】
2006150062.tif 000003
【図２】
2006150062.tif 000004
【図３】
2006150062.tif 000005
【図４】
2006150062.tif 000006
【図５】
2006150062.tif 000007
【図６】
2006150062.tif 000008
【図７】
2006150062.tif 000009
【図８】
2006150062.tif 000010
【図９】
2006150062.tif 000011
【図１０】
2006150062.tif 000012
【図１１】
2006150062.tif 000013
【図１２】
2006150062.tif 000014
【図１３】
2006150062.tif 000015
【図１４】
2006150062.tif 000016
【図１５】
2006150062.tif 000017
【図１６】
2006150062.tif 000018
【図１７】
2006150062.tif 000019
【図１８】
2006150062.tif 000020
【図１９】
2006150062.tif 000021
【図２０】
2006150062.tif 000022
【図２１】
2006150062.tif 000023
【図２２】
2006150062.tif 000024
【図２３】
2006150062.tif 000025
【図２４】
2006150062.tif 000026
【図２５】
2006150062.tif 000027
【図２６】
2006150062.tif 000028
【図２７】
2006150062.tif 000029
【図２８】
2006150062.tif 000030
【図２９】
2006150062.tif 000031
【図３０】
2006150062.tif 000032
【図３１】
2006150062.tif 000033
【図３２】
2006150062.tif 000034
【図３３】
2006150062.tif 000035
【図３４】
2006150062.tif 000036
【図３５】
2006150062.tif 000037
【図３６】
2006150062.tif 000038
【図３７】
2006150062.tif 000039
【図３８】
2006150062.tif 000040
【図３９】
2006150062.tif 000041
【図４０】
2006150062.tif 000042