(57)【要約】【課題】  タッチパネルで覆われた第２表示画面に表示された図柄に対して、プレイヤが当該タッチパネルを用いて図柄に対する入力を行い、当該入力に応じて第１表示画面に表示されるゲーム画像を変化させるゲームプログラムおよびゲーム装置を提供する。【解決手段】  タッチパネルに覆われた第２表示画面１２ａに表示されたキャラクタ図柄Ｐ２に対して、タッチ操作によって入力の変化を与える。このキャラクタ図柄Ｐ２は、第１表示画面１１ａのプレイヤキャラクタＰ１と連携しており、プレイヤキャラクタＰ１よりも大きく表示される。この入力の変化に応じて、プレイヤキャラクタＰ１が移動する。これによって、２つの表示画面を用いたゲーム装置において、プレイヤの所望の箇所を正確に指示させることを可能としながら、新しい操作感覚のゲームを提供できる。【選択図】  図４
2005192986.tif 000002
【特許請求の範囲】
【請求項１】
第１表示画面とタッチパネルに覆われた第２表示画面とを備えるゲーム装置のコンピュータに実行されるゲームプログラムであって、
前記コンピュータを、
プレイヤの操作対象となるプレイヤキャラクタを含む第１ゲーム画像を前記第１表示画面に表示する第１ゲーム画像表示制御手段、
前記プレイヤキャラクタに対応するキャラクタ図柄を前記第１ゲーム画像における前記プレイヤキャラクタより大きく表示するための第２ゲーム画像を前記第２表示画面に表示する第２ゲーム画像表示制御手段、
前記タッチパネルに対してタッチ操作された入力位置とその入力変化を検出する入力検出手段、
前記入力検出手段によって検出された前記入力位置の少なくとも一部が前記第２表示画面に表示されたキャラクタ図柄上であるとき、当該キャラクタ図柄上における入力位置および前記入力検出手段が検出した入力変化に応じて、前記プレイヤキャラクタの表示態様を変化させるための変化条件データを算出する変化条件算出手段、および
前記変化条件データに基づいて、前記プレイヤキャラクタの表示態様を変化させるプレイヤキャラクタ制御手段、として機能させることを特徴とする、ゲームプログラム。
【請求項２】
前記変化条件算出手段は、前記第２表示画面に表示される前記キャラクタ図柄に対応する前記タッチパネルの検出領域を複数の定義領域に分割し、前記キャラクタ図柄上における入力位置を含む定義領域に応じて各々種類が異なる動作パラメータを前記変化条件データとして算出することを特徴とする、請求項１に記載のゲームプログラム。
【請求項３】
前記プレイヤキャラクタは、ゲーム空間内を移動する移動体であり、
前記変化条件算出手段は、前記変化条件データとして、
前記入力変化の方向に基づいて、前記移動体の前記ゲーム空間における初期移動方向を決定するための初期移動条件データを算出し、
前記キャラクタ図柄上における入力位置に基づいて、前記初期移動方向に移動開始された後に前記移動体のゲーム空間における移動方向を変化させるための移動変移条件データを算出することを特徴とする、請求項１に記載のゲームプログラム。
【請求項４】
前記入力変化検出手段は、一定時間間隔で前記タッチパネルに対する入力の有無を判別し、当該入力が連続して検出されている間の当該タッチパネル上の位置座標を検出することによって入力位置とその入力変化とを検出し、
前記変化条件算出手段は、前記入力変化検出手段が連続して検出したタッチパネルに対する入力開始時点および入力終了時点の位置座標をそれぞれ抽出し、当該入力開始時点および入力終了時点の位置座標に応じて前記変化条件データを算出することを特徴とする、請求項１に記載のゲームプログラム。
【請求項５】
前記プレイヤキャラクタは、ゲーム空間内を移動する移動体であり、
前記変化条件算出手段は、前記変化条件データとして、
前記入力開始時点の位置座標から入力終了時点の位置座標への方向に基づいて、前記移動体の前記ゲーム空間における初期移動方向および速度を決定するための初期移動条件データを算出し、
前記第２表示画面に表示される前記キャラクタ図柄に対応する前記タッチパネルの検出領域を複数の定義領域に分割し、前記キャラクタ図柄上における前記入力開始時点の位置座標および入力終了時点の位置座標の少なくとも一方を含む定義領域に応じて、前記初期移動方向に移動開始された後に前記移動体のゲーム空間における移動方向を変化させるための移動変移条件データを算出することを特徴とする、請求項４に記載のゲームプログラム。
【請求項６】
前記変化条件算出手段は、前記入力開始時点の位置座標から入力終了時点の位置座標への方向に応じて、前記第２表示画面に表示される前記キャラクタ図柄に対応する前記タッチパネルの検出領域を複数の定義領域に分割することを特徴とする、請求項５に記載のゲームプログラム。
【請求項７】
前記変化条件算出手段は、前記第２表示画面に表示される前記キャラクタ図柄に対応する前記タッチパネルの検出領域に含まれる所定の基準位置と、前記入力開始時点の位置座標および入力終了時点の位置座標を含む直線との距離に応じて、前記移動体の移動方向を変化させる変化量が大きくなるように前記移動変移条件データを算出することを特徴とする、請求項５に記載のゲームプログラム。
【請求項８】
前記入力変化検出手段は、一定時間間隔で前記タッチパネルに対する入力の有無を判別し、当該入力が連続して検出されている間の当該タッチパネル上の位置座標を検出することによって入力位置とその入力変化を検出し、
前記ゲームプログラムは、前記入力変化手段が入力を連続して検出している間の入力検出時間を計時する計時手段として、さらに前記コンピュータを機能させ、
前記変化条件算出手段は、前記入力変化検出手段が連続して検出したタッチパネルに対する入力開始時点および入力終了時点の位置座標をそれぞれ抽出し、当該入力開始時点の位置座標、入力終了時点の位置座標、および前記入力検出時間のうち少なくとも２つに応じて前記変化条件データを算出することを特徴とする、請求項１に記載のゲームプログラム。
【請求項９】
前記入力変化検出手段は、一定時間間隔で前記タッチパネルに対する入力の有無を判別し、当該入力が連続して検出されている間の当該タッチパネル上の位置座標を検出することによって入力位置とその入力変化を検出し、
前記ゲームプログラムは、前記入力変化検出手段が入力を連続して検出している間、前記タッチパネルに対して入力中の位置座標と入力開始時点の位置座標との関係を示す単一の図形を生成する図形生成手段として、さらに前記コンピュータを機能させ、
前記第２ゲーム画像表示制御手段は、前記図形生成手段が生成した図形をさらに含む前記第２ゲーム画像を前記第２表示画面に表示することを特徴とする、請求項１に記載のゲームプログラム。
【請求項１０】
前記図形生成手段が生成する図形は、前記入力中の位置座標を頂点とし前記入力開始時点の位置座標を所定長さの底辺の中点とする二等辺三角形であることを特徴とする、請求項９に記載のゲームプログラム。
【請求項１１】
請求項１乃至１０のいずれかに記載のゲームプログラムを記憶した記憶手段と、
第１表示画面と、
タッチパネルに覆われた第２表示画面と、
前記記憶手段が記憶したゲームプログラムを実行するゲーム実行手段とを備える、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームプログラムおよびゲーム装置に関し、より特定的には、第１表示画面とタッチパネルに覆われた第２表示画面とを備えるゲーム装置のコンピュータで実行されることによって、第２表示画面に対する入力の変化に応じてゲーム画像を変化させるゲームプログラムおよびそのゲーム装置に関する。
【背景技術】
【０００２】
従来のゲーム装置では、ゲーム空間内の様子をゲーム画像としてテレビジョンなどに表示している。このゲーム装置には、ゲーム空間に登場するキャラクタをプレイヤに操作させるために、複数個の操作キーが設けられたコントローラが接続されている。ゲーム装置は、コントローラからの出力信号を検出することによって、プレイヤによって操作された操作キーが何れの操作キーであるかを把握し、当該操作キーに割り当てられた動作をキャラクタに反映させることによってゲーム画像を変化させている。
【０００３】
しかしながら、コントローラに設けられた操作キーの形状や配置は物理的に決まってしまっているため、ゲームに応じた最適な操作キーを用意することが不可能であった。このため、タッチパネルやタブレット付きの表示装置をコントローラの代わりに利用するゲーム装置が登場している（例えば、特許文献１〜４参照）。
【０００４】
特許文献１で開示されたゲーム装置は、当該特許文献１の図３に示されているように、ゲームプログラムごとに必要な操作キーの画像をタッチパネルに表示させている。そして、いずれの操作キーの画像がタッチして選択されたかによって、当該操作キーの画像に対応する機能をゲームに反映させている。
【０００５】
特許文献２で開示されたゲーム装置は、当該特許文献２の図３〜図８に示されているように、テレビジョンに表示されるゲーム画像に関係する図柄や文字がコントローラ側のタッチパネルの表示装置に表示されている。そして、当該図柄に指でタッチして選択することによって、当該図柄や文字などに対応する機能をゲームに反映させている。
【０００６】
特許文献３で開示されたゲーム装置は、当該特許文献３の図６に示されているように、タッチパネルが装着されたディスプレイにゲーム画面が表示されている。そして、プレイヤがタッチパネルをタッチした指の動きのベクトル量に応じた動きで、タッチして選択された対象をゲーム画面上で移動させる。
【０００７】
特許文献４で開示されたゲーム装置は、当該特許文献４の図２に示されているように、タブレットと平面ディスプレイとが重ねて配置されて一体的に構成されており、当該平面ディスプレイにゲーム画像としてゴルフ場が表現されている。そして、プレイヤがタブレットにペンを用いて入力した軌跡に対応する座標列の方向を打撃方向とし、当該座標列における隣接座標間の間隔を打撃力として、仮想球の飛行が模擬される。
【特許文献１】特許第２５３５３０１号明細書
【特許文献２】特開平６−２８５２５９号公報
【特許文献３】特開平７−１８２０９２号公報
【特許文献４】特開平５−３１２５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した特許文献１および２で開示されたゲーム装置では、コントローラ側のタッチパネル下の表示装置に表示された図柄などが選択されたか否かのみが判断され、当該図柄に対応する機能がゲーム画像に反映されているだけであった。つまり、従来の物理的に設けられた操作キーが単にタッチパネル下の表示装置に表示されているだけであり、ゲームの種類にあわせて操作キーを自由な位置や形状で単に表示させられるという程度の効果しか期待できないという問題があった。
【０００９】
また、上述した特許文献３および４で開示されたゲーム装置では、プレイヤがタッチパネルやタブレットと重ねて表示された画像を所望の位置にゲーム画像上で移動させることを目的とするが、移動させる対象が小さいときプレイヤが所望する移動を正確に指示することが困難になる。また、プレイヤがタッチパネルやタブレットを用いてゲーム画像上で移動させるプレイヤキャラクタ等の対象が、プレイヤの操作によって隠れるようなことも生じるため、プレイヤキャラクタの動きを楽しむようなゲームの興趣性を損なうことがある。
【００１０】
また、携帯情報端末（ＰＤＡ）などにもタッチパネルが採用され、当該タッチパネルに覆われた液晶表示装置に表示された図柄を、ユーザが直接的に操作するようなシステムが採用されている。具体的にＰＤＡなどでは、フォルダなどの図柄に対して「ダブルクリック」することによって当該フォルダが開いたり、アイコンなどの図柄を「ドラッグ」することによりアイコンが移動したりする。つまり、ＰＤＡなどでは、ユーザ所望の動作を確実に行わせることが前提となっているため、直接タッチされた図柄がその表示態様を変化させている。しかしながら、電子ゲームにこのような技術を単に転用した場合には、プレイヤが直接操作することができるプレイヤキャラクタ自体の表示態様を変化させることになってしまうため、プレイヤの操作すべきプレイヤキャラクタの形態が変化して当該プレイヤキャラクタ自体を識別できなくなってしまうという問題も生じる。例えば、複数個の三角形状の操作キーおよび円形状の操作キーの図柄がタッチパネルに覆われた表示部に表示されているとする。そして、プレイヤが円形状の操作キーをタッチ操作することによって、当該円形状の操作キーが三角形状に表示態様が変化する場合、プレイヤは元来円形状であった操作キーがどの操作キーなのか分からなくなってしまう。
【００１１】
それ故に、本発明の目的は、タッチパネルで覆われた第２表示画面に表示された図柄に対して、プレイヤが当該タッチパネルを用いて図柄に対する入力を正確に行うことができ、またその操作性を確保しながら、当該入力に応じて第１表示画面に表示されるゲーム画像を変化させることができるゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【００１２】
上記の目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号、ステップ番号（ステップをＳと略称しステップ番号のみを記載する）、および補足説明などは、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【００１３】
本発明のゲームプログラムは、第１表示画面（１１ａ）とタッチパネル（１３）に覆われた第２表示画面（１２ａ）とを備えるゲーム装置（１）のコンピュータ（２１等）に実行される。ゲームプログラムは、コンピュータを、第１ゲーム画像表示制御手段（Ｓ２１、Ｓ５１）、第２ゲーム画像表示制御手段（Ｓ２２、Ｓ５２）、入力検出手段（Ｓ２３、Ｓ２７、Ｓ２８、Ｓ５３、Ｓ５７、Ｓ５８）、変化条件算出手段（Ｓ２４、Ｓ２６、Ｓ２９、Ｓ３１、Ｓ５４、Ｓ５６、Ｓ５９、Ｓ６１）、およびプレイヤキャラクタ制御手段（Ｓ３２、Ｓ６２）として機能させる。第１ゲーム画像表示制御手段は、プレイヤの操作対象となるプレイヤキャラクタ（Ｐ１）を含む第１ゲーム画像を第１表示画面に表示する。第２ゲーム画像表示制御手段は、プレイヤキャラクタに対応するキャラクタ図柄（Ｐ２）を第１ゲーム画像におけるプレイヤキャラクタより大きく表示するための第２ゲーム画像を第２表示画面に表示する。入力検出手段は、タッチパネルに対してタッチ操作された入力位置（入力座標）とその入力変化（例えば連続する一連の入力座標の変化）を検出する。変化条件算出手段は、入力検出手段によって検出された入力位置の少なくとも一部（始点、終点、一部または全部の中間地点の位置座標）が第２表示画面に表示されたキャラクタ図柄上であるとき、そのキャラクタ図柄上における入力位置および入力検出手段が検出した入力変化に応じて、プレイヤキャラクタの表示態様（移動など）を変化させるための変化条件データ（移動方向、速度、撞球モードなど）を算出する。プレイヤキャラクタ制御手段は、変化条件データに基づいて、プレイヤキャラクタの表示態様を変化させる。
【００１４】
変化条件算出手段は、第２表示画面に表示されるキャラクタ図柄に対応するタッチパネルの検出領域（Ｐ３）を複数の定義領域（Ｚ１〜Ｚ４）に分割し、キャラクタ図柄上における入力位置を含む定義領域に応じて各々種類が異なる動作パラメータ（撞球モード）を変化条件データとして算出（Ｓ８４）してもかまわない。
【００１５】
例えば、プレイヤキャラクタは、ゲーム空間内を移動する移動体である。この場合、変化条件算出手段は、変化条件データとして、初期移動条件データ（移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹ、速度ｇＳｐｅｅｄ）および移動変移条件データ（撞球モードを設定するフラグ、カーブ係数ｋ）を算出する。変化条件算出手段は、入力変化の方向に基づいて、移動体のゲーム空間における初期移動方向を決定するための初期移動条件データを算出する（Ｓ８６、Ｓ８７、Ｓ８９）。変化条件算出手段は、キャラクタ図柄上における入力位置に基づいて、初期移動方向に移動開始された後に移動体のゲーム空間における移動方向を変化させるための移動変移条件データを算出する（Ｓ８４、Ｓ９１、Ｓ１５５）。
【００１６】
入力変化検出手段は、一定時間間隔でタッチパネルに対する入力の有無を判別し、その入力が連続して検出されている間のそのタッチパネル上の位置座標を検出することによって入力位置とその入力変化とを検出してもかまわない。そして、変化条件算出手段は、入力変化検出手段が連続して検出したタッチパネルに対する入力開始時点および入力終了時点の位置座標をそれぞれ抽出し、その入力開始時点および入力終了時点の位置座標に応じて変化条件データを算出してもかまわない。
【００１７】
例えば、プレイヤキャラクタは、ゲーム空間内を移動する移動体である。この場合、上記変化条件算出手段は、変化条件データとして、初期移動条件データおよび移動変移条件データを算出する。変化条件算出手段は、入力開始時点の位置座標（始点Ｓ）から入力終了時点の位置座標（終点Ｅ）への方向に基づいて、移動体のゲーム空間における初期移動方向および速度を決定するための初期移動条件データを算出する。変化条件算出手段は、第２表示画面に表示されるキャラクタ図柄に対応するタッチパネルの検出領域を複数の定義領域に分割し、キャラクタ図柄上における入力開始時点の位置座標および入力終了時点の位置座標の少なくとも一方を含む定義領域に応じて、初期移動方向に移動開始された後に移動体のゲーム空間における移動方向を変化させるための移動変移条件データを算出する。
【００１８】
上記変化条件算出手段は、入力開始時点の位置座標から入力終了時点の位置座標への方向に応じて、第２表示画面に表示されるキャラクタ図柄に対応するタッチパネルの検出領域を複数の定義領域に分割してもかまわない（図８、Ｓ１０１〜Ｓ１０５、Ｓ１０７、Ｓ１０９〜Ｓ１１１、Ｓ１１３）。
【００１９】
また、変化条件算出手段は、第２表示画面に表示されるキャラクタ図柄に対応するタッチパネルの検出領域に含まれる所定の基準位置（Ｐ２の中心）と、入力開始時点の位置座標および入力終了時点の位置座標を含む直線（ＳＥ）との距離に応じて、移動体の移動方向を変化させる変化量が大きくなるように移動変移条件データを算出（Ｓ９１）してもかまわない。
【００２０】
入力変化検出手段は、一定時間間隔でタッチパネルに対する入力の有無を判別し、その入力が連続して検出されている間のそのタッチパネル上の位置座標を検出することによって入力位置とその入力変化を検出してもかまわない。そして、ゲームプログラムは、入力変化手段が入力を連続して検出している間の入力検出時間を計時する計時手段（Ｓ３０、Ｓ６０）として、さらにコンピュータを機能させてもよい。この場合、変化条件算出手段は、入力変化検出手段が連続して検出したタッチパネルに対する入力開始時点および入力終了時点の位置座標をそれぞれ抽出し、その入力開始時点の位置座標、入力終了時点の位置座標、および入力検出時間のうち少なくとも２つに応じて変化条件データを算出する。
【００２１】
入力変化検出手段は、一定時間間隔でタッチパネルに対する入力の有無を判別し、その入力が連続して検出されている間のそのタッチパネル上の位置座標を検出することによって入力位置とその入力変化を検出してもかまわない。そして、ゲームプログラムは、入力変化検出手段が入力を連続して検出している間、タッチパネルに対して入力中の位置座標（点Ｎ）と入力開始時点の位置座標との関係を示す単一の図形（二等辺三角形Ｔｒ、線分、矢印など）を生成する図形生成手段（Ｓ７３、Ｓ７４）として、さらにコンピュータを機能させてもよい。この場合、第２ゲーム画像表示制御手段は、図形生成手段が生成した図形をさらに含む第２ゲーム画像を第２表示画面に表示する（図７）。
【００２２】
例えば、図形生成手段が生成する図形は、入力中の位置座標を頂点とし入力開始時点の位置座標を所定長さ（２Ｌ）の底辺の中点とする二等辺三角形（Ｔｒ）である。
【００２３】
本発明のゲーム装置は、記憶手段（２２）、第１表示画面、タッチパネルに覆われた第２表示画面、およびゲーム実行手段（２１など）を備える。記憶手段は、上述したいずれかのゲームプログラムを記憶する。ゲーム実行手段は、記憶手段が記憶したゲームプログラムを実行する。
【発明の効果】
【００２４】
本発明のゲームプログラムによれば、キャラクタ図柄に対して与えたタッチパネル入力の変化に応じて、第１表示画面のプレイヤキャラクタの表示態様が変化するので、従来に無い操作感覚のゲームを提供することができる。また、第２表示画面にプレイヤキャラクタに対応するキャラクタ図柄を、当該プレイヤキャラクタよりも大きく表示させているので、プレイヤの所望の箇所を比較的正確に指示させることができる。また、第１表示画面に表示態様が変化するプレイヤキャラクタを表示し、プレイヤの操作は第２表示画面に表示されるキャラクタ図柄に対して行わせるので、プレイヤのタッチ操作によってプレイヤキャラクタが隠れるようなことを防止することができる。さらに、キャラクタ図柄に対する比較的正確な入力位置および入力変化に応じて、第１表示画面のプレイヤキャラクタの表示態様を変化させ、第２表示画面に表示されたキャラクタ図柄の表示態様を変化させないので、プレイヤが所望の表示態様の変化を第１表示画面で表現すると同時に、プレイヤの操作すべき図柄が識別できなくなるようなことはなく、第１表示画面におけるプレイヤキャラクタが自己の操作対象であることをプレイヤに容易に把握させることができる。
【００２５】
また、変化条件算出手段が複数の定義領域（Ｚ１〜Ｚ４）を用いて変化条件データを算出する場合、プレイヤキャラクタの表示態様を変化させるバリエーションを増やして、ゲームの興趣性を増加させることができる。また、一般的にタッチ操作の対象となるキャラクタ図柄を領域分割して上記バリエーションを増やす場合、タッチ操作を行う領域が小さくなりプレイヤが望む操作が困難になることが考えられるが、第２表示画面にプレイヤキャラクタよりも大きくキャラクタ図柄を表示させているので、領域分割されていてもプレイヤの所望の箇所を比較的正確に指示させることができる。
【００２６】
また、プレイヤキャラクタがゲーム空間内を移動する移動体であり、変化条件算出手段が変化条件データとして、初期移動条件データおよび移動変移条件データを算出する場合、プレイヤキャラクタの表示態様を変化させるバリエーションを増やして、ゲームの興趣性を増加させることができる。
【００２７】
また、変化条件算出手段が入力開始時点および入力終了時点の位置座標に応じて変化条件データを算出する場合、プレイヤの直感的な操作を第１表示画面におけるプレイヤキャラクタの表示態様の変化に反映させることができる。
【００２８】
また、入力開始時点または入力終了時点の位置座標を含む定義領域に応じて、移動変移条件データを算出する場合、入力開始時点または終了時点の座標位置と、キャラクタ図柄の定義領域との関係に応じて移動のさせ方を決めるので、プレイヤの直感的な操作を第１表示画面におけるプレイヤキャラクタの移動に反映させることができる。
【００２９】
また、入力開始時点から入力終了時点の位置座標への方向に応じて、複数の定義領域が分割される場合、プレイヤキャラクタを初期移動させる方向を基準にプレイヤキャラクタの表示態様の変化が予想できるように領域分割できるため、タッチ操作から直感的にプレイヤキャラクタの変化を予想可能にできる。
【００３０】
また、所定の基準位置と入力開始時点および入力終了時点の位置座標を含む直線との距離に応じて、移動体の移動方向の変化量が大きくなるように移動変移条件データを算出する場合、さらにプレイヤキャラクタの表示態様を変化させるバリエーションを増やして、ゲームの興趣性を増加させることができる。また、プレイヤは、直感的に変化量が大きくなることを理解できる。
【００３１】
また、計時手段としてさらに機能する場合、入力が連続している間の時間が表示態様の変化のさせ方に反映されるので、直感的な操作を第１表示画面におけるプレイヤキャラクタの変化により反映させることができる。
【００３２】
また、入力中の位置座標と入力開始時点の位置座標との関係を示す図形を第２表示画面に表示する場合、現在のタッチパネルへの入力状況を随時プレイヤに示すことができる。
【００３３】
さらに、上記図形を入力中の位置座標を頂点とし入力開始時点の位置座標を所定長さの底辺の中点とする二等辺三角形で示す場合、タッチ操作の始点から入力中の位置までの方向および距離を同時に示すことができる。
【００３４】
本発明のゲーム装置によれば、上述したゲームプログラムと同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００３５】
（第１の実施形態）
本発明の第１の実施形態に係るゲームプログラムを実行するコンピュータを搭載する携帯型ゲーム装置について説明する。なお、本実施形態では、ゲーム画像に含まれるプレイヤキャラクタの表示態様を変化させる場合について説明するが、ゲーム画像の全体の表示態様を変化させるようにしてもよい。また、本実施形態に係るゲーム装置として、物理的に二つの表示画面を有し一方の表示画面がタッチパネルに覆われている携帯型ゲーム装置を一例に上げて説明する。例えば、ゲーム装置として、据置型ビデオゲーム装置、アーケードゲーム装置、携帯端末装置、携帯電話、またはパーソナルコンピュータなどにも適用することができる。なお、本発明のゲーム装置は、ソフトウェアによって物理的に一つの表示画面を二画面に分けて使用し、少なくとも一方の表示画面がタッチパネルに覆われているゲーム装置であってもよい。
【００３６】
図１は、第１の実施形態に係る携帯型ゲーム装置１の外観図である。図１に示すように、携帯型ゲーム装置１（以下、単に「ゲーム装置１」と記載する）は、第１表示画面１１ａを有する第１液晶表示装置（以下、「ＬＣＤ」という）１１と、第２表示画面１２ａを有する第２ＬＣＤ１２とを備えている。第２表示画面１２ａの表面は、タッチパネル１３によって覆われている。また、第２表示画面１２ａの右側には、プレイヤの右手によって操作可能なＡボタン１４ａ、Ｂボタン１４ｂ、およびＲスイッチ１４ｃと、ゲーム音楽や音声を出力するためのスピーカ１５とが設けられている。一方、第２表示画面１２ａの左側には、プレイヤの左手によって操作可能な十字キー１４ｄ、スタートボタン１４ｅ、セレクトボタン１４ｆ、およびＬスイッチ１４ｇが設けられている。なお、Ａボタン１４ａ、Ｂボタン１４ｂ、Ｒスイッチ１４ｃ、十字キー１４ｄ、スタートボタン１４ｅ、セレクトボタン１４ｆ、およびＬスイッチ１４ｇを総称して、操作キー１４と記載する。
【００３７】
また、ゲーム装置１には、タッチパネル１３に対する入力を行うためのスタイラス１６が含まれ、当該スタイラス１６は着脱自在に収納される。さらに、ゲーム装置１には、本発明のゲームプログラムを記憶した記憶媒体であるゲームカートリッジ１７（以下、単にカートリッジ１７と記載する）が着脱自在に装着される。なお、タッチパネル１３の位置検出精度が高い場合にはスタイラス１６を利用することが有効であるが、位置検出精度が低い場合にはスタイラス１６を利用する必要がなく、例えばプレイヤの指によってタッチパネル１３の入力を行うことも可能である。また、タッチパネル１３は、抵抗膜式、光学式、超音波式、静電容量式、電磁誘導式などのいずれの方式でもよく、特に抵抗膜式が低コストであるため有利である。また、検出方式は、その構成によりマトリクス方式（デジタル）および抵抗値検出方式（アナログ）のいずれであってもかまわない。
【００３８】
図２は、ゲーム装置１の構成を示すブロック図である。図２に示すように、ゲーム装置１は、ゲームプログラムを実行するためのコンピュータの一例であるＣＰＵ２１等を備える。ＣＰＵ（中央処理装置）２１には、ＷＲＡＭ（作業用記憶装置）２２、第１ＧＰＵ（画像処理装置）２３、第２ＧＰＵ２４、およびＩ／Ｆ（インターフェイス）回路２５が所定のバスを介して電気的に接続される。ＷＲＡＭ２２は、ＣＰＵ２１によって実行されるゲームプログラムやＣＰＵ２１の演算結果などを一次的に記憶するメモリである。第１ＧＰＵ２３は、ＣＰＵ２１からの指示に応じて第１ＬＣＤ１１に表示出力するための第１ゲーム画像を第１ＶＲＡＭ（ビデオＲＡＭ）２７に描画し、描画した当該第１ゲーム画像を第１ＬＣＤ１１の第１表示画面１１ａに表示させる。第２ＧＰＵ２４は、ＣＰＵ２１からの指示に応じて第２ＬＣＤ１２に表示出力するための第２ゲーム画像（図柄）を第２ＶＲＡＭ２８に描画し、描画した当該第２ゲーム画像を第２表示画面１２ａに表示させる。Ｉ／Ｆ回路２５は、タッチパネル１３、操作キー１４、およびスピーカ１５などの外部入出力装置とＣＰＵ２１との間のデータの受け渡しを行う回路である。
【００３９】
タッチパネル１３（タッチパネル用のデバイスドライバを含む）は、第２ＶＲＡＭ２８の座標系に対応する座標系を有し、スタイラス１６やプレイヤの指などによって入力（指示）された位置に対応する位置座標のデータを出力するものである。なお、本実施形態では、表示画面の解像度は１９２ｄｏｔ×２５６ｄｏｔであり、タッチパネル１３の検出精度も表示画面に対応した１９２ｄｏｔ×２５６ｄｏｔとして説明するが、タッチパネル１３の検出精度は表示画面の解像度よりも低いものであってもよい。
【００４０】
さらに、ＣＰＵ２１にはコネクタ２６が電気的に接続されており、当該コネクタ２６にはカートリッジ１７が着脱可能に接続される。カートリッジ１７は、ゲームプログラムを格納するための記憶媒体であり、具体的には、ゲームプログラムを記憶するＲＯＭ１７ａとバックアップデータを書き換え可能に記憶するＲＡＭ１７ｂとを搭載する。カートリッジ１７のＲＯＭ１７ａに記憶されたゲームプログラムは、ＷＲＡＭ２２にロードされ、当該ＷＲＡＭ２２にロードされたゲームプログラムがＣＰＵ２１によって実行される。
【００４１】
以下、当該ゲームプログラムに基づいて実行されるゲームについて説明する。第１の実施形態では、第２表示画面１２ａのキャラクタ図柄Ｐ２に与える入力の変化に応じて、第１表示画面１１ａに表示されるプレイヤキャラクタＰ１を移動させる。本ゲームプログラムによる詳細なフローを説明する前に、本発明の理解を容易にするために、図３および図４を参照して、その概要について説明する。図３は、当該ゲームプログラムによって第１表示画面１１ａおよび第２表示画面１２ａにそれぞれ表示される第１ゲーム画像および第２ゲーム画像の一画面例である。図４は、第２表示画面１２ａに入力の変化を与えた場合に、第１表示画面１１ａの第１ゲーム画像が変化する場合の一画面例である。
【００４２】
図３に示すように、ゲーム装置１の第１表示画面１１ａには第１ゲーム画像が表示され、第２表示画面１２ａには第１ゲーム画像に関連付けられた図柄を示した第２ゲーム画像が表示される。第１ゲーム画像は、所定の視点から見たゲーム空間の様子を示すものである。また、第２ゲーム画像で示される図柄は、上記ゲーム空間に登場するキャラクタやアイテムなどのゲームの種類に応じた図柄の画像であり、当該図柄は第１ゲーム画像に含まれる画像と連携するようにプログラムによって関連付けられている。
【００４３】
具体的には、ゲームプログラムは、二画面を利用したビリヤードゲームを表示させるものであり、第１表示画面１１ａには、手球Ｐ１と６個の的球Ｔとが載るビリヤード台Ｄを上方の視点から見た様子が第１ゲーム画像として表示される。手球Ｐ１は、プレイヤによって操作可能なプレイヤキャラクタを示す画像であり、的球Ｔは、それぞれ手球Ｐ１の衝突などに起因してビリヤード台Ｄ上を移動する画像である。一方、第２表示画面１２ａの第２ゲーム画像には、本発明のキャラクタ図柄として、手球Ｐ１を真上から見て拡大表示した操作用手球Ｐ２の画像が表示される。手球Ｐ１と操作用手球Ｐ２とは、ゲームプログラムによって関連付けられており、当該操作用手球Ｐ２に対してタッチパネル１３を用いて与えられる入力の変化が、第１ゲーム画像の変化の一例である手球Ｐ１の表示態様の変化（本実施形態では移動）に反映されるようになっている。第２表示画面１２ａは、タッチパネル１３に覆われているので、第２表示画面１２ａに表示される操作用手球Ｐ２の表示領域に対応するタッチパネル１３の領域に対する入力を検出することによって、操作用手球Ｐ２に与えられる入力の変化を検出することができる。このときの第１ゲーム画像および第２ゲーム画像の様子を図４に示す。
【００４４】
図４に示すように、プレイヤがスタイラス１６によって第２表示画面１２ａを覆うタッチパネル１３に対する入力を行う。換言すれば、第２表示画面１２ａに表示される操作用手球Ｐ２に対する入力の指示が行われる。ゲーム装置１では、この入力の変化を検出することによって、例えば第１方向ＬＯへの連続入力を把握する。この第１方向ＬＯへの連続入力が検出されると、当該連続入力の変化に含まれる少なくとも２つのパラメータに基づいて、第１表示画面１１ａの手球Ｐ１に対する例えば打ち出し方向および初速が算出される。この打ち出し方向および初速が本発明における変化条件データに相当する。当該打ち出し方向および初速に基づいて、手球Ｐ１の移動方向および移動量が計算されながら移動することによって、軌跡ＯＲに沿ってビリヤード台Ｄ上を手球Ｐ１が移動する第１ゲーム画像が生成され、当該第１ゲーム画像が第１表示画面１１ａに表示される。このように、第２表示画面１２ａを覆うタッチパネル１３に対する入力の変化に基づいて、第１表示画面１１ａの第１ゲーム画像を変化させている。なお、本画面例では、直線状の第１方向ＬＯにドラッグをする例に挙げたが、曲線やＳ字状にドラッグさせてもよい。この場合において、始点から終点までの途中の位置座標もパラメータとして利用すれば、手球Ｐ１が例えばＳ字を描く軌跡を通るように移動するように制御することができる。もちろんこの場合には、ボールの回転方向や回転率などを計算しながら手球Ｐ１を移動させる。
【００４５】
次に、図５および図６を参照して、当該ゲームプログラムによって実行される処理を具体的に説明する。なお、図５は当該ゲームプログラムによって実行される処理を示すフローチャートであり、図６（ａ）は第１ＶＲＡＭ２７に記憶されるデータの概念を示す図であり、図６（ｂ）は第２ＶＲＡＭ２８に記憶されるデータの概念を示す図であり、図６（ｃ）はタッチパネル１３の座標系の概念を示す図である。
【００４６】
まず、ゲーム装置１の電源（図示せず）がＯＮされると、ＣＰＵ２１によってブートプログラム（図示せず）が実行され、これによりカートリッジ１７に格納されているゲームプログラムがＷＲＡＭ２２にロードされる。当該ロードされたゲームプログラムがＣＰＵ２１に実行されることによって、図５に示すステップ（図５では「Ｓ」と略称する）が実行される。
【００４７】
まず、ＣＰＵ２１の命令によって第１ＧＰＵ２３が動作し、ゲームプログラムに含まれるビリヤード台などの各種画像データが読み出され、第１ＶＲＡＭ２７に第１ゲーム画像が描画される（ステップ２１）。具体的には、図６（ａ）に示すように、第１ＶＲＡＭ２７の描画領域に、ビリヤード台Ｄ、手球Ｐ１、および複数個の的球Ｔが描画される。そして、第１ＶＲＡＭ２７内の第１ゲーム画像が第１ＬＣＤ１１に表示出力される。次に、ＣＰＵ２１の命令によって第２ＧＰＵ２４が動作し、ゲームプログラムに含まれるキャラクタの図柄の画像データが読み出され、第２ＶＲＡＭ２８に第１ゲーム画像に関連付けられた図柄が第２ゲーム画像として描画される（ステップ２２）。具体的には、図６（ｂ）に示すように、第２ＶＲＡＭ２８の描画領域に、操作対象図柄であるキャラクタ図柄（操作用手球）Ｐ２が描画される。そして、第２ＶＲＡＭ２８内の第２ゲーム画像が第２ＬＣＤ１２に表示出力される。これらステップ２１およびステップ２２が実行されることによってビリヤードゲームのプレイ開始が可能になる。
【００４８】
そして、ＣＰＵ２１は、タッチパネル１３に対する入力の検出を開始する（ステップ２３）。タッチパネル１３は、図６（ｃ）に示すように、第２ＶＲＡＭ２８の座標系に対応する座標系を有し、スタイラス１６やプレイヤの指などによって入力（指示）された位置に対応する位置座標のデータを出力する。つまり、ステップ２３では、ＣＰＵ２１がタッチパネル１３（タッチパネル１３を制御するデバイスドライバを含む）から出力される位置座標を検出する。
【００４９】
次に、ＣＰＵ２１は、キャラクタ図柄Ｐ２に対する入力か否かを判断する（ステップ２４）。具体的には、ＣＰＵ２１は、タッチパネル１３から最初に検出した位置座標（入力の変化の始点となる位置座標）がキャラクタ図柄Ｐ２（図６（ｂ）参照）が描画されている座標領域Ｐ３（図６（ｃ）参照）に含まれるか否かで判断する。ＣＰＵ２１は、検出した位置座標が当該座標領域Ｐ３に含まれる場合にはキャラクタ図柄Ｐ２への入力として処理を次のステップ２５に進め、当該座標領域Ｐ３に含まれない場合にはステップ２３を繰り返す。
【００５０】
上記ステップ２４においてキャラクタ図柄Ｐ２に対して入力があると、ＣＰＵ２１は、タッチパネル１３に対する入力の変化を検出するために、以下のステップ２５〜ステップ３０を実行する。まず、ＣＰＵ２１は、連続して入力されている時間を計時するための計時カウンタによるカウントを開始する（ステップ２５）。次に、ＣＰＵ２１は、上記ステップ２４で検出された入力開始時点の位置座標データを、ＷＲＡＭ２２に一旦保存する（ステップ２６）。ステップ２６において保存される始点の位置座標データが、本発明における入力開始時点の位置座標である。
【００５１】
そして、ＣＰＵ２１は、一定時間間隔でタッチパネル１３からの入力座標を検出し（ステップ２７）、タッチパネル１３からの入力がなくなるまでステップ２７の処理を繰り返す（ステップ２８）。つまり、ステップ２７およびステップ２８では、タッチパネル１３に対するタッチ操作が連続して行われている間、ＣＰＵ２１は、当該タッチ操作に応答した入力の変化を検出し続ける。なお、本実施形態では、タッチパネル１３からのデータ入力が一度でも途切れると連続した入力が終了したと判断するが、例えば、連続した数回の検出においてタッチパネル１３からのデータ入力が検出できないときに、初めて連続した入力が終了したと判断するようにしてもよい。
【００５２】
上記ステップ２８においてタッチパネル１３からの入力がなくなると（すなわち、プレイヤによるタッチパネル１３に対するタッチ操作が終了すると）、ＣＰＵ２１は、入力が終了した時点の位置座標データをＷＲＡＭ２２に保存する（ステップ２９）。ステップ２９において保存される終点の位置座標データが、本発明における入力終了終点の位置座標である。
【００５３】
次に、ＣＰＵ２１は、連続する入力がなくなった時点で計時カウンタによるカウントを停止して、連続した入力がどの程度の時間続いたかを示す連続入力時間データをＷＲＡＭ２２に保存する（ステップ３０）。ステップ３０において保存される連続入力時間データが、本発明における入力検出時間である。
【００５４】
なお、上述したステップ２６およびステップ２９によって、タッチパネル１３に対する入力の変化から少なくとも２つのパラメータ（入力開始時点および入力終了時点の位置座標）が抽出される。さらに、本実施形態では、ステップ３０で検出された連続入力時間データ（入力検出時間）を含めた合計３つのパラメータを利用する場合について説明する。後述から明らかになるが、本実施形態では、始点および終点における２点の位置座標が抽出されるが、例えば始点から終点までの中間地点の一部またはすべての位置座標データを利用するようにしてもよい。また、本実施形態では、始点から終点までの時間を連続入力時間データとして利用するが、始点から終点までの途中の時点での時間データを利用してもよい。途中の時点の時間データを利用して、始点から終点までの前半での入力の変化によって手球Ｐ１の挙動が変化させることにより、プレイヤの操作に応じたより直感的な手球Ｐ１の移動を表示できる。これらの必要なパラメータの種類や数は、第１表示画面１１ａにおけるプレイヤオブジェクト（本実施形態では手球Ｐ１）にどのような動作を行わせたいかによって決まるものである。つまり、複雑な動作を行わせる場合には複雑な動作を決めるために必要となるパラメータが増えるが、直線的な移動などのような簡単な動作の場合には、２つのパラメータを用いて演算することができる。
【００５５】
次に、ＣＰＵ２１は、保存されたパラメータに基づいて、第１表示画面１１ａの第１ゲーム画像における手球Ｐ１の初速度や移動方向などの変化条件データを算出する（ステップ３１）。具体的には、上記ステップ２６による入力開始時点すなわち始点の位置座標のデータと、ステップ２９による入力終了時点すなわち終点の位置座標のデータと、ステップ３０よる始点から終点までの連続入力時間データとの３つのパラメータに基づいて、手球Ｐ１の初速度および移動方向を算出する。
【００５６】
例えば、始点（ｘ１、ｙ１）、終点（ｘ２、ｙ２）、および連続入力時間ｔ１とすると、ＣＰＵ２１は、終点（ｘ２、ｙ２）と始点（ｘ１、ｙ１）との差Δｘ＝ｘ２−ｘ１およびΔｙ＝ｙ２−ｙ１によって移動方向（Δｘ、Δｙ）を算出する。つまり、手球Ｐ１が配置されている場所が位置座標（Ｘ、Ｙ）であれば、この位置座標（Ｘ、Ｙ）から移動方向（Δｘ、Δｙ）の方向（第１方向ＬＯ：図４）に手球Ｐ１を移動させる。そして、手球Ｐ１の初速度としては、連続入力時間ｔ１が短いほど初速度早くなるように初速度を算出する。例えば、初速度＝初期設定初速度÷連続入力時間ｔ１によって算出する。また、初速度を算出する際に、差（Δｘ、Δｙ）を考慮し、差が大きいほど初速度が速くなるように、またその逆にすることもできる。
【００５７】
なお、始点（ｘ１、ｙ１）または終点（ｘ２、ｙ２）と、連続入力時間ｔ１との２つのパラメータだけによって、初速度および移動方向を算出することも可能である。例えば、キャラクタ図柄Ｐ２の中央を基準位置（ｘ０、ｙ０）に設定し、始点または終点と基準位置（ｘ０、ｙ０）との差を手球Ｐ１の移動方向として、連続入力時間ｔ１により手球Ｐ１の初速度を決定する。さらに、始点（ｘ１、ｙ１）および終点（ｘ２、ｙ２）の２つのパラメータだけによって、初速度および移動方向を算出することも可能である。例えば、終点と始点との差を移動方向とし、差の大きさを初速度に反映させるようにすればよい。このように、タッチパネル１３に対する入力の変化から少なくとも２つのパラメータを抽出すれば、第１表示画面１１ａの第１ゲーム画像を入力の変化に応じて変化させることができる。また、手球Ｐ１を移動させるための条件を算出すればよいため、初速度および移動方向のほか、例えば加速度、減速度、移動距離、移動速度などの条件を算出してもよい。
【００５８】
次に、ＣＰＵ２１は、上記ステップ３１でパラメータから算出された演算結果である初速度および移動方向などの変化条件データに基づいて、手球Ｐ１を移動させるための条件を設定する。そして、ＣＰＵ２１は、上記条件に基づいて、ビリヤード台との摩擦による減速、壁との衝突や反射などの計算を行いながら軌道ＯＲ（図４参照）に沿って手球Ｐ１が転がって移動する様子を第１表示画面１１ａに表示する（ステップ３２）。そして、ＣＰＵ２１は、ゲームが終了するまで（ステップ３３）、上記ステップ２４〜ステップ３２の処理を繰り返して実行する。
【００５９】
なお、本実施形態では、タッチパネル１３に対する直線的な入力の変化によって手球Ｐ１を直線的に移動させたが、例えばタッチパネル１３に対して小さな円を描きながら直線的なライン上をタッチ操作する入力の変化を与えることにより、全体的なラインが描かれた方向に手球Ｐ１を打ち出すと共に、円の描き方および方向によって手球Ｐ１が回転するような条件を算出するようにして、手球Ｐ１の表示態様を変化させることもできる。
【００６０】
このように、第１の実施形態によれば、キャラクタ図柄に対して与えた入力の変化、すなわちタッチパネル１３をタッチ操作する入力パターンに応じて、第１表示画面１１ａの手球Ｐ１が移動するので、従来に無い操作感覚のゲームを提供することができる。また、第２表示画面１２ａに第１表示画面１１ａに表示されているプレイヤキャラクタ（手球Ｐ１）に対応するキャラクタ図柄（操作用手球Ｐ２）を、プレイヤキャラクタよりも大きく表示させているので、プレイヤの所望の箇所を比較的正確に指示させることができる。また、第１表示画面１１ａに表示態様が変化するプレイヤキャラクタを表示し、プレイヤの操作は第２表示画面１２ａに表示されるキャラクタ図柄に対して行わせるので、プレイヤのタッチ操作によってプレイヤキャラクタが隠れるような事態を防止することができる。さらに、キャラクタ図柄に対する比較的正確な入力位置および入力変化に応じて、第１表示画面１１ａのプレイヤキャラクタの表示態様を変化させ、第２表示画面１２ａに表示されたキャラクタ図柄の表示態様を変化させないので、プレイヤが所望の表示態様の変化を第１表示画面１１ａで表現すると同時に、プレイヤの操作すべき図柄が識別できなくなるようなことは生じない。
【００６１】
（第２の実施形態）
本発明の第２の実施形態に係るゲームプログラムを実行するコンピュータを搭載するゲーム装置について説明する。なお、本実施形態でも、ゲーム画像に含まれるプレイヤキャラクタの表示態様を変化させる場合について説明するが、ゲーム画像の全体の表示態様を変化させるようにしてもよい。なお、第２の実施形態に係るゲーム装置は、上述した第１の実施形態で用いたゲーム装置１と同様であるため、同一構成部に同一の参照符号を付して詳細な説明を省略する。
【００６２】
以下、当該ゲームプログラムに基づいて実行されるゲームについて説明する。第２の実施形態においても、第１の実施形態と同様に第１表示画面１１ａにプレイヤキャラクタＰ１が表示され、第２表示画面１２ａにキャラクタ図柄Ｐ２が表示される。そして、第２表示画面１２ａのキャラクタ図柄Ｐ２に与える入力の変化に応じて、第１表示画面１１ａに表示されるプレイヤキャラクタＰ１を移動させる。本ゲームプログラムによる詳細なフローを説明する前に、図７〜図１３を参照して、その概要について説明する。なお、図７は、当該ゲームプログラムによって第１表示画面１１ａおよび第２表示画面１２ａにそれぞれ表示される第１ゲーム画像および第２ゲーム画像の一画面例である。図８は、キャラクタ図柄Ｐ２を複数の定義領域Ｚ１〜Ｚ４に分割したの一例である。図９〜図１３は、第２表示画面１２ａに入力の変化を与えた場合に、それぞれ第１表示画面１１ａの第１ゲーム画像が変化する場合の一画面例である。
【００６３】
図７に示すように、第１の実施形態と同様にゲーム装置１の第１表示画面１１ａには第１ゲーム画像が表示され、第２表示画面１２ａには第１ゲーム画像に関連付けられた図柄を示した第２ゲーム画像が表示される。第１ゲーム画像は、所定の視点から見たゲーム空間の様子を示すものである。また、第２ゲーム画像で示される図柄は、上記ゲーム空間に登場するキャラクタやアイテムなどのゲームの種類に応じた図柄の画像であり、当該図柄は第１ゲーム画像に含まれる画像と連携するようにプログラムによって関連付けられている。
【００６４】
具体的には、第１の実施形態と同様に、二画面を利用したビリヤードゲームを表示させるものであり、第１表示画面１１ａには、手球Ｐ１と６個の的球Ｔとが載るビリヤード台Ｄを上方の視点から見た様子が第１ゲーム画像として表示される。手球Ｐ１は、プレイヤによって操作可能なプレイヤキャラクタを示す画像であり、的球Ｔは、それぞれ手球Ｐ１の衝突などに起因してビリヤード台Ｄ上を移動する画像である。一方、第２表示画面１２ａの第２ゲーム画像には、本発明のキャラクタ図柄として、手球Ｐ１を真上から見て拡大表示した操作用手球Ｐ２の画像が表示される。手球Ｐ１と操作用手球Ｐ２とは、ゲームプログラムによって関連付けられており、当該操作用手球Ｐ２に対してタッチパネル１３を用いて与えられる入力の変化が、第１ゲーム画像の変化の一例である手球Ｐ１の表示態様の変化（本実施形態では移動）に反映されるようになっている。第２表示画面１２ａは、タッチパネル１３に覆われているので、第２表示画面１２ａに表示される操作用手球Ｐ２の表示領域に対応するタッチパネル１３の領域に対する入力を検出することによって、操作用手球Ｐ２に与えられる入力の変化を検出することができる。
【００６５】
図７に示すように、プレイヤは、スタイラス１６によって第２表示画面１２ａを覆うタッチパネル１３に対する連続的な入力を行い、操作用手球Ｐ２に対する入力の指示を行う。ゲーム装置１では、この連続的な入力の変化を検出することによって、連続入力の方向を把握する。第２の実施形態に係るゲームプログラムでは、この連続的な入力の変化に応じて、その入力変化をプレイヤに示すための図形Ｔｒが第２ゲーム画像に描画される。具体的には、操作用手球Ｐ２の表示領域内を始点Ｓとしてタッチパネル１３に連続的な入力があるとき、当該始点Ｓと現在入力中の点Ｎとの位置関係に応じて図形Ｔｒが描画される。図形Ｔｒは、点Ｎを頂点とし一定の底辺長さを有する二等辺三角形であり、始点Ｓは当該底辺の中点に配置される。
【００６６】
この連続入力が検出され当該連続入力が終了すると、当該連続入力の変化に含まれる少なくとも２つのパラメータ（例えば、連続入力の始点と終点）に基づいて、第１表示画面１１ａの手球Ｐ１に対する例えば移動量（移動方向）および速度が算出される。さらに、当該実施形態では、上記パラメータに基づいて、撞球モードが設定される。
【００６７】
具体的には、撞球モードは、上記連続入力の変化に含まれる始点Ｓおよび終点Ｅの位置と操作用手球Ｐ２の表示領域を分割した定義領域との関係に基づいて設定される。図８に示すように、操作用手球Ｐ２は、例えば４つの定義領域Ｚ１〜Ｚ４にその表示領域が分割されて定義されている。これら定義領域Ｚ１〜Ｚ４は、始点Ｓから終点Ｅへの方向（以下、入力方向と記載する）に応じて、それらの位置が変化する。図８は、入力方向が紙面上方向に設定された場合の定義領域Ｚ１〜Ｚ４を示している。
【００６８】
図８に示すように、上記入力方向に対して垂直で、かつ操作用手球Ｐ２の中心を通る直線をＭとする。操作用手球Ｐ２の外縁において上記入力方向に向かって前方左右２２．５°（合計４５°）となる２点について、右側を点Ｆ１および左側を点Ｆ２とする。操作用手球Ｐ２の外縁において上記入力方向に向かって後方左右２２．５°（合計４５°）となる２点について、右側を点Ｒ１および左側を点Ｒ２とする。換言すると、点Ｆ１から点Ｒ１までの角度は１３５°となり、点Ｆ２から点Ｒ２までの角度も１３５°となる。そして、点Ｆ１および点Ｒ１を結ぶ直線をＦ１−Ｒ１とし、点Ｆ２および点Ｒ２を結ぶ直線をＦ２−Ｒ２とする。ここで、直線Ｆ１−Ｒ１および直線Ｆ２−Ｒ２は、共に上記入力方向と平行になり、直線Ｆ１−Ｒ１および直線Ｆ２−Ｒ２によって操作用手球Ｐ２の表示領域が３分割される。そして、直線Ｆ１−Ｒ１の右側の領域（３分割された最も右側の領域）が、定義領域Ｚ３となる。また、直線Ｆ２−Ｒ２の左側の領域（３分割された最も左側の領域）が、定義領域Ｚ４となる。また、直線Ｆ１−Ｒ１と直線Ｆ２−Ｒ２に挟まれる領域（３分割された中央の領域）が、定義領域Ｚ１およびＺ２となる。直線Ｆ１−Ｒ１と直線Ｆ２−Ｒ２に挟まれる領域は、さらに直線Ｍによって上下に分割され、上部領域が定義領域Ｚ１となり、下部領域が定義領域Ｚ２となる。このように、定義領域Ｚ１〜Ｚ４は、入力方向を基準に設定されるため、当該入力方向が変わると定義領域Ｚ１〜Ｚ４の方向も変化する。具体的には、入力方向の変化に合わせて、操作用手球Ｐ２の中心を軸として定義領域Ｚ１〜Ｚ４が回転する。
【００６９】
なお、これらの定義領域Ｚ１〜Ｚ４は、それぞれ区別して第２ゲーム画像に表示してもいいし、表示しなくてもかまわない。後述により明らかになるが、手球Ｐ１を移動させる方向を基準に手球Ｐ１の表示態様の変化（撞球モード）が予想できるように操作用手球Ｐ２が定義領域Ｚ１〜Ｚ４に分割されるため、定義領域Ｚ１〜Ｚ４をゲーム画像として分割表示しなくてもプレイヤが直感的に予想できる。また、上述の説明では、説明を簡単にするために、第２ゲーム画像に表示された操作用手球Ｐ２を分割して定義領域Ｚ１〜Ｚ４を示したが、現実の処理では操作用手球Ｐ２が描画されている座標領域Ｐ３（図６（ｃ）参照）を定義領域Ｚ１〜Ｚ４に分割すればよい。
【００７０】
撞球モードは、キューで手球を撞く部分により、その手球の動き方を変えるバリエーションとして複数種類設定されている。具体的には、手球Ｐ１を撞く方向を基準に手球Ｐ１の中心をキューで撞く「中心撞き」、手球Ｐ１の下部を撞く「引き球」、手球Ｐ１の上部を撞く「押し球」、手球Ｐ１の右部を撞く「左カーブ」、および手球Ｐ１の左部を撞く「右カーブ」が設定できる。そして、定義領域Ｚ３内に上記連続入力の変化に含まれる始点Ｓが位置するとき、撞球モードが「左カーブ」に設定される。定義領域Ｚ４内に上記連続入力の変化に含まれる始点Ｓが位置するとき、撞球モードが「右カーブ」に設定される。定義領域Ｚ１内に上記連続入力の変化に含まれる始点Ｓが位置するとき、撞球モードが「押し球」に設定される。定義領域Ｚ２内に上記連続入力の変化に含まれる始点Ｓおよび終点Ｅが共に位置するとき、撞球モードが「引き球」に設定される。そして、定義領域Ｚ２内に上記連続入力の変化に含まれる始点Ｓが位置し、かつ定義領域Ｚ１内または操作用手球Ｐ２の表示領域外に終点Ｅが位置するとき、撞球モードが「中心撞き」に設定される。
【００７１】
これら移動量（移動方向）、速度、および撞球モードが当該実施形態における変化条件データに相当する。そして、変化条件データに基づいて、手球Ｐ１の移動方向、移動量、回転方向、および回転率等が計算されながら移動することによって、ビリヤード台Ｄ上を手球Ｐ１が移動する第１ゲーム画像が生成され、当該第１ゲーム画像が第１表示画面１１ａに表示される。
【００７２】
図９〜図１３は、それぞれの撞球モードに応じてビリヤード台Ｄ上を手球Ｐ１が移動する第１ゲーム画像例を示している。なお、図９〜図１３では、全て上記入力方向（Ｓ→Ｅの矢印で示す）が紙面左から右への方向に設定された例を示している。
【００７３】
図９において、操作用手球Ｐ２の定義領域Ｚ２内に連続入力の始点Ｓが位置し、定義領域Ｚ１内に終点Ｅが位置している。この連続入力が検出されると、当該連続入力の変化に含まれる始点Ｓおよび終点Ｅの位置を示す少なくとも２つのパラメータに基づいて、第１表示画面１１ａの手球Ｐ１に対する移動量（移動方向）、速度、および撞球モードが算出される。この場合、撞球モードは、「中心撞き」に設定される。そして、撞球モード「中心撞き」に基づいて、手球Ｐ１の移動量および速度等が計算されながら移動することによって、軌跡ｇに沿ってビリヤード台Ｄ上を手球Ｐ１が移動する第１ゲーム画像が生成され、当該第１ゲーム画像が第１表示画面１１ａに表示される。図９に示すように、撞球モード「中心撞き」の場合、他の物体と接触するまで軌跡ｇは上記入力方向と同じ方向の直線であり、手球Ｐ１の回転は設定されない。
【００７４】
図１０において、操作用手球Ｐ２の定義領域Ｚ３内に連続入力の始点Ｓが位置し、操作用手球Ｐ２の表示領域外に終点Ｅが位置している。この場合、撞球モードは、「左カーブ」に設定され、始点Ｓおよび終点Ｅの位置を示す少なくとも２つのパラメータに基づいて、手球Ｐ１に対する移動量および速度が算出される。そして、撞球モード「左カーブ」に基づいて、手球Ｐ１の移動量、速度、回転方向、および回転率等が計算されながら移動することによって、軌跡ｇに沿ってビリヤード台Ｄ上を手球Ｐ１が移動する第１ゲーム画像が生成され、当該第１ゲーム画像が第１表示画面１１ａに表示される。図１０に示すように、撞球モード「左カーブ」の場合、手球Ｐ１の回転が左回転に設定され、他の物体と接触するまで軌跡ｇは上記入力方向に対して徐々に左に曲がる曲線となる。
【００７５】
図１１において、操作用手球Ｐ２の定義領域Ｚ４内に連続入力の始点Ｓが位置し、操作用手球Ｐ２の表示領域外に終点Ｅが位置している。この場合、撞球モードは、「右カーブ」に設定され、始点Ｓおよび終点Ｅの位置を示す少なくとも２つのパラメータに基づいて、手球Ｐ１に対する移動量および速度が算出される。そして、撞球モード「右カーブ」に基づいて、手球Ｐ１の移動量、速度、回転方向、および回転率等が計算されながら移動することによって、軌跡ｇに沿ってビリヤード台Ｄ上を手球Ｐ１が移動する第１ゲーム画像が生成され、当該第１ゲーム画像が第１表示画面１１ａに表示される。図１１に示すように、撞球モード「右カーブ」の場合、手球Ｐ１の回転が右回転に設定され、他の物体と接触するまで軌跡ｇは上記入力方向に対して徐々に右に曲がる曲線となる。
【００７６】
図１２において、操作用手球Ｐ２の定義領域Ｚ２内に連続入力の始点Ｓおよび終点Ｅが共に位置している。この場合、撞球モードは、「引き球」に設定され、始点Ｓおよび終点Ｅの位置を示す少なくとも２つのパラメータに基づいて、手球Ｐ１に対する移動量および速度が算出される。そして、撞球モード「引き球」に基づいて、手球Ｐ１の移動量、速度、回転方向、および回転率等が計算されながら移動することによって、軌跡ｇに沿ってビリヤード台Ｄ上を手球Ｐ１が移動する第１ゲーム画像が生成され、当該第１ゲーム画像が第１表示画面１１ａに表示される。図１２に示すように、撞球モード「引き球」の場合、手球Ｐ１が逆回転に設定され、他の物体と接触するまで軌跡ｇは上記入力方向と同じ方向の直線であり、的球Ｔと接触後は当該的球Ｔから離れるように設定される。
【００７７】
図１３において、操作用手球Ｐ２の定義領域Ｚ１内に連続入力の始点Ｓが位置し、操作用手球Ｐ２の表示領域外に終点Ｅが位置している。この場合、撞球モードは、「押し球」に設定され、始点Ｓおよび終点Ｅの位置を示す少なくとも２つのパラメータに基づいて、手球Ｐ１に対する移動量および速度が算出される。そして、撞球モード「押し球」に基づいて、手球Ｐ１の移動量、速度、回転方向、および回転率等が計算されながら移動することによって、軌跡ｇに沿ってビリヤード台Ｄ上を手球Ｐ１が移動する第１ゲーム画像が生成され、当該第１ゲーム画像が第１表示画面１１ａに表示される。図１３に示すように、撞球モード「押し球」の場合、手球Ｐ１が前回転に設定され、他の物体と接触するまで軌跡ｇは上記入力方向と同じ方向の直線であり、的球Ｔと接触後は当該的球Ｔとの分離角が小さくなる（例えば、接触した的球Ｔを追いかける）ように設定される。このように、第２表示画面１２ａを覆うタッチパネル１３に対する入力の変化に基づいて、第１表示画面１１ａの第１ゲーム画像を変化させている。
【００７８】
次に、図１４〜図２１を参照して、当該ゲームプログラムによって実行される処理を具体的に説明する。なお、図１４は、当該ゲームプログラムによって実行される処理を示すフローチャートである。図１５は、図１４のステップ５７におけるタッチパネル入力処理の詳細な処理を示すサブルーチンである。図１６は、図１４のステップ６１における変化条件データ算出処理の詳細な処理を示すサブルーチンである。図１７は、図１６のステップ８４における撞球モード検出処理の詳細な処理を示すサブルーチンである。図１８は、図１４のステップ６２における手球の表示位置更新処理の詳細な処理を示すサブルーチンである。図１９は、図１８のステップ１２３における手球接触処理の詳細な処理を示すサブルーチンである。図２０は、図１８のステップ１３４におけるｇＳｔｅｐＸ、ｇＳｔｅｐＹ更新処理の詳細な処理を示すサブルーチンである。図２１は、図１５のステップ７４で表示される二等辺三角形Ｔｒの生成方法を説明するための図である。なお、当該ゲームプログラムによって実行される処理における第１ＶＲＡＭ２７、第２ＶＲＡＭ２８、およびタッチパネル１３の概念は、例えば第１の実施形態で説明した図６と同様である。
【００７９】
当該実施形態におけるゲーム装置１の電源ＯＮ時の処理は、第１の実施形態と同様である。また、図１４におけるステップ５１〜ステップ５６の処理は、それぞれ第１の実施形態で図５を用いて説明したステップ２１〜ステップ２６の処理と同様であるため、詳細な説明を省略する。
【００８０】
ステップ５７において、ＣＰＵ２１は、一定時間間隔でタッチパネル１３からの入力処理を行う。そして、ＣＰＵ２１は、タッチパネル１３からの入力がなくなるまでステップ５７の処理を繰り返す（ステップ５８）。つまり、ステップ５７およびステップ５８では、タッチパネル１３に対するタッチ操作が連続して行われている間、ＣＰＵ２１は、当該タッチ操作に応答した入力処理を続ける。なお、本実施形態では、タッチパネル１３からのデータ入力が一度でも途切れると連続した入力が終了したと判断するが、例えば、連続した数回の検出においてタッチパネル１３からのデータ入力が検出できないときに、初めて連続した入力が終了したと判断するようにしてもよい。以下、図１５を参照して、上記ステップ５７で行われるタッチパネル入力処理の詳細について説明する。
【００８１】
図１５において、ＣＰＵ２１は、タッチパネル１３からの１回目の入力か否かを判断する（ステップ７１）。そして、１回目の入力の場合、ＣＰＵ２１は、始点座標を中心として左右にそれぞれ長さＬの直線を第２ゲーム画像に表示して（ステップ７２）、当該サブルーチンによる処理を終了する。始点座標は、上記ステップ５６で保存された入力開始時点の位置座標データが用いられる。このステップ７２の処理によって、第２表示画面１２ａにはプレイヤがタッチ操作した始点を中心に長さ２Ｌの水平な直線が描画される。
【００８２】
一方、ステップ７１で２回目以降と判断された場合、ＣＰＵ２１は、タッチパネル１３から入力した位置座標を、現在入力中の点Ｎの位置座標データとしてＷＲＡＭ２２に一旦保存する（ステップ７３）。次に、ＣＰＵ２１は、上記点Ｎを頂点とした二等辺三角形Ｔｒ（図７参照）を第２ゲーム画像に表示して（ステップ７４）、当該サブルーチンによる処理を終了する。二等辺三角形Ｔｒは、長さ２Ｌの底辺を有しており、当該底辺の中点が上記ステップ５６で保存された始点となるように描画される。以下、図２１を参照して、ＣＰＵ２１が行う二等辺三角形Ｔｒの生成方法について説明する。
【００８３】
図２１において、上記始点を点Ｓとする。そして、ｘｙ平面に対して、点Ｎが座標Ｎ（Ｎｘ、Ｎｙ）に配置され、点Ｓが座標Ｓ（Ｓｘ、Ｓｙ）に配置されているとする。そして、点Ｎ（Ｎｘ、Ｎｙ）を、点Ｓ（Ｓｘ、Ｓｙ）を原点として９０°および−９０°回転させた点をそれぞれ点Ｎ１およびＮ２とする。この場合、それぞれの座標Ｎ１（Ｎ１ｘ、Ｎ１ｙ）およびＮ２（Ｎ２ｘ、Ｎ２ｙ）は、
Ｎ１ｘ＝ｃｏｓ（９０°）×（Ｎｘ−Ｓｘ）−ｓｉｎ（９０°）×（Ｎｙ−Ｓｙ）
Ｎ１ｙ＝ｓｉｎ（９０°）×（Ｎｘ−Ｓｘ）＋ｃｏｓ（９０°）×（Ｎｙ−Ｓｙ）
Ｎ２ｘ＝ｃｏｓ（−９０°）×（Ｎｘ−Ｓｘ）−ｓｉｎ（−９０°）×（Ｎｙ−Ｓｙ）
Ｎ２ｙ＝ｓｉｎ（−９０°）×（Ｎｘ−Ｓｘ）＋ｃｏｓ（−９０°）×（Ｎｙ−Ｓｙ）
で算出される。そして、点Ｓと点Ｎとを結ぶ直線の長さＱは、
【数１】
2005192986.tif 000003
となる。また、二等辺三角形Ｔｒの底辺両端の２点をそれぞれＳ１およびＳ２とすると、点Ｓ１およびＳ２は、直線Ｎ１−Ｎ２上にある。したがって、それぞれの座標Ｓ１（Ｓ１ｘ、Ｓ１ｙ）およびＳ２（Ｓ２ｘ、Ｓ２ｙ）は、
Ｓ１ｘ＝（Ｌ／Ｑ）×Ｎ１ｘ＋Ｓｘ
Ｓ１ｙ＝（Ｌ／Ｑ）×Ｎ１ｙ＋Ｓｙ
Ｓ２ｘ＝（Ｌ／Ｑ）×Ｎ２ｘ＋Ｓｘ
Ｓ２ｙ＝（Ｌ／Ｑ）×Ｎ２ｙ＋Ｓｙ
となる。これらの点Ｎ、Ｓ１、およびＳ２を互いに直線で結べば、底辺長さ２Ｌで点Ｎを頂点とし、始点Ｓを当該底辺の中点とする二等辺三角形Ｔｒを描くことができる。
【００８４】
なお、上記ステップ７４では、二等辺三角形以外の図形を描いてもかまわない。例えば、始点Ｓおよび点Ｎを結ぶ線分や始点Ｓから点Ｎに向かう矢印などの始点Ｓから点Ｎまでの方向と距離とを同時に示す図形であれば、他の図形を描いてもかまわない。
【００８５】
図１４に戻り、上記ステップ５８においてタッチパネル１３からの入力がなくなると（すなわち、プレイヤによるタッチパネル１３に対するタッチ操作が終了すると）、処理をステップ５９に進める。なお、図１４におけるステップ５９およびステップ６０の処理は、それぞれ第１の実施形態で図５を用いて説明したステップ２９およびステップ３０の処理と同様であるため、詳細な説明を省略する。なお、上記ステップ５６およびステップ５９によって、タッチパネル１３に対する入力の変化から少なくとも２つのパラメータ（入力開始時点および入力終了時点の位置座標）が抽出される。さらに、本実施形態では、ステップ６０で検出された連続入力時間データ（入力検出時間）を含めた合計３つのパラメータを利用する場合について説明する。本実施形態においても、これらの必要なパラメータの種類や数は、第１表示画面１１ａにおけるプレイヤオブジェクト（本実施形態では手球Ｐ１）にどのような動作を行わせたいかによって決まるものである。
【００８６】
次に、ＣＰＵ２１は、保存されたパラメータに基づいて、第１表示画面１１ａの第１ゲーム画像における手球Ｐ１の移動量（移動方向）、速度、および撞球モードなどの変化条件データを算出する（ステップ６１）。具体的には、上記ステップ５６による入力開始時点すなわち始点の位置座標のデータと、ステップ５９による入力終了時点すなわち終点の位置座標のデータと、ステップ６０よる始点から終点までの連続入力時間データとの３つのパラメータに基づいて、手球Ｐ１の移動量（移動方向）および速度を算出し、撞球モードを設定する。以下、図１６を参照して、変化条件データ算出処理の詳細について説明する。
【００８７】
図１６において、始点Ｓ（ｘ１、ｙ１）および終点Ｅ（ｘ２、ｙ２）とすると、ＣＰＵ２１は、終点Ｅ（ｘ２、ｙ２）と始点Ｓ（ｘ１、ｙ１）との差Δｘ＝ｘ２−ｘ１およびΔｙ＝ｙ２−ｙ１を算出する（ステップ８１）。なお、ＣＰＵ２１は、連続入力時間ｔ１を上記ステップ６０で得ている。次に、ＣＰＵ２１は、連続入力時間ｔ１＝０、または差ΔｘおよびΔｙが共に０か否かを判断する（ステップ８２）。そして、ＣＰＵ２１は、連続入力時間ｔ１＝０、または差ΔｘおよびΔｙが共に０の場合、移動フラグをＯＦＦして（ステップ８３）、当該サブルーチンによる処理を終了する。一方、ＣＰＵ２１は、連続入力時間ｔ１＞０であり、差ΔｘおよびΔｙの少なくとも一方が０でない場合、処理を次のステップ８４に進める。
【００８８】
ステップ８４において、ＣＰＵ２１は、始点Ｓおよび終点Ｅの位置座標データを用いて撞球モードを検出する。以下、図１７を参照して、撞球モード検出処理の詳細について説明する。
【００８９】
図１７において、ＣＰＵ２１は、終点Ｅおよび始点Ｓを通る直線ＳＥを演算する（ステップ１０１）。始点Ｓ（ｘ１、ｙ１）および終点Ｅ（ｘ２、ｙ２）とすると、終点Ｅおよび始点Ｓを通る直線ＳＥの式は、
【数２】
2005192986.tif 000004
となる。次に、ＣＰＵ２１は、操作用手球Ｐ２の外縁に相当する円と直線ＳＥとの２つの交点Ｑ１およびＱ２を演算する（ステップ１０２）。操作用手球Ｐ２の外縁に相当する円の式は、その半径をｒとすると、
ｘ2＋ｙ2＝ｒ2
となる。そして、直線ＳＥと上記円との交点を解くと、そのｘ座標は、
【数３】
2005192986.tif 000005
となる。ここで、Ａ＝（ｙ２−ｙ１）／（ｘ２−ｘ１）、Ｂ＝ｙ１−Ａ＊ｘ１である。そして、上記ｘ座標をそれぞれ直線ＳＥの式に代入すれば、２つの交点Ｑ１およびＱ２のｘｙ座標が求まる。なお、上記２つの交点のうち、終点Ｅ（ｘ２、ｙ２）に近い方を交点Ｑ２とする。
【００９０】
次に、ＣＰＵ２１は、上記２つの交点Ｑ１およびＱ２と上記円の中心とをそれぞれ結ぶ直線の角度を演算する（ステップ１０３）。上記角度は、ａｔａｎ（ｙ／ｘ）にステップ１０２で求めた２つの交点のｘｙ座標をそれぞれ代入することによって求まる。なお、ｘ＝０の場合、角度は９０°または２７０°に設定する。また、ｘ１＝ｘ２の場合、ステップ１０３ではそれぞれの角度をａｔａｎ（ｙ２／ｘ２）およびａｔａｎ（ｙ１／ｘ１）で求め、ｘ１＝０またはｘ２＝０の場合、角度は９０°または２７０°に設定する。
【００９１】
次に、ＣＰＵ２１は、ステップ１０３で求めた角度の差を演算する（ステップ１０４）。具体的には、交点Ｑ２に応じた角度から交点Ｑ１に応じた角度を減算する。減算結果が正であるとき、当該減算結果を角度の差とする。一方、減算結果が負であるとき、当該減算結果に３６０°を加算して角度の差とする。
【００９２】
次に、ＣＰＵ２１は、角度の差の絶対値が１３５°以下の場合（ステップ１０５でＹｅｓ）、ＣＰＵ２１は、撞球モードを「左カーブ」に設定し左カーブフラグをＯＮして（ステップ１０６）、当該サブルーチンによる処理を終了する。また、角度の差の絶対値が２２５°以上の場合（ステップ１０７でＹｅｓ）、ＣＰＵ２１は、撞球モードを「右カーブ」に設定し右カーブフラグをＯＮして（ステップ１０８）、当該サブルーチンによる処理を終了する。ここで、換言すれば、ＣＰＵ２１は、上記ステップ１０５において操作用手球Ｐ２の定義領域Ｚ３内に連続入力の始点Ｓが位置している（図１０参照）ことを検出している。また、ＣＰＵ２１は、上記ステップ１０７において操作用手球Ｐ２の定義領域Ｚ４内に連続入力の始点Ｓが位置している（図１１参照）ことを検出している。
【００９３】
一方、角度の差の絶対値が１３５°より大きく２２５°未満の場合（ステップ１０５およびステップ１０７がいずれもＮｏ）、ＣＰＵ２１は、上記円の中心を通る直線ＳＥの垂線を演算する（ステップ１０９）。次に、ＣＰＵ２１は、ステップ１０９で求めた垂線を基準とした始点Ｓおよび終点Ｅそれぞれの位置を演算する（ステップ１１０）。そして、上記垂線に対して始点Ｓおよび終点Ｅが共に定義領域Ｚ１側（図８参照）に位置する場合（ステップ１１１でＹｅｓ）、ＣＰＵ２１は、撞球モードを「押し球」に設定し押し球フラグをＯＮして（ステップ１１２）、当該サブルーチンによる処理を終了する。また、上記垂線に対して始点Ｓおよび終点Ｅが共に定義領域Ｚ２側に位置する場合（ステップ１１３でＹｅｓ）、ＣＰＵ２１は、撞球モードを「引き球」に設定し引き球フラグをＯＮして（ステップ１１４）、当該サブルーチンによる処理を終了する。さらに、上記垂線に対して始点Ｓおよび終点Ｅがそれぞれ異なる領域（具体的には、始点Ｓが定義領域Ｚ２に位置し、終点Ｅが定義領域Ｚ１側に位置する）に位置する場合（ステップ１１１およびステップ１１３がいずれもＮｏ）、ＣＰＵ２１は、撞球モードを「中心撞き」に設定し中心撞きフラグをＯＮして（ステップ１１５）、当該サブルーチンによる処理を終了する。換言すれば、ＣＰＵ２１は、上記ステップ１１１でＹｅｓと判定することによって、操作用手球Ｐ２の定義領域Ｚ１内に連続入力の始点Ｓが位置している（図１３参照）ことを検出している。また、ＣＰＵ２１は、上記ステップ１１３でＹｅｓと判定することによって、操作用手球Ｐ２の定義領域Ｚ２内に連続入力の始点Ｓおよび終点Ｅが共に位置している（図１２参照）ことを検出している。さらに、ＣＰＵ２１は、上記ステップ１１３でＮｏと判定することによって、操作用手球Ｐ２の定義領域Ｚ２内に連続入力の始点Ｓが位置し、定義領域Ｚ１内に終点Ｅが位置している（図９参照）ことを検出している。
【００９４】
ここで、ステップ１０９で演算する上記円の中心を通る直線ＳＥの垂線の式は、
ｙ＝−｛（ｘ２−ｘ１）／（ｙ２−ｙ１）｝ｘ
で求められる。そして、以下の式で導かれる２つの数値Ｃ１およびＣ２の正負によって、ＣＰＵ２１は、上記ステップ１１１およびステップ１１３の判定を行うことができる。
Ｃ１＝ｙ１＋｛（ｘ２−ｘ１）／（ｙ２−ｙ１）｝ｘ１
Ｃ２＝ｙ２＋｛（ｘ２−ｘ１）／（ｙ２−ｙ１）｝ｘ２
ステップ１１１においては、ＣＰＵ２１は、数値Ｃ１およびＣ２が共に正の場合、上記垂線に対して始点Ｓおよび終点Ｅが共に定義領域Ｚ１側に位置すると判断する。また、ステップ１１３においては、ＣＰＵ２１は、数値Ｃ１およびＣ２が共に負の場合、上記垂線に対して始点Ｓおよび終点Ｅが共に定義領域Ｚ２側に位置すると判断する。
【００９５】
図１６に戻り、ステップ８４において撞球モードを検出した後、ＣＰＵ２１は、上記ステップ８１で算出した差ΔｘおよびΔｙの絶対値を比較し、｜Δｘ｜＞｜Δｙ｜であるか否かを判断する（ステップ８５）。そして、｜Δｘ｜＞｜Δｙ｜である場合、ＣＰＵ２１は、ｘ軸方向を基準に単位時間あたりの移動量（移動方向）ｇＳｔｅｐＸおよびｇＳｔｅｐＹをそれぞれ計算し（ステップ８６）、処理を次のステップ８８に進める。具体的には、ステップ８６において、差Δｘが正の場合、ｘ軸方向の移動量ｇＳｔｅｐＸ＝１．０に設定する。また、差Δｘが負の場合、移動量ｇＳｔｅｐＸ＝−１．０に設定する。また、ｙ軸方向の移動量をｇＳｔｅｐＹ＝Δｙ／｜Δｘ｜で算出する。
【００９６】
一方、｜Δｘ｜≦｜Δｙ｜である場合、ＣＰＵ２１は、ｙ軸方向を基準に単位時間あたりの移動量（移動方向）ｇＳｔｅｐＸおよびｇＳｔｅｐＹをそれぞれ計算し（ステップ８７）、処理を次のステップ８８に進める。具体的には、ステップ８７において、差Δｙが正の場合、ｙ軸方向の移動量ｇＳｔｅｐＹ＝１．０に設定する。また、差Δｙが負の場合、移動量ｇＳｔｅｐＹ＝−１．０に設定する。また、ｘ軸方向の移動量をｇＳｔｅｐＸ＝Δｘ／｜Δｙ｜で算出する。
【００９７】
ステップ８８において、ＣＰＵ２１は、移動フラグをＯＮに設定する。次に、ＣＰＵ２１は、始点Ｓと終点Ｅとの間の距離および連続入力時間ｔ１に基づいて、手球Ｐ１の速度を計算する（ステップ８９）。始点Ｓと終点Ｅとの間の距離Ｌｓｅは、
【数４】
2005192986.tif 000006
で求められる。手球Ｐ１の速度は、連続入力時間ｔ１が短いほどその速度早くなるように算出されるが、ここでは連続入力時間ｔ１の影響を減らすように設定する。例えば、連続入力時間ｔ１を定数（例えば１６）で除算した後に平方根を取った数値ｔ１ａを用いる。そして、手球Ｐ１の速度ｇＳｐｅｅｄを
ｇＳｐｅｅｄ＝Ｌｓｅ／ｔ１ａ＋Ｓｐ１
で求める。ここで、Ｓｐ１は、最低速度定数（例えば１６）である。なお、計算された速度ｇＳｐｅｅｄが、予め設定された最高速度を超えていれば、速度ｇＳｐｅｅｄを当該最高速度に設定する。これによって、手球の速度ｇＳｐｅｅｄは、プレイヤのタッチ操作に応じて、初期値として最低速度〜最高速度の間で設定される。
【００９８】
なお、上記ステップ８６またはステップ８７で計算した移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹと、上記ステップ８９で計算した速度ｇＳｐｅｅｄとは、第１表示画面１１ａにおける手球Ｐ１の動作に応じて、任意に調整してもよい。例えば、速度ｇＳｐｅｅｄに定数（例えば８８）を乗算したり、移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹを定数（例えば１６）で除算したりして、第１表示画面１１ａに表現される手球Ｐ１の動作を調整することができる。
【００９９】
次に、ＣＰＵ２１は、左カーブフラグおよび右カーブフラグ（以下、カーブフラグと総称する）の一方がＯＮに設定されているか否かを判断する（ステップ９０）。そして、ＣＰＵ２１は、カーブフラグがＯＦＦである場合、当該サブルーチンによる処理を終了する。一方、ＣＰＵ２１は、カーブフラグがＯＮである場合、カーブ係数ｋをセットして（ステップ９１）、当該サブルーチンによる処理を終了する。カーブ係数ｋは、始点Ｓと終点Ｅとを結ぶ直線（直線ＳＥ）と操作用手球Ｐ２の中心との距離が離れるほど、その絶対値が大きく設定される角度を示しており、例えば、後述する手球Ｐ１の表示位置の移動において曲がる角度が約２°〜７°になるように設定される。具体的には、上記ステップ１０３で演算した角度を用いてカーブ係数ｋが設定される。例えば、上記角度をαとすると、撞球モードが「左カーブ」の場合にカーブ係数ｋ＝（α−６７）／２４−４．５で設定する。そして、「右カーブ」の場合にカーブ係数ｋ＝（α−２９２）／２４＋４．５で設定する。この算出式によって、「左カーブ」では負のカーブ係数ｋが設定され、「右カーブ」では正のカーブ係数ｋが設定される。なお、このカーブ係数ｋの算出式についても、第１表示画面１１ａにおける手球Ｐ１で表現される動作に応じて、任意に調整することができる。
【０１００】
図１４に戻り、ＣＰＵ２１は、ステップ６１の変化条件データ算出処理で算出された移動量や速度などの変化条件データに基づいて、手球Ｐ１の表示位置を更新し、当該手球Ｐ１が転がって移動する様子を第１表示画面１１ａに表示する（ステップ６２）。以下、図１８を参照して、手球の表示位置更新処理の詳細について説明する。
【０１０１】
図１８において、ＣＰＵ２１は、移動フラグがＯＮであるか否かを判断する（ステップ１２０）。そして、ＣＰＵ２１は、移動フラグがＯＮである場合に処理を次のステップ１２１に進め、移動フラグがＯＦＦである場合に当該サブルーチンによる処理を終了する。
【０１０２】
ステップ１２１において、ＣＰＵ２１は、単位時間あたりに手球Ｐ１を移動させる移動量や移動方向などを決定するためのループ回数をカウントするためのループカウンタＬＣを、現在設定されている速度ｇＳｐｅｅｄに応じた値に設定する。例えば、ループカウンタＬＣ＝ｇＳｐｅｅｄ／１２８＋１で算出される値（小数点以下は切り捨て）に設定し、速度ｇＳｐｅｅｄに応じた少なくとも１以上の値が設定される。なお、このループカウンタＬＣの設定値についても、第１表示画面１１ａにおける手球Ｐ１で表現される動作に応じて、任意に調整することができる。
【０１０３】
次に、ＣＰＵ２１は、手球Ｐ１の表示位置として設定されているｘｙ座標のｘ座標値に現在設定されている移動量ｇＳｔｅｐＸを加算し、当該ｘｙ座標のｙ座標値に移動量ｇＳｔｅｐＹを加算する（ステップ１２２）。そして、ＣＰＵ２１は、ステップ１２２で加算された手球Ｐ１の表示位置（ｘｙ座標）に基づいて、当該手球Ｐ１が他の物体と接触する処理を行う（ステップ１２３）。以下、図１９を参照して、手球接触処理の詳細について説明する。
【０１０４】
図１９において、ＣＰＵ２１は、ステップ１２２で加算された手球Ｐ１の表示位置（ｘｙ座標）に基づいて、当該手球Ｐ１がビリヤード台Ｄの縁と接触するか否かを判断する（ステップ１４１）。次に、ＣＰＵ２１は、手球Ｐ１がビリヤード台Ｄの縁と接触する場合、第１表示画面１１ａの上下に設置された縁との接触か否かを判断する（ステップ１４２）。そして、ＣＰＵ２１は、手球Ｐ１がビリヤード台Ｄの上下ではない縁（つまり、左右の縁）と接触する場合、現在設定されている移動量ｇＳｔｅｐＸの符号を反転して、処理を次のステップ１４５に進める。また、ＣＰＵ２１は、手球Ｐ１がビリヤード台Ｄの上下の縁と接触する場合、現在設定されている移動量ｇＳｔｅｐＹの符号を反転して、処理を次のステップ１４５に進める。
【０１０５】
ステップ１４５において、ＣＰＵ２１は、手球Ｐ１の速度ｇＳｐｅｅｄを縁との接触に対して設定された所定の減速率に基づいて減速させる。例えば、現在設定されている速度ｇＳｐｅｅｄに７／８を乗算することによって、当該速度ｇＳｐｅｅｄを減速する。そして、ＣＰＵ２１は、処理を次のステップ１４９に進める。
【０１０６】
上記ステップ１４１で手球Ｐ１がビリヤード台Ｄの縁と接触しないと判断された場合、ＣＰＵ２１は、当該手球Ｐ１がビリヤード台Ｄに設けられたポケットに入ったか否かを判断する（ステップ１４６）。そして、手球Ｐ１がポケットに入った場合、ＣＰＵ２１は、速度ｇＳｐｅｅｄを０に設定してポケットイン処理を行った後（ステップ１４７）、移動フラグをＯＦＦして（ステップ１４８）、当該サブルーチンによる処理を終了する。一方、手球Ｐ１がポケットに入っていない場合、ＣＰＵ２１は、処理を次のステップ１４９に進める。
【０１０７】
ステップ１４９において、ステップ１２２で加算された手球Ｐ１の表示位置（ｘｙ座標）に基づいて、当該手球Ｐ１が他の的球Ｔと接触するか否かを判断する。そして、ＣＰＵ２１は、手球Ｐ１が他の的球Ｔと接触する場合、処理を次のステップ１５０に進める。一方、ＣＰＵ２１は、手球Ｐ１が他の的球Ｔと接触しない場合、当該サブルーチンによる処理を終了する。
【０１０８】
ステップ１５０において、ＣＰＵ２１は、手球Ｐ１と的球Ｔとが接触した条件を検出する。ここで、接触条件は、接触した手球Ｐ１および的球Ｔそれぞれの移動方向や移動速度（移動ベクトル）の他に、手球Ｐ１と的球Ｔとが接触した角度やその接触ポイントなども含まれる。次に、ＣＰＵ２１は、ステップ１５０で検出した接触条件に基づいて、手球Ｐ１に設定されている移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹを更新する（ステップ１５１）。例えば、移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹの更新では、手球Ｐ１および的球Ｔの移動ベクトルを加算して結果を用いて行われる。また、手球Ｐ１および的球Ｔの位置に応じて、移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹの符号を変える。このように、上記接触条件に応じて、移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹの更新が行われるが、ここではこれ以上の説明を省略する。
【０１０９】
次に、ＣＰＵ２１は、ステップ１５０で検出した接触条件に基づいて、手球Ｐ１に設定されている速度ｇＳｐｅｅｄを更新する（ステップ１５２）。例えば、速度ｇＳｐｅｅｄの更新では、手球Ｐ１および的球Ｔが正面衝突したときに速度ｇＳｐｅｅｄを０に設定し、互いの球心のずれ量に応じて速度ｇＳｐｅｅｄの減速量を少なくする。本実施例では、手球Ｐ１および停止している的球Ｔとが接触した場合、手球Ｐ１の速度ｇＳｐｅｅｄを少なくとも５０％に減速する。また、手球Ｐ１の移動速度に対して、接触した的球Ｔの移動速度が速い場合、手球Ｐ１の速度ｇＳｐｅｅｄを増速させることもある。このように、上記接触条件に応じて、速度ｇＳｐｅｅｄの更新が行われるが、ここではこれ以上の説明を省略する。
【０１１０】
次に、ＣＰＵ２１は、手球Ｐ１と接触した的球Ｔにおける移動量および速度を演算する（ステップ１５３）。的球Ｔに対しても、手球Ｐ１と同様に移動量および速度の設定が行われ上記接触条件に応じて更新されるが、ここではこれ以上の説明を省略する。
【０１１１】
次に、ＣＰＵ２１は、手球Ｐ１の撞球モードが「押し球」または「引き球」に設定されているか否かを判断する（ステップ１５４）。具体的には、ＣＰＵ２１は、上記ステップ１１２でＯＮされる押し球フラグ、または上記ステップ１１４でＯＮされる引き球フラグを用いて判断する。そして、手球Ｐ１の撞球モードが「押し球」または「引き球」に設定されている場合、ＣＰＵ２１は、撞球モードに応じたカーブ係数ｋを設定して（ステップ１５５）、当該サブルーチンによる処理を終了する。一方、手球Ｐ１の撞球モードが「押し球」および「引き球」のいずれにも設定されていない場合、ＣＰＵ２１は、そのまま当該サブルーチンによる処理を終了する。ここで、ステップ１５５で設定するカーブ係数ｋは、撞球モードが「押し球」のとき、後述する手球Ｐ１の表示位置の移動において的球Ｔとの分離角が小さくなる（例えば、接触した的球Ｔを追いかける）ように設定される。また、カーブ係数ｋは、撞球モードが「引き球」のとき、手球Ｐ１の表示位置の移動において的球Ｔとの分離角が大きくなる（例えば、接触した的球Ｔから離れる）ように設定される。本実施例では、撞球モードが「押し球」のときカーブ係数ｋを＋３°に設定し、撞球モードが「引き球」のときカーブ係数ｋを−３°に設定する。なお、カーブ係数ｋの設定値については、上述した固定値でなくてもかまわない。カーブ係数ｋは、第１表示画面１１ａにおける手球Ｐ１で表現される動作に応じて、任意に調整することができ、例えば、上記接触条件に応じて設定値を変えてもかまわない。
【０１１２】
図１８に戻り、ステップ１２３の手球接触処理の後、ＣＰＵ２１は、ステップ１２２で加算された手球Ｐ１の表示位置（ｘｙ座標）に基づいて、手球Ｐ１が他の物体と接触したか否かを判断する（ステップ１２４）。手球Ｐ１と他の物体との接触については、ステップ１２３の処理結果から判断可能であり、手球Ｐ１と他の物体とが接触していない（上記ステップ１４１、１４６、１４９が全てＮｏ）場合、ＣＰＵ２１は、ループカウンタＬＣの設定値を−１する（ステップ１２５）。そして、ＣＰＵ２１は、ループカウンタＬＣの設定値が０か否かを判断し（ステップ１２６）、ループカウンタＬＣの設定値が０でない場合、上記ステップ１２２に戻って処理を繰り返す。
【０１１３】
一方、ループカウンタＬＣの設定値が０となった場合、ＣＰＵ２１は、手球Ｐ１の表示位置として現在設定されているｘｙ座標を第１ゲーム画像における手球Ｐ１の表示位置として指定し、当該手球Ｐ１を第１表示画面１１ａに表示して（ステップ１２７）、処理を次のステップ１２８に進める。このステップ１２７は、ＣＰＵ２１が単位時間毎にその処理を繰り返すステップであり、第１ゲーム画像における手球Ｐ１の表示位置も単位時間毎に更新される。ここで、手球Ｐ１の表示位置は、上記ステップ１２２で移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹが加算され、当該加算がループカウンタＬＣの設定値の数だけ繰り返されることによって更新されている。つまり、手球Ｐ１は、ループカウンタＬＣの設定値の数だけ移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹが繰り返し加算された表示位置に単位時間毎に移動して第１ゲーム画像に表示される。また、ループカウンタＬＣの設定値が速度ｇＳｐｅｅｄに応じて設定されているため、手球Ｐ１は、単位時間毎に移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹと速度ｇＳｐｅｅｄとに応じて移動して第１ゲーム画像に表示されることになる。
【０１１４】
上記ステップ１２４で手球Ｐ１が他の物体と接触した（上記ステップ１４１、１４６、１４９のいずれかがＹｅｓ）と判断した場合、ＣＰＵ２１は、手球Ｐ１の表示位置として現在設定されているｘｙ座標を第１ゲーム画像における手球Ｐ１の表示位置として指定し、当該手球Ｐ１を第１表示画面１１ａに表示して（ステップ１３６）、上記ステップ１２０に戻って処理を繰り返す。なお、ステップ１３６の処理については、上記ステップ１２７と同様であるため、詳細な説明を省略する。
【０１１５】
ＣＰＵ２１は、上記ステップ１２７で手球Ｐ１を第１ゲーム画像に表示した後、速度ｇＳｐｅｅｄが高速であるか否か（ステップ１２８）、および速度ｇＳｐｅｅｄが中速であるか否か（ステップ１２９）を判断する。これらステップ１２８および１２９では、ＣＰＵ２１が手球Ｐ１の現在の速度ｇＳｐｅｅｄを高速、中速、および低速に分類する処理であり、例えばｇＳｐｅｅｄ≧５１２を高速、５１２＞ｇＳｐｅｅｄ≧２５６を中速、２５６＞ｇＳｐｅｅｄを低速として定義する。
【０１１６】
ＣＰＵ２１は、速度ｇＳｐｅｅｄが高速である（ステップ１２８でＹｅｓ）場合、現在の速度ｇＳｐｅｅｄを摩擦係数に基づいて減算して新たな速度ｇＳｐｅｅｄを設定し（ステップ１３０）、処理を次のステップ１３３に進める。具体的には、ステップ１３０において、速度ｇＳｐｅｅｄを所定の摩擦定数（例えば２８）で除算した値を、当該速度ｇＳｐｅｅｄから減算する。また、ＣＰＵ２１は、速度ｇＳｐｅｅｄが中速である（ステップ１２９でＹｅｓ）場合、現在の速度ｇＳｐｅｅｄから定数ｂ（例えばｂ＝１６）だけ減算して新たな速度ｇＳｐｅｅｄを設定し（ステップ１３１）、処理を次のステップ１３３に進める。さらに、ＣＰＵ２１は、速度ｇＳｐｅｅｄが低速である（ステップ１２８および１２９がいずれもＮｏ）場合、現在の速度ｇＳｐｅｅｄから定数ｃ（ｂ＞ｃ；例えばｃ＝７）だけ減算して新たな速度ｇＳｐｅｅｄを設定し（ステップ１３２）、処理を次のステップ１３３に進める。なお、速度ｇＳｐｅｅｄの分類や減速値については、第１表示画面１１ａにおける手球Ｐ１で表現される動作に応じて任意に調整すればよく、例えば、さらに速度ｇＳｐｅｅｄの分類を増やしてそれぞれの分類に応じた減速値を設けてもかまわない。
【０１１７】
ステップ１３３において、ＣＰＵ２１は、速度ｇＳｐｅｅｄ≦０か否かを判断する。速度ｇＳｐｅｅｄ≦０の場合、ＣＰＵ２１は、移動フラグをＯＦＦにして（ステップ１３５）、当該サブルーチンによる処理を終了する。一方、速度ｇＳｐｅｅｄ＞０の場合、ＣＰＵ２１は、移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹの更新処理を行って（ステップ１３４）、上記ステップ１２０に戻って処理を繰り返す。つまり、速度ｇＳｐｅｅｄが０以下になるまで手球の表示位置更新処理が繰り返される。以下、図２０を参照して、移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹ更新処理の詳細について説明する。
【０１１８】
図２０において、ＣＰＵ２１は、手球Ｐ１の撞球モードとして中心撞きフラグがＯＮされているか否か（ステップ１６１）、押し球フラグまたは引き球フラグがＯＮされているか否か（ステップ１６２）、およびカーブフラグがＯＮされているか否か（ステップ１６３）をそれぞれ判断する。そして、ＣＰＵ２１は、中心撞きフラグがＯＮされている（ステップ１６１でＹｅｓ）場合、処理を次のステップ１６６に進める。また、ＣＰＵ２１は、押し球フラグまたは引き球フラグがＯＮされている（ステップ１６２でＹｅｓ）場合、ＯＮされたフラグに応じたカーブ係数ｋが設定されているか否かを判断する（ステップ１６４）。そして、ＣＰＵ２１は、ＯＮされたフラグに応じたカーブ係数ｋが設定されていない（ステップ１６４でＮｏ）場合に処理を次のステップ１６６に進め、カーブ係数ｋが設定されている（ステップ１６４でＹｅｓ）場合に処理を次のステップ１６５に進める。さらに、ＣＰＵ２１は、カーブフラグがＯＮされている（ステップ１６３でＹｅｓ）場合に処理を次のステップ１６５に進め、いずれのフラグもＯＮされていない（ステップ１６１〜１６３が全てＮｏ）場合に処理を次のステップ１６６に進める。
【０１１９】
ステップ１６５において、ＣＰＵ２１は、カーブ係数ｋの絶対値を所定量減算して、処理を次のステップ１６６に進める。例えば、ＯＮされたカーブフラグに応じてカーブ係数ｋが設定されている場合、ＣＰＵ２１は、カーブ係数ｋの絶対値を０．１減算する。また、ＯＮされた押し球フラグまたは引き球フラグに応じてカーブ係数ｋが設定されている場合、ＣＰＵ２１は、カーブ係数ｋの絶対値を０．２減算する。なお、カーブ係数ｋの減算値ついては、第１表示画面１１ａにおける手球Ｐ１で表現される動作に応じて任意に調整してもかまわない。
【０１２０】
ステップ１６６において、ＣＰＵ２１は、カーブ係数ｋに基づいて移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹを更新し、当該サブルーチンによる処理を終了する。なお、カーブ係数ｋが未設定である場合、カーブ係数ｋ＝０とする。具体的には、ＣＰＵ２１は、移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹを、以下の式に基づいて更新する。
ｇＳｔｅｐＸ＝ｃｏｓｋ＊ｇＳｔｅｐＸ  −  ｓｉｎｋ＊ｇＳｔｅｐＹ
ｇＳｔｅｐＹ＝ｓｉｎｋ＊ｇＳｔｅｐＸ  ＋  ｃｏｓｋ＊ｇＳｔｅｐＹ
ここで、左辺のｇＳｔｅｐＸおよびｇＳｔｅｐＹは、それぞれ更新後の移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹを示している。また、右辺のｇＳｔｅｐＸおよびｇＳｔｅｐＹは、それぞれ更新前の移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹを示している。この更新によって、更新後の移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹは、更新前の移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹが原点を中心に角度ｋだけ回転させた値となる。上述したように移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹは、手球Ｐ１が単位時間毎に移動するパラメータであるため、上記ステップ１６６で移動量ｇＳｔｅｐＸおよびｇＳｔｅｐＹを更新することによって手球Ｐ１を角度ｋでカーブするように第１ゲーム画像で表現することができる。
【０１２１】
図１４に戻り、ステップ６２における手球の表示位置更新処理の後、ＣＰＵ２１は、ゲームを終了するか否かを判断する（ステップ６３）。そして、ＣＰＵ２１は、ゲームが終了するまで、上記ステップ５４〜ステップ６２の処理を繰り返して実行する。
【０１２２】
このように、第２の実施形態によれば、上述した第１の実施形態における効果に加えて、操作対象図柄に対して与えた入力の変化、すなわちタッチパネル１３をタッチ操作する入力パターンに応じて、その入力状況が図形（二等辺三角形Ｔｒ）で描画されるため、現在の入力状況を随時プレイヤに示すことができる。また、第２の実施形態では、第１表示画面１１ａに表示されているプレイヤキャラクタ（手球Ｐ１）に対応するキャラクタ図柄（操作用手球Ｐ２）を領域分割して、さらに当該プレイヤキャラクタの表示態様を変化させるバリエーションを増やして、ゲームの興趣性を増加させている。一方、一般的にタッチ操作の対象となるキャラクタ図柄を領域分割して上記バリエーションを増やす場合、タッチ操作を行う領域が小さくなりプレイヤが望む操作が困難になることが考えられる。しかしながら、第２の実施形態によれば、第２表示画面１２ａにプレイヤキャラクタよりも大きく上記キャラクタ図柄を表示させているので、領域分割されていてもプレイヤの所望の箇所を比較的正確に指示させることができる。また、キャラクタ図柄は、プレイヤキャラクタを移動させる方向を基準にプレイヤキャラクタの表示態様の変化が予想できるように領域分割されているため、タッチ操作から直感的にプレイヤキャラクタの変化を予想可能にできる。また、プレイヤのタッチ操作は、第２表示画面１２ａに表示されるキャラクタ図柄に対する始点および終点を入力するだけであるので、ゲーム操作の複雑性・困難性のレベルが上がりすぎるのを防止することができ、プレイヤオブジェクトの多様な移動を簡単な操作で実現することができる。
【０１２３】
なお、上述した第２の実施形態では、基本的には始点Ｓの位置に基づいて撞球モードが設定されるが（撞球モードが「中心撞き」および「引き球」の区別のため、終点Ｅの位置が考慮される；図９〜図１３参照）、終点Ｅの位置に基づいて撞球モードを設定してもかまわない。例えば、終点Ｅが定義領域Ｚ３内に位置する場合に撞球モード「左カーブ」に設定し、終点Ｅが定義領域Ｚ４内に位置する場合に撞球モード「右カーブ」に設定し、終点Ｅが定義領域Ｚ２内に位置する場合に撞球モード「引き球」に設定し、終点Ｅが定義領域Ｚ１内に位置する場合に撞球モード「中心撞き」に設定し、始点Ｓおよび終点Ｅが共に定義領域Ｚ１内に位置する場合に撞球モード「押し球」に設定すれば、基本的に終点Ｅの位置に基づいた撞球モードを設定できる。
【０１２４】
また、上述した第１および第２の実施形態では、図１に示したように、物理的に２つの表示装置である第１ＬＣＤ１１の第１表示画面１１ａに第１ゲーム画像を、第２ＬＣＤ１２の第２表示画面１２ａに第２ゲーム画像を表示するゲーム装置１について説明したが、本発明はこのようなゲーム装置１に実行されるゲームプログラムに限定されない。例えば、単一の物理的な表示装置を備えるゲーム装置であって、当該表示装置の表示画面を二分割して利用してもよい。この単一の表示装置を備えるゲーム装置の例を図２２に示す。なお、上述した実施例と同じ構成には同一の符号を付しその詳細な説明を省略する。
【０１２５】
図２２に示すように、ゲーム装置１は、上述した第１ＬＣＤ１１および第２ＬＣＤ１２の代わりに単一のＬＣＤ１００を備える。ＬＣＤ１００の画面全体は、タッチパネル１８に覆われている。そして、ＬＣＤ１００の画面は、ゲームプログラムまたはモニタプログラムによって第１表示画面１００Ｌおよび第２表示画面１００Ｒの少なくとも２つの表示画面に分割される。そして、ゲーム装置１のコンピュータは、第２表示画面１００Ｒに対応するタッチパネル１８の領域であり、かつ第２表示画面１００Ｒに表示される図柄に対する入力の変化を検出し、上述した第１および第２の実施形態と同様の処理を行う。これによって、第１表示画面１００Ｌまたは第２表示画面１００Ｒのゲーム画像等を変化させる。また、縦長サイズのＬＣＤを上下の表示画面に分割（すなわち、物理的には１つで、表示サイズが縦に２画面分あるＬＣＤ）して、ゲーム装置１を構成してもかまわない。すなわち、物理的に１つの画面を２つに分割して使用することにより第１および第２ゲーム画像を表示してもかまわない。このように変形実施することによって、従来からあるタッチパネル付の表示装置を備えたゲーム装置等であっても、本発明が適用されるゲームを提供することができる。
【産業上の利用可能性】
【０１２６】
本発明は、少なくとも２つの表示画面とタッチパネルとを備えたゲーム装置などにおいて、それらの表示画面を駆使しながらゲームを進行させるゲームプログラムおよびそのゲーム装置等として有用である。
【図面の簡単な説明】
【０１２７】
【図１】本発明の第１および第２の実施形態に係るゲーム装置１の外観図
【図２】図１のゲーム装置１の構成を示すブロック図
【図３】本発明の第１の実施形態に係るゲームプログラムによって第１表示画面１１ａおよび第２表示画面１２ａにそれぞれ表示される第１ゲーム画像および第２ゲーム画像の一画面例
【図４】図３の第２表示画面１２ａに入力の変化を与えた場合に、第１表示画面１１ａの第１ゲーム画像が変化する一画面例
【図５】本発明の第１の実施形態に係るゲームプログラムによって実行される処理を示すフローチャート
【図６】図２の第１ＶＲＡＭ２７、第２ＶＲＡＭ２８、およびタッチパネル１３の概念を示す図
【図７】本発明の第２の実施形態に係るゲームプログラムによって第１表示画面１１ａおよび第２表示画面１２ａにそれぞれ表示される第１ゲーム画像および第２ゲーム画像の一画面例
【図８】図７の操作用手球Ｐ２を複数の定義領域Ｚ１〜Ｚ４に分割した一例
【図９】図７の操作用手球Ｐ２の定義領域Ｚ２内に始点Ｓが位置し、定義領域Ｚ１内に終点Ｅが位置する場合に、第１表示画面１１ａの第１ゲーム画像が変化する一画面例
【図１０】図７の操作用手球Ｐ２の定義領域Ｚ３内に始点Ｓが位置し、操作用手球Ｐ２の表示領域外に終点Ｅが位置する場合に、第１表示画面１１ａの第１ゲーム画像が変化する一画面例
【図１１】図７の操作用手球Ｐ２の定義領域Ｚ４内に始点Ｓが位置し、操作用手球Ｐ２の表示領域外に終点Ｅが位置する場合に、第１表示画面１１ａの第１ゲーム画像が変化する一画面例
【図１２】図７の操作用手球Ｐ２の定義領域Ｚ２内に始点Ｓおよび終点Ｅが共に位置する場合に、第１表示画面１１ａの第１ゲーム画像が変化する一画面例
【図１３】図７の操作用手球Ｐ２の定義領域Ｚ１内に始点Ｓが位置し、操作用手球Ｐ２の表示領域外に終点Ｅが位置する場合に、第１表示画面１１ａの第１ゲーム画像が変化する一画面例
【図１４】本発明の第２の実施形態に係るゲームプログラムによって実行される処理を示すフローチャート
【図１５】図１４のステップ５７におけるタッチパネル入力処理の詳細な処理を示すサブルーチン
【図１６】図１４のステップ６１における変化条件データ算出処理の詳細な処理を示すサブルーチン
【図１７】図１６のステップ８４における撞球モード検出処理の詳細な処理を示すサブルーチン
【図１８】図１４のステップ６２における手球の表示位置更新処理の詳細な処理を示すサブルーチン
【図１９】図１８のステップ１２３における手球接触処理の詳細な処理を示すサブルーチン
【図２０】図１８のステップ１３４におけるｇＳｔｅｐＸ、ｇＳｔｅｐＹ更新処理の詳細な処理を示すサブルーチン
【図２１】図１５のステップ７４で表示される二等辺三角形Ｔｒの生成方法を説明するための図
【図２２】本発明におけるゲーム装置１の別形態を例示した外観図
【符号の説明】
【０１２８】
１…ゲーム装置
１１…第１ＬＣＤ
１１ａ、１００Ｌ…第１表示画面
１２…第２ＬＣＤ
１２ａ、１００Ｒ…第２表示画面
１３、１８…タッチパネル
１４…操作キー
１５…スピーカ
１６…スタイラス
１７…カートリッジ
２１…ＣＰＵ
２２…ＷＲＡＭ
２３…第１ＧＰＵ
２４…第２ＧＰＵ
２５…Ｉ／Ｆ回路
２６…コネクタ
２７…第１ＶＲＡＭ
２８…第２ＶＲＡＭ
１００…ＬＣＤ
【図１】
2005192986.tif 000007
【図２】
2005192986.tif 000008
【図３】
2005192986.tif 000009
【図４】
2005192986.tif 000010
【図５】
2005192986.tif 000011
【図６】
2005192986.tif 000012
【図７】
2005192986.tif 000013
【図８】
2005192986.tif 000014
【図９】
2005192986.tif 000015
【図１０】
2005192986.tif 000016
【図１１】
2005192986.tif 000017
【図１２】
2005192986.tif 000018
【図１３】
2005192986.tif 000019
【図１４】
2005192986.tif 000020
【図１５】
2005192986.tif 000021
【図１６】
2005192986.tif 000022
【図１７】
2005192986.tif 000023
【図１８】
2005192986.tif 000024
【図１９】
2005192986.tif 000025
【図２０】
2005192986.tif 000026
【図２１】
2005192986.tif 000027
【図２２】
2005192986.tif 000028