ゲームプログラムおよびゲーム装置
【構成】 ゲーム装置10はLCD14を含み、このLCD14上にタッチパネル22が設けられる。プレイヤオブジェクトが敵オブジェクトと遭遇すると、LCD14に戦闘画面が表示される。プレイヤは、スティック24等により、敵オブジェクトを囲むように、タッチパネル22上でスライド操作して、当該敵オブジェクトを取得しようとする。このとき、既に取得した敵オブジェクト(影響オブジェクト)を選択すると、その影響オブジェクトが有する能力(効果)を発動することができる。たとえば、囲み線に従って炎が発生する。この炎が敵オブジェクトに当たると、敵オブジェクトにダメージが与えられ、その移動速度が低下したり、移動を停止したりする。
【効果】 先に取得したオブジェクトを用いることにより操作の難易度を変化させることができる。
【効果】 先に取得したオブジェクトを用いることにより操作の難易度を変化させることができる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明はゲームプログラムおよびゲーム装置に関し、特にたとえば、仮想空間内のオブジェクトを画面に表示する表示装置と、少なくとも画面上の位置を指定するためのポインティングデバイスとを備える、ゲーム装置およびそのゲームプログラムに関する。
【背景技術】
【0002】
この種のゲーム装置の一例が非特許文献1に開示される。この非特許文献1に開示されるゲームでは、敵オブジェクトやコインのようなアイテムを囲むように、タッチパネル上で円を描くと、当該円に従って複数の雲オブジェクトが表示され、正しく円を描いた場合には、当該複数の雲オブジェクトが風船オブジェクトに変化される。このとき、風船オブジェクト内において、敵オブジェクトはコインに変化し(コインはそのまま)、プレイヤオブジェクトが当該風船オブジェクトに触れると、コインを取得することができる。
【非特許文献1】http://www.nintendo.co.jp/ds/ayij/index.html
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、非特許文献1の技術では、敵オブジェクトやアイテムを囲むように操作することにより、風船オブジェクトにコインのようなアイテムを閉じ込めて、当該アイテムを取得し易くするだけであり、その後のアイテム取得やゲーム展開に何ら影響を及ぼすことがない。このため、プレイヤは囲む敵オブジェクトの種類やアイテムを何ら考慮する必要がなく、ゲームの面白味に欠けてしまう恐れがある。
【0004】
それゆえに、この発明の主たる目的は、新規な、ゲームプログラムおよびゲーム装置を提供することである。
【0005】
この発明の他の目的は、ゲームの面白味を増大させることができる、ゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【0006】
請求項1の発明は、仮想空間内のオブジェクトを画面に表示する表示装置と、少なくとも画面上の位置を指定するためのポインティングデバイスとを備えるゲーム装置のゲームプログラムである。このゲームプログラムは、ゲーム装置のプロセサを、入力座標検出手段、線分算出手段、閉領域判断手段、囲み判断手段、影響オブジェクト記憶制御手段、および難易度変化手段として機能させる。入力座標検出手段は、ポインティングデバイスによって指定される画面上の位置を示す入力座標を所定時間毎に検出する。線分算出手段は、入力座標検出手段によって検出された前回の入力座標と今回の入力座標とを結ぶ線分を算出する。閉領域判断手段は、線分算出手段によって算出された複数の線分によって閉領域が形成されたか否かを判断する。囲み判断手段は、閉領域判断手段によって閉領域が形成されたことが判断されたとき、当該閉領域にオブジェクトが含まれるかどうかを判断する。影響オブジェクト記憶制御手段は、囲み判断手段によってオブジェクトが閉領域に含まれることが判断されたとき、当該オブジェクトを影響オブジェクトとする取得情報を記憶手段に記憶する。そして、難易度変化手段は、記憶手段に記憶された取得情報が示す影響オブジェクトに基づいて、他のオブジェクトの囲み難易度を変化させる。
【0007】
請求項1の発明では、ゲーム装置(10:実施例で相当する参照符号。以下、同じ。)は、仮想空間内のオブジェクト(102,104,122)を画面に表示する表示装置(14)と、少なくとも画面上の位置を指定するためのポインティングデバイス(22)とを備える。ゲームプログラムは、このゲーム装置(10)のプロセサ(42)を、入力座標検出手段(42,S71,S73)、線分算出手段(42,S85)、閉領域判断手段(42,S113)、囲み判断手段(42,S121)、影響オブジェクト記憶制御手段(42,S35,S37)および難易度変化手段(42,S19,S169)として機能させる。入力座標検出手段(42,S71,S73)は、ポインティングデバイス(22)によって指定される画面上の位置を示す入力座標を所定時間毎に検出する。線分算出手段(42,S85)は、入力座標検出手段(42,S71,S73)によって検出された前回の入力座標と今回の入力座標とを結ぶ線分を算出する。つまり、時間的に連続する2点を結ぶ線分が求められる。閉領域判断手段(42,S113)は、線分算出手段(42,S85)によって算出された複数の線分によって閉領域が形成されたか否かを判断する。たとえば、今回算出した線分がそれ以前に算出した線分と交差するか否かを判断する。囲み判断手段(42,S121)は、閉領域判断手段によって閉領域が形成されたことが判断されたとき、つまり複数の線分による閉多角形が形成されたとき、その閉領域(閉多角形)にオブジェクト(実施例では、122)が含まれるかどうかを判断する。影響オブジェクト記憶制御手段(42,S35,S37)は、オブジェクト(122)が閉領域に含まれることが判断されたとき(121で“YES”)、このオブジェクト(122)を影響オブジェクトとする取得情報(72e)を記憶手段(48)に記憶する。難易度変化手段(42,S19,S169)は、記憶手段(48)が示す影響オブジェクトに基づいて、他のオブジェクト(122)の囲み難易度を変化させる。
【0008】
第1の発明によれば、既に取得したオブジェクトに基づいて、他のオブジェクトを囲み難易度を変化させるので、単にオブジェクトを取得するようなゲームのように、ゲームが単調になることがない。また、取得するオブジェクトを考慮しながらプレイする必要があるので、ゲームの面白味を増大させることができる。
【0009】
請求項2の発明は請求項1に従属し、プロセサを、囲み判断手段によってオブジェクトが閉領域に含まれることが判断された回数をカウントする囲み回数カウント手段、および囲み回数カウント手段によってカウントされた回数が所定回数に達したか否かを判断する囲み回数判断手段としてさらに機能させ、影響オブジェクト記憶制御手段は、囲み回数判断手段によって囲み回数が所定回数に達したことが判断されたとき、オブジェクトを影響オブジェクトとする取得情報を記憶手段に記憶する。
【0010】
請求項2の発明では、ゲームプログラムは、プロセサ(42)を囲み回数カウント手段(42,S123)および囲み回数判断手段(42,S125)としてさらに機能させる。囲み回数カウント手段(42,S123)は、オブジェクト(122)が閉領域に含まれることが判断された回数をカウントする。囲み回数判断手段(42,S125)は、囲み回数カウント手段(42,S123)によってカウントされた回数が所定回数に達したか否かを判断する。たとえば、所定回数は各オブジェクトに異なる値が設定される。影響オブジェクト記憶制御手段(42,S35,S37)は、囲み回数が所定回数に達したとき(S125で“YES”)、オブジェクトを影響オブジェクトとする取得情報(72e)を記憶手段(48)に記憶する。
【0011】
請求項2の発明によれば、所定回数を各オブジェクトで異なる値に設定することにより、オブジェクト毎に取得する難易度を変化させることができる。したがって、たとえば、珍しいオブジェクトや囲み難易度を大幅に変化させるようなオブジェクトに対しては、所定回数を比較的大きい値に設定して、ゲームの困難性や面白味を増大させることができる。
【0012】
請求項3の発明は請求項2に従属し、プロセサを、入力座標検出手段によって入力座標が検出されなかったとき、または、オブジェクトが線分に接触したとき、囲み回数カウント手段によってカウントされた囲み回数をリセットする囲み回数リセット手段としてさらに機能させる。
【0013】
請求項3の発明では、ゲームプログラムは、プロセサ(42)を囲み回数リセット手段(42,S81,S161)としてさらに機能させる。囲み回数リセット手段(42,S81,S161)は、入力座標検出手段(42,S71,S73)によって入力座標が検出されなかったとき(S71で“NO”)、または、オブジェクト(122)が線分に接触したとき(S151で“YES”)、囲み回数カウント手段(42,S123)によってカウントされた囲み回数をリセットする。したがって、たとえば、囲み操作の回数が所定回数に達する前に囲み操作を止めたり、オブジェクト(22)が線分に接触ないし衝突または攻撃したりした場合には、囲み回数がリセットされる。
【0014】
請求項3の発明によれば、囲み操作が連続的でない場合やオブジェクトの衝突により邪魔をされた場合には、それまでにカウントされた囲み回数をリセットするので、オブジェクトを取得するための難易度を上げることが出来る。
【0015】
請求項4の発明は1ないし3のいずれかに従属し、難易度変化手段は、一定期間だけ、または一定回数だけ、囲み難易度を変化させ、一定期間が経過したとき、または一定回数を超えたとき、影響オブジェクトについての取得情報を記憶手段から消去する消去手段としてプロセサをさらに機能させる。
【0016】
請求項4の発明では、たとえば、難易度変化手段(42,S19,S169)は、一定期間だけ、または一定回数だけ、囲み難易度を変化させる。消去手段(42,S107)は、一定期間が経過したとき(S107で“YES”)、または一定回数を超えたとき、影響オブジェクトについての取得情報(72e)を記憶手段(48)から消去する。
【0017】
請求項4の発明によれば、難易度が変化されるのは、一定期間または一定回数であり、有限であるため、ゲームが簡単になり過ぎたり、難しくなり過ぎたりすることがない。したがって、ゲームに飽きが来るのを防止することができる。
【0018】
請求項5の発明は請求項1ないし4のいずれかに従属し、難易度変化手段は、オブジェクトの移動速度を変化させる。
【0019】
請求項5の発明では、難易度変化手段(42,S19,S169)は、オブジェクト(122)の移動速度を変化させる。たとえば、オブジェクト(122)の移動速度を速くしたり、遅くしたりする。
【0020】
請求項5の発明によれば、オブジェクトの移動速度を変化させることにより囲み操作の難易度を変化させることができ、ゲームの面白味を増大させることができる。
【0021】
請求項6の発明は請求項1ないし4のいずれかに従属し、難易度変化手段は、オブジェクトの移動可能範囲を変化させる。
【0022】
請求項6の発明では、難易度変化手段(42,S19,S169)は、オブジェクト(122)の移動可能範囲を変化させる。たとえば、オブジェクト(122)の移動可能範囲を広げたり、狭めたりする。
【0023】
請求項6の発明においても、囲み操作の難易度を変化させることができ、ゲームの面白味を増大させることができる。
【0024】
請求項7の発明は請求項2ないし4のいずれかに従属し、難易度変化手段は、囲み回数カウント手段のカウント値を変化させる。
【0025】
請求項7の発明では、難易度変化手段(42,S19,S169)は、囲み回数カウント手段(42,S123)のカウント値を変化させる。たとえば、カウント値を増加(倍増)させたり、低減(半減)させたりする。したがって、少ない囲み回数で所定回数に達するようにしたり、実際の所定回数よりも多い囲み回数で当該所定回数に達するようにしたりできる。
【0026】
請求項7の発明においても、囲み操作の難易度を変化させることができ、ゲームの面白味を増大させることができる。
【0027】
請求項8の発明は請求項1ないし4のいずれかに従属し、描画可能な線の長さは一定であり、難易度変化手段は、描画可能な線の長さを変化させる。
【0028】
請求項8の発明では、たとえば、囲み操作によって、描画可能な線(124)の長さは一定である。難易度変化手段(42,S19,S169)は、描画可能な線(124)の長さを変化させる。つまり、描画可能な線(124)が長ければ、比較的大きい範囲を囲みことができるため、囲み操作が容易であり、逆に、描画可能な線(124)が短ければ、比較的狭い範囲しか囲むことができず、囲み操作が困難である。
【0029】
請求項8の発明においても、囲み操作の難易度を変化させることができ、ゲームの面白味を増大させることができる。
【0030】
請求項9の発明は請求項1ないし8のいずれかに従属し、線分算出手段によって算出された線分を記憶手段に記憶された取得情報に対応する影響オブジェクトの属性に基づく色で表示する線分表示手段としてプロセサをさらに機能させる。
【0031】
請求項9の発明では、ゲームプログラムは、プロセサ(42)を線分表示手段(42,S89)としてさらに機能させる。線分表示手段(42,S89)は、線分算出手段(42,S85)によって算出された線分を記憶手段(48)に記憶された取得情報(72e)に対応する影響オブジェクトの属性に基づく色で表示する。
【0032】
請求項9の発明によれば、選択した影響オブジェクトの属性を視覚的に識別可能にすることができる。
【0033】
請求項10の発明は、仮想空間内のオブジェクトを画面に表示する表示装置と、少なくとも画面上の位置を指定するためのポインティングデバイスとを備えるゲーム装置である。このゲーム装置は、入力座標検出手段、線分算出手段、閉領域判断手段、囲み判断手段、影響オブジェクト記憶制御手段、および難易度変化手段を備える。入力座標検出手段は、ポインティングデバイスによって指定される画面上の位置を示す入力座標を所定時間毎に検出する。線分算出手段は、入力座標検出手段によって検出された前回の入力座標と今回の入力座標とを結ぶ線分を算出する。閉領域判断手段は、線分算出手段によって算出された複数の線分によって閉領域が形成されたか否かを判断する。囲み判断手段は、閉領域判断手段によって閉領域が形成されたことが判断されたとき、当該閉領域にオブジェクトが含まれるかどうかを判断する。影響オブジェクト記憶制御手段は、囲み判断手段によってオブジェクトが閉領域に含まれることが判断されたとき、当該オブジェクトを影響オブジェクトとする取得情報を記憶手段に記憶する。そして、難易度変化手段は、記憶手段に記憶された取得情報が示す影響オブジェクトに基づいて、他のオブジェクトの囲み難易度を変化させる。
【0034】
請求項10の発明においても、請求項1の発明と同様に、ゲームの面白味を増大させることができる。
【発明の効果】
【0035】
この発明によれば、取得したオブジェクトに基づいて他のオブジェクトを囲む際の難易度を変化させるので、プレイヤは取得するオブジェクトを考慮しながらゲームをプレイすることができる。つまり、ゲームの面白味を増大させることができる。
【0036】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0037】
<第1実施例>
図1を参照して、この発明の第1実施例であるゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。このLCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この第1実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
【0038】
なお、この第1実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【0039】
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも少し大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aよりも横長に選ばれ、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。また、下側ハウジング16bには、音抜き孔18が形成されるとともに、操作スイッチ20(20a,20b,20c,20d,20e,20Lおよび20R)が設けられる。
【0040】
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
【0041】
操作スイッチ20は、方向指示スイッチ(十字スイッチ)20a、スタートスイッチ20b、セレクトスイッチ20c、動作スイッチ(Aボタン)20d、動作スイッチ(Bボタン)20e、動作スイッチ(Lボタン)20Lおよび動作スイッチ(Rボタン)20Rを含む。スイッチ20a,20bおよび20cは、下側ハウジング16bの一方主面であり、LCD14の左側に配置される。また、スイッチ20dおよび20eは、下側ハウジング16bの一方主面であり、LCD14の右側に配置される。さらに、スイッチ20Lおよびスイッチ20Rは、それぞれ、下側ハウジング16bの上端(天面)の一部であり、上側ハウジング16aとの連結部以外に当該連結部を挟むように、左右に配置される。
【0042】
方向指示スイッチ20aは、ディジタルジョイスティックとして機能し、4つの押圧部の1つを操作することによって、プレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。スタートスイッチ20bは、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止(Pause)したりする等に用いられる。セレクトスイッチ20cは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【0043】
動作スイッチ20dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ20eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ20cで選択したゲームモードの変更やAボタン20dで決定したアクションの取り消し等のために用いられる。
【0044】
動作スイッチ(左押しボタン)20Lおよび動作スイッチ(右押しボタン)20Rは、プッシュボタンで構成され、左押しボタン(Lボタン)20Lおよび右押しボタン(Rボタン)20Rは、Aボタン20dおよびBボタン20eと同様の操作に用いることができ、また、Aボタン20dおよびBボタン20eの補助的な操作に用いることができる。
【0045】
また、LCD14の上面には、タッチパネル22が装着される。タッチパネル22としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル22は、その上面(検出面)をスティック24ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック24等」という場合がある。)で、押圧したり、撫でたり、触れたりすることにより操作すると、スティック24等の操作位置(タッチ位置)の座標(タッチ座標)を検出して、検出した座標に対応する座標データを出力する。
【0046】
この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル22の検出面の検出精度もその解像度に対応して256dot×192dotとしてある。ただし、タッチパネル22の検出面の検出精度は、LCD14の表示面の解像度よりも低くてもよく、高くてもよい。
【0047】
LCD12およびLCD14には異なるゲーム画像(ゲーム画面)を表示することができる。たとえば、一方のLCD(たとえば、LCD12)にゲームをプレイするためのゲーム画面を表示し、他方のLCD(たとえば、LCD14)に当該ゲームを操作するための文字情報を入力したり、所定の画像(アイコンなど)を指示したりするためのゲーム画面(操作画面)を表示することができる。したがって、プレイヤはスティック24等でタッチパネル22を操作することにより、LCD14の画面上で、文字情報(コマンド)を入力したり、所定の画像(アイコンなど)を指示したりすることができる。
【0048】
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この第1実施例では、LCD14)の上面にタッチパネル22が設けられるので、2画面(12,14)と2系統の操作部(20,22)とを有する構成になっている。
【0049】
また、この第1実施例では、スティック24は、たとえば上側ハウジング16aの側面(右側面)近傍に設けられる収納部(収納穴)26に収納することができ、必要に応じて取り出される。ただし、スティック24を設けない場合には、収納部26を設ける必要もない。
【0050】
さらに、ゲーム装置10はメモリカード(またはゲームカートリッジ)28を含み、このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは下端(底面)に設けられる挿入口30から挿入される。図1では省略するが、挿入口30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ46(図2参照)が設けられており、したがって、メモリカード28が挿入口30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア42(図2参照)がメモリカード28にアクセス可能となる。
【0051】
なお、図1では表現できないが、下側ハウジング16bの音抜き孔18と対応する位置であり、この下側ハウジング16bの内部にはスピーカ32(図2参照)が設けられる。
【0052】
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、電源スイッチ、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【0053】
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板40を含み、この電子回路基板40にはCPUコア42等の回路コンポーネントが実装される。CPUコア42は、バス44を介してコネクタ46に接続されるととともに、RAM48、第1のグラフィック処理ユニット(GPU)50、第2のGPU52、入出カインターフエース回路(以下、「I/F回路」という。)54およびLCDコントローラ60が接続される。
【0054】
コネクタ46には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ46と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア42は、ROM28aおよびRAM28bにアクセスすることができるのである。
【0055】
ROM28aは、ゲーム装置10で実行すべきゲーム(仮想ゲーム)のためのゲームプログラム、画像(キャラクタ画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像など)データおよびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)28bは、そのゲームの途中データやゲームの結果データを記憶(セーブ)する。
【0056】
RAM48は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア42は、メモリカード28のROM28aに記憶されたゲームプログラム、画像データおよび音データ等をRAM48にロードし、ロードしたゲームプログラムを実行する。また、CPUコア42は、ゲームの進行に応じて一時的に発生するデータ(ゲームデータやフラグデータ)をRAM48に記憶しつつゲーム処理を実行する。
【0057】
なお、ゲームプログラム、画像データおよび音データ等は、ROM28aから一度に全部、または部分的かつ順次的に読み出され、RAM48に記憶(ロード)される。
【0058】
GPU50およびGPU52は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア42からのグラフィックスコマンド(graphics command :作画命令)を受け、そのグラフィックスコマンドに従ってゲーム画像データを生成する。ただし、CPUコア42は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU50およびGPU52のそれぞれに与える。
【0059】
また、GPU50には、第1のビデオRAM(以下、「VRAM」という。)56が接続され、GPU52には、第2のVRAM58が接続される。GPU50およびGPU52が作画コマンドを実行するにあたって必要なデータ(画像データ:キャラクタデータやテクスチャ等のデータ)は、GPU50およびGPU52が、それぞれ、第1のVRAM56および第2のVRAM58にアクセスして取得する。なお、CPUコア42は、描画に必要な画像データをGPU50およびGPU52を介して第1のVRAM56および第2のVRAM58に書き込む。GPU50はVRAM56にアクセスして描画のためのゲーム画像データを作成し、GPU52はVRAM58にアクセスして描画のためのゲーム画像データを作成する。
【0060】
VRAM56およびVRAM58は、LCDコントローラ60に接続される。LCDコントローラ60はレジスタ62を含み、レジスタ62はたとえば1ビットで構成され、CPUコア42の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ60は、レジスタ62のデータ値が「0」である場合には、GPU50によって作成されたゲーム画像データをLCD12に出力し、GPU52によって作成されたゲーム画像データをLCD14に出力する。また、LCDコントローラ60は、レジスタ62のデータ値が「1」である場合には、GPU50によって作成されたゲーム画像データをLCD14に出力し、GPU52によって作成されたゲーム画像データをLCD12に出力する。
【0061】
なお、LCDコントローラ60は、VRAM56およびVRAM58から直接ゲーム画像データを読み出したり、GPU50およびGPU52を介してVRAM56およびVRAM58からゲーム画像データを読み出したりする。
【0062】
I/F回路54には、操作スイッチ20,タッチパネル22およびスピーカ32が接続される。ここで、操作スイッチ20は、上述したスイッチ20a,20b,20c,20d,20e,20Lおよび20Rであり、操作スイッチ20が操作されると、対応する操作信号(操作データ)がI/F回路54を介してCPUコア42に入力される。また、タッチパネル22からの座標データがI/F回路54を介してCPUコア42に入力される。さらに、CPUコア42は、ゲーム音楽(BGM)、効果音またはゲームキャラクタ(ゲームオブジェクト)の音声(擬制音)などのゲームに必要な音データをRAM48から読み出し、I/F回路54を介してスピーカ32から出力する。
【0063】
このような構成のゲーム装置10では、RPGのような仮想ゲームをプレイすることができる。この第1実施例の仮想ゲームでは、プレイヤは、プレイヤオブジェクトを2次元の仮想空間内で移動させ、遭遇した敵オブジェクトと戦闘したり、敵オブジェクトを取得(以下、「キャプチャ」ということがある。)したりして、ゲームを進行させ、ボスオブジェクトを倒すなどの最終的な目標を達成する。
【0064】
たとえば、図3(A)に示すようなゲーム画面100がLCD14に表示される。このゲーム画面100は、仮想空間の一部(フィールド)を表示したものであり、プレイヤオブジェクト102および村人(町人)などのノンプレイヤオブジェクト104が表示される。プレイヤオブジェクト102は、村人のようなノンプレイヤオブジェクト104と会話することにより、ゲーム進行の手がかりとなる内容を聞き出す。また、図示は省略するが、上述したように、LCD14上にはタッチパネル22が設けられる。したがって、スティック24等でLCD14上のプレイヤオブジェクト102をドラッグすることにより、当該プレイヤオブジェクト102をフィールド内で移動させることができる。ただし、操作スイッチ20(十字スイッチ20a)によってプレイヤオブジェクト102を移動させることもできる。
【0065】
なお、図3(A)では(以下、図3(B),図4(A),図4(B)および図5において同じ。)、分かり易く示すために、背景オブジェクトは省略してある。また、後述するプレイヤの体力値など、ゲームに必要な情報を可視表示(棒グラフや数値によって表示)してもよいが、ここでは省略してある。ただし、ゲームに必要な情報は、LCD12に表示するようにしてもよい。
【0066】
図3(B)はLCD14に表示される戦闘シーンにおいて表示されるゲーム画面(以下、説明の都合上、「キャプチャ画面」という。)120の一例を示す図解図である。キャプチャ画面120には、敵オブジェクト122が表示される。図3(B)に示すキャプチャ画面120は、図3(A)に示したようなゲーム画面100において、プレイヤオブジェクト102がフィールドを移動し、敵オブジェクト122に遭遇して、戦闘シーン(戦闘モード)に移行したときに表示される。
【0067】
ここで、プレイヤがスティック24等を用いて敵オブジェクト122を囲むようにタッチパネル22上を撫でる(スライドする)と、図4(A)に示すようなキャプチャ画面120が表示される。以下、説明の便宜上、キャプチャ画面120が表示されているときに、プレイヤがスティック等でタッチパネル22(LCD14)上を撫でる操作を「囲み操作」と呼ぶことにする。この図4(A)に示すキャプチャ画面120において(図4(B)および図5も同じ。)、開始点はプレイヤが囲み操作を開始した位置、すなわちタッチオンした位置である。ただし、囲み操作を連続的に行う場合には、この囲み操作により後述する閉領域が形成される毎に、開始点は更新される。また、図4(A)に示すように、囲み操作に従って線(以下、「囲み線」と呼ぶ。)124が表示される。この実施例では、CPUコア42は、タッチパネル22から入力される座標データを所定時間(たとえば、1フレーム)毎に検出し、前回検出した座標データが示すLCD14上の位置と今回検出した座標データが示すLCD14上の位置とを結ぶ線分を算出する。ただし、1フレームは、画面更新単位時間(1/60秒)である。そして、CPUコア42の指示に従って算出された線分がLCD14に表示される。このような処理が繰り返され、図4(A)に示すような囲み線124が表示される。
【0068】
なお、上述したように、LCD14の解像度とタッチパネル22の検出精度とは同じに設定してあるため、各々の座標系を同じに設定しておけば、タッチパネル22から入力される座標データをLCD14の座標データとしてそのまま使用することができる。
【0069】
また、図4(A)に示すように、敵オブジェクト122の上方には、当該的オブジェクト122をキャプチャするために必要な囲み回数を示すキャラクタ126(図4(A)では数字の「2」)が表示される。この囲み回数は、後述するように、敵オブジェクト122に応じて予め設定されており(図10(A)参照)、設定された数値がキャラクタ126で表示される。
【0070】
この第1実施例では、敵オブジェクト122をキャプチャするためには、プレイヤは、当該敵オブジェクト122に対応して予め決定された囲み回数以上、連続して当該敵キャラクタ122をスティック24等で囲む必要がある。厳密には、スティック24等で描いた囲み線124によって形成された閉領域内に敵オブジェクト122が存在する場合に、敵オブジェクト122を囲んだと判断し、これが囲み回数以上連続する必要がある。
【0071】
なお、敵オブジェクト122の囲み判定については後で詳細に説明するため、ここではその説明を省略する。
【0072】
また、プレイヤが囲み操作を行っている途中で、敵オブジェクト122が囲み線124に接触ないし衝突すると、図4(B)に示すように、囲み線124が切断され、消去される。このとき、プレイヤオブジェクト102の体力(または生命力)が所定量減算される。ただし、囲み線124には、後述するように耐久度が設定されており、敵オブジェクト122の接触ないし衝突した回数によって切断されるか否かが判断される。また、囲み線124が切断され、消去されると、それまでに敵オブジェクト122を囲んだ回数は無効になる(リセットされる)。
【0073】
なお、図示は省略するが、プレイヤが囲み操作を止めた場合にも、つまりタッチオフした場合にも、囲み線124は消去され、それまでに敵オブジェクト122を囲んだ回数は無効になる。
【0074】
また、この第1実施例では、敵オブジェクト122が囲み線に接触したり衝突したりした場合に、囲み線124が切断されるようにしてあるが、敵オブジェクト122の攻撃(たとえば、火や水を放つ)が囲み線124に命中した場合にも、当該囲み線124が切断されるようにしてもよい。ただし、囲み線124に対して耐久度が設定されている点は同じである。
【0075】
そして、プレイヤが、敵オブジェクト122に設定された囲み回数以上、連続して当該敵オブジェクト122を囲むと、図示は省略するが、プレイヤオブジェクト102は当該敵オブジェクト122のキャプチャに成功する。後で詳細に説明するが、プレイヤオブジェクト102は、キャプチャした敵オブジェクト122を選択(使用)することにより、当該敵オブジェクト122が持つ能力(効果)を、次回以降の囲み操作において、すなわち他の敵オブジェクト122をキャプチャする際に、発揮させることができる。つまり、囲み操作を支援(補助)するなどして、当該囲み操作に影響を及ぼす。
【0076】
なお、これ以降では、フィールド上に存在する敵オブジェクト122と、キャプチャした敵オブジェクト122とを区別する必要がある場合には、キャプチャした敵オブジェクト122を「影響オブジェクト」と呼ぶことにする。
【0077】
たとえば、属性が「草」である影響オブジェクトを選択すると、図5に示すように、囲み線124を描画すると、その囲み線124に沿って草木のような効果オブジェクト128が表示される。この効果オブジェクト128は、壁として働き、敵オブジェク122の移動可能範囲を制限する。したがって、敵オブジェクト122の行動範囲を狭くすることができ、囲み操作を容易にすることができるのである。
【0078】
また、図示は省略するが、属性が「火」である影響オブジェクトを選択すると、囲み線124に沿って炎(火)のような効果オブジェクト128が表示される。この効果オブジェクト128により、敵オブジェクト128を攻撃することができる。つまり、敵オブジェクト122が炎の効果オブジェクト128に接触すると、敵オブジェクト122にダメージが与えられ、その移動速度が低下したり、その動きが停止されたりする。これにより、囲み操作を容易にすることもできる。
【0079】
なお、図5に示す効果オブジェクト128は単なる一例であり、各影響オブジェクト(敵オブジェクト122)に応じて効果(プレイヤ補助)が設定されている(図10(A)参照)。
【0080】
ただし、この第1実施例では、プレイヤの囲み操作に従って効果オブジェクト128を発生させることができる期間は、一定期間(有効時間)に設定される。これは、無期限に効果オブジェクト128を発生できるようにすると、非常に簡単に敵オブジェクト122を囲むことができてしまい、プレイヤは直にゲームに飽きてしまうからである。ただし、有効時間は、影響オブジェクト(の属性)に応じて異なる値を設定するようにしてもよい。また、敵オブジェクト122の属性と影響オブジェクトの属性とに基づいて、有効時間を設定することもできる。さらに、有効時間に代えて、有効回数を設定するようにしてもよい。
【0081】
なお、この第1実施例では、効果オブジェクト128を発生することにより、囲み操作の難易度を容易化するようにしてあるが、逆に、囲み操作の難易度を高度化する場合であっても、このような有効時間や有効回数は設定すべきである。囲み操作の難易度を高度化する場合に、無期限に効果オブジェクト128を発生できるようにすると、ゲームが難しくなり過ぎてしまうからである。
【0082】
また、図面では表現することができないが、影響オブジェクトを選択した場合には、当該影響オブジェクトの属性に応じて決定されている色で線分すなわち囲み線124が表示される。たとえば、影響オブジェクトの属性が「水」であれば、囲み線124は青色で表示され、また、影響オブジェクトの属性が「火」であれば、囲み線124は赤色で表示される。ただし、何ら影響オブジェクトが選択されていない場合には、デフォルトで設定されている色(たとえば、灰色)で、囲み線124は表示される。
【0083】
ここで、図6および図7を用いて、敵オブジェクト122の囲み判定について説明する。図6(A)は、プレイヤが開始点から右周りに囲み操作を行って、囲み線124によって、敵オブジェクト122を囲んだ状態を示す。上述したように、CPUコア42は、タッチパネル22からの入力される座標データを1フレーム毎に検出し、検出した座標データが示すLCD14上の位置(位置座標)を検出する。検出した位置座標(検出座標)は時系列に従ってRAM48に記憶され、CPUコア42は、前回の検出座標と今回の検出座標とを結ぶ線分を算出する。ただし、CPUコア42は、RAM48に記憶される検出座標が1つの場合には、線分を算出することなく、囲み操作が開始されたと判断する。
【0084】
また、CPUコア42は、検出座標が3つ以上になると、CPUコア42は、今回算出した線分(今回の線分)がそれ以前に算出した線分(以前の線分)と交差するか否かを判断する。図6(A)に示すように、今回の線分が以前の線分と交差する場合には、閉領域が生成(形成)されたと判断し、その交差点を開始点と擬制して、図6(B)に示すように、交差点を含む閉領域を設定する。つまり、交差点を含む閉多角形を囲み図形として設定する。ただし、今回の線分が、以前の線分と交差しない場合には、閉領域は形成されていないと判断する。
【0085】
ここで、図示は省略するが、タッチオン(入力有り)状態からタッチオフ(入力無し)状態まで、プレイヤの囲み操作に従って囲み線124は描かれる(表示される)。ただし、一度に描くことができる囲み線124の長さは一定距離に決定されており、したがって、当該一定距離を越える場合には、最も古い検出座標が消去され、これに従って対応する線分(囲み線124の一部)も消去される。これは、一度に描くことができる囲み線124の長さを無制限にすると、非常に簡単に敵オブジェクト122を囲むことができてしまい、プレイヤは直にゲームに飽きてしまうからである。ただし、「一度に描くことができる囲み線124の長さ」とは、タッチオンからタッチオフまでに描くことができる囲み線124の長さ、または、一回の攻撃シーン(攻撃ターン)において描くことができる囲み線124を総合した長さである。
【0086】
上述したように、閉領域が設定されると、当該閉領域内に敵オブジェクト122が存在するかどうかを判断する。つまり、敵オブジェクト122の囲み判定が行われる。具体的には、図7(A)に示すように、敵オブジェクト122から上方向に引いた直線L1と当該敵オブジェクト122から左方向に引いた直線L2とを用いて、囲み判定が行われる。囲み判定では、まず、直線L1と閉領域を形成する線分(囲み線124)とが交差するかどうかを判断し、交差する場合には、その交差点の数(説明の便宜上、「第1個数」という。)を検出する。ただし、直線L1と閉領域を形成する線分とが交差しない場合には、第1個数は0である。次に、直線L2と閉領域を形成する線分とが交差するかどうかを判断し、交差する場合には、その交差点の数(説明の便宜上、「第2個数」という。)を検出する。ただし、直線L2と閉領域を形成する線分とが交差しない場合には、第2個数は0である。そして、第1個数および第2個数がそれぞれ奇数である場合には、敵オブジェクト122は閉領域内であると判定される。したがって、図7(A)に示す状態では、第1個数および第2個数はともに「1」であるため、敵オブジェクト122は閉領域内であると判定される。一方、第1個数および第2個数のうちのいずれか一方でも偶数(0を含む。)である場合には、敵オブジェクト122は閉領域外であると判定される。
【0087】
このような囲み判定を行うのは、プレイヤの囲み操作による閉領域が円形とは限らないからである。たとえば、図7(B)に示すように、敵オブジェクト122をハート型の閉領域で囲んだ場合について考えると、第1個数は「1」であり、第2個数は「3」であり、共に奇数である。図示は省略するが、図7(A)および図7(B)において、敵オブジェクト122を閉領域外に出してみると、第1個数および第2個数の少なくとも一方が「0」になったり、偶数(2,4)になったりすることが容易に分かる。
【0088】
なお、上述した囲み判定はCPUコア42が、検出座標データ72fおよび敵オブジェクト122の位置座標データ(図示せず)を参照し、RAM48のワーク領域を用いて実行する。
【0089】
図8は、図2に示したゲーム装置10に内蔵されるRAM48のメモリマップである。この図8を参照して、RAM48は、ゲームプログラム記憶領域70およびデータ記憶領域72を含む。ゲームプログラム記憶領域70には、ゲームプログラムが記憶される。このゲームプログラムは、ゲームメイン処理プログラム70a、画像生成プログラム70b、画像表示プログラム70c、影響オブジェクト選択プログラム70d、敵オブジェクト囲みプログラム70e、効果オブジェクト発生プログラム70f、効果オブジェクト消去プログラム70g、囲み線切断プログラム70h、効果発動プログラム70i、囲み線消去プログラム70jおよびバックアッププログラム70kなどによって構成される。
【0090】
ゲームメイン処理プログラム70aは、この第1実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム70bは、後述する画像データ72aを用いて、プレイヤオブジェクト102、ノンプレイヤオブジェクト102、アイテムオブジェクトおよび背景オブジェクトなどのオブジェクトを含むゲーム画像を生成するためのプログラムである。
【0091】
ここで、プレイヤオブジェクト102とは、プレイヤの操作によって仮想空間内を移動等するオブジェクトをいい、人物や動物を模した動画オブジェクトやアニメキャラクタについての動画オブジェクトなどが該当する。また、ノンプレイヤオブジェクト102とは、プレイヤの操作によらないで、プログラムに従って移動等するオブジェクトをいい、プレイヤオブジェクト102と同様に、人物や動物を模した動画オブジェクトやアニメキャラクタについての動画オブジェクトなどが該当する。アイテムオブジェクトとは、プレイヤオブジェクト102もしくはノンプレイヤオブジェクト102によって、取得または所持等されるアイテム(武器、薬、食物、魔法の道具、コインなど)についてのオブジェクトをいう。ただし、アイテムオブジェクトには、武器を使用するなどにより、プレイヤオブジェクト102が敵オブジェクト122を攻撃する場合に、発射(放射)される弾(または、炎、水、氷、泡、電気(雷)など)のオブジェクトも含まれる。背景オブジェクトとは、建物、壁、床(地面)、柱、樹木、草木などの背景についてのオブジェクトをいう。
【0092】
画像表示プログラム70cは、上述した画像生成プログラム70bに従って生成されたゲーム画像(ゲーム画面)を表示装置(LCD12,14)に表示するためのプログラムである。影響オブジェクト選択プログラム70dは、後述する敵オブジェクト囲みプログラム70eに従ってキャプチャした敵オブジェクト122すなわち影響オブジェクトを選択(使用)するためのプログラムである。
【0093】
敵オブジェクト囲みプログラム70eは、プレイヤの囲み操作に応じて、プレイヤオブジェクト102に敵オブジェクト122をキャプチャさせるためのプログラムである。効果オブジェクト発生プログラム70fは、上述した影響オブジェクト選択プログラム70dに従って影響オブジェクトが選択されている場合に、当該影響オブジェクトに対応するプレイヤ補助のための効果オブジェクト128を発生させるためのプログラムである。効果オブジェクト消去プログラム70gは、発生させた(キャプチャ画面120に表示した)効果オブジェクト128を消去させるためのプログラムである。この第1実施例では、プログラム70gは、発生させてから一定時間が経過したときに、効果オブジェクト128を消去させるようにしてある。ただし、敵オブジェクト122と効果オブジェクト128との距離(射程距離)が一定以上になったときに、当該効果オブジェクト128を消滅させるようにしてもよい。
【0094】
囲み線切断プログラム70hは、敵オブジェクト122が囲み線124に接触ないし衝突した場合に、当該囲み線124を切断するためのプログラムである。たとえば、キャプチャ画面120に表示された囲み線124のうち、敵オブジェクト122が接触等した位置を含む一定長さを消去して、囲み線124が切断された様子が表現される。ただし、後述するように、敵オブジェクト122が囲み線124に衝突する場合には、囲み線124の耐久度が0以下になったときに、囲み線124が切断される。効果発動プログラム70hは、囲み線124に従って効果オブジェクト128が発生されている場合に、当該効果オブジェクト128に接触ないし衝突した敵オブジェクト122にダメージを与えて、その移動速度を低下させたり、その移動を停止させたり、当該敵オブジェクト122の移動可能範囲を制限したりするためのプログラムである。また、プログラム70hは、囲み線124を一度に描画することができる長さを延長することができる。さらに、プログラム70hは、敵オブジェクト122を囲んだ回数を実際に囲んだ回数よりも増加(倍増)させたりすることもできる。ただし、プログラム70hは、影響オブジェクトが単独で敵オブジェクト122に攻撃する効果がある場合には、上述した影響オブジェクト選択プログラム70dに従って影響オブジェクトが選択されると、囲み操作を開始する前に(囲み操作の有無に拘わらず)、一定の効果を発動する。たとえば、ゲーム空間に、火(炎)、水、氷、電気(雷)などが発生され、敵オブジェクト122にダメージを与えることができる。敵オブジェクト122にダメージを与えた場合の効果は、効果オブジェクト128に敵オブジェクト122が接触した場合と同様である。
【0095】
囲み線消去プログラム70jは、プレイヤが囲み操作を中止したり(タッチオフの状態)、囲み線124が切断されたり、囲み判定を実行したりしたときに、キャプチャ画面120に囲み線124をすべて消去するためのプログラムである。バックアッププログラム70kは、RAM48に記憶されたゲームデータ(途中データないし結果データ)を、プレイヤの指示や或るイベントの発生に応じて、メモリカード28のRAM28bに記憶(セーブ)するためのプログラムである。
【0096】
なお、図示は省略するが、ゲームプログラム記憶領域70には、プレイヤオブジェクト102などのゲームオブジェクトの音声ないし擬声音、効果音、BGMなどの音楽のようなゲームに必要な音を出力するための音出力プログラムなども記憶される。
【0097】
図9に示すように、データ記憶領域72には、画像データ72a、体力値データ72b、敵オブジェクトデータ72c、耐久度データ72d、影響オブジェクトデータ72eおよび検出座標データ72fなどのデータが記憶される。
【0098】
画像データ72aは、上述したように、ゲーム画像を生成するためのデータ(ポリゴンデータ、テクスチャデータなど)である。体力値データ72bは、プレイヤオブジェクト102の体力値ないし生命力(ライフ)の値である。この第1実施例では、体力値は、プレイヤないしプレイヤオブジェクト102のレベルや経験値に応じてその初期値が決定され、囲み線124が切断されると、所定量減算される。ただし、減算量は、切断されたときの囲み線124の長さに応じて可変的に設定するようにしてもよい。体力値が消滅すると(0以下になると)、プレイヤオブジェクト102は死滅し、場合によっては、ゲームオーバとなる。
【0099】
敵オブジェクトデータ72cは、各敵オブジェクト122についての属性(特性)等を定義(記述)したテーブルデータである。具体的には、図10(A)に示すように、敵オブジェクトデータ72cでは、名称に対応して、属性、囲み回数およびプレイヤ補助の内容が記述される。名称の欄には、敵オブジェクト122の名称ないし識別情報が記述される。図10(A)では、敵オブジェクト122の名称として、敵オブジェクトA,B,C,D,E,F,…が記載される。属性の欄には、対応する敵オブジェクト122の属性が記述される。属性は、敵オブジェクト122の種別を示し、この第1実施例では、水,格闘,電気,草,氷,悪,…などに分類される。囲み回数の欄には、対応する敵オブジェクト122のキャプチャを成功するために必要な囲み回数(囲み回数の最大値)が記述される。プレイヤ補助の欄には、プレイヤが敵オブジェクト122をキャプチャする際に、囲み操作の難易度を変化(たとえば、容易化)させるための効果が記載される。具体的には、対応する敵オブジェクト122をプレイヤが影響オブジェクトとして所持しており、他の敵オブジェクト122をキャプチャする際に、当該影響オブジェクトを選択すると(使用すると)、プレイヤ補助の欄に記載された効果が発動されるのである。
【0100】
たとえば、影響オブジェクトとしての敵オブジェクトAが選択された場合には、プレイヤが囲み操作する際に描かれる囲み線124に従って水のような効果オブジェクト128が噴出され、その水の効果オブジェクト128に今回キャプチャしようとしている敵キャラクタが接触ないし衝突すると、当該敵キャラクタにダメージを与えて、その動きを鈍くさせることができる。
【0101】
また、影響オブジェクトとしての敵オブジェクトBが選択された場合には、囲み操作する際に、敵オブジェクト122を囲んだ回数が増大(倍増)される。たとえば、プレイヤの囲み操作により、敵オブジェクト122を3回囲んだ場合には、その囲み操作の回数が6にされる。つまり、囲み操作の回数が少なくて済む。
【0102】
なお、影響オブジェクトとしての敵オブジェクトCが選択された場合には、囲み操作に従って電気または雷のような効果オブジェクト128が発生される以外は、敵オブジェクトAが選択された場合と同様であるため、同様の説明は省略することにする。
【0103】
また、プレイヤが影響オブジェクトとしての敵オブジェクトDが選択された場合には、プレイヤが囲み操作する際に描かれる囲み線124に従って草のような効果オブジェクト128が発生され、その草の効果オブジェクト128が壁として働き、今回キャプチャしようとする敵オブジェクト122はその移動可能範囲を制限(規制)される。つまり、行動範囲が狭くされる。
【0104】
さらに、影響オブジェクトとしての敵オブジェクトEが選択された場合には、プレイヤが囲み操作する際に描かれる囲み線124に従って氷のような効果オブジェクト128が発生され、その氷に今回キャプチャしようとしている敵オブジェクト122が接触ないし衝突すると、当該敵オブジェクト122を凍らせて、その動きを停止させることができる。
【0105】
そして、影響オブジェクトとしての敵オブジェクトFが選択された場合には、プレイヤが囲み操作する際に描くことができる囲み線124の長さが延長される。このように、囲み線124の長さが延長されると、比較的大きい範囲を囲むことができる。
【0106】
このように、影響オブジェクトを選択すると、敵オブジェクト122をキャプチャする際に、当該影響オブジェクトに応じた攻撃等を当該敵オブジェクト122に加えて、その移動を鈍くさせたり、停止させたりして、囲み操作が容易化される。また、場合によっては、囲み操作の回数が倍増されたり、囲み線124の長さが延長されたりして、囲み操作が容易化される。
【0107】
ただし、図示は省略するが、上述したように、影響オブジェクトとしての敵オブジェクト122の中には、プレイヤが囲み操作を開始する前に、今回キャプチャしようとしている敵オブジェクト122に単独で攻撃することができるものも存在する。かかる場合には、影響オブジェクトが選択されると、囲み操作の有無に拘わらず、当該影響オブジェクトの属性に応じた攻撃が敵オブジェクト122に対して実行される。たとえば、単独で攻撃することができる影響オブジェクトの属性が「水」であれば、敵オブジェクト122目掛けて水を噴射したり、敵オブジェクト122を水中に閉じこめたりする。また、単独で攻撃することができる影響オブジェクトの属性が「電気」であれば、敵オブジェクト122目掛けて雷を落とすなどする。これらは単なる例示であり、限定されるべきでなく、ゲームプログラマや開発者等によって設定される事項である。
【0108】
また、この敵オブジェクトデータ72cは、単なる例示であり、限定されるべきでなく、ゲームプログラマや開発者が設定する事項であり、様々なバリエーションを取り得る。
【0109】
図9に戻って、耐久度データ72dは、プレイヤが影響オブジェクトを選択した場合に、当該影響オブジェクトの属性と敵オブジェクト122の属性とによって囲み線124の耐久度(敵オブジェクト122の接触(衝突)回数)を決定するためのテーブルデータである。具体的には、図10(B)に示すように、影響オブジェクト(図10(B)では、「影」と記載)の属性が縦方向に記載され、敵オブジェクト122(図10(B)では、「敵」と記載)の属性が横方向に記載される。この耐久度データ72dに従えば、影響オブジェクトの属性と敵オブジェクト122の属性とから耐久度、具体的には、後述する耐久度カウンタ72jに設定する初期値が決定される。たとえば、影響オブジェクトの属性が「電気」であり、敵オブジェクト122の属性が「水」である場合には、耐久度カウンタ72jの初期値として「5」が設定される。詳細な説明は省略するが、他の場合も同様にして、耐久度カウンタ72jの初期値が設定される。
【0110】
なお、耐久度データ72dは、単なる例示であり、限定されるべきではない。これらは、ゲームプログラマや開発者が設定する事項であり、様々なバリエーションを取り得る。
【0111】
また、影響オブジェクトの属性および敵オブジェクト122の属性は、上述した敵オブジェクトデータ72cから取得する。
【0112】
図9に戻って、影響オブジェクトデータ72eは、プレイヤオブジェクト102がキャプチャして、現在所持している敵オブジェクト122すなわち影響オブジェクトについてのデータである。たとえば、影響オブジェクトデータ72eは、各敵オブジェクト122に対応するビットを有するレジスタである。所持している敵オブジェクト122すなわち影響オブジェクトに対応するビットにはデータ値「1」が設定され、所持していない敵オブジェクト122に対応するビットにはデータ値「0」が設定される。検出座標データ72fは、タッチパネル22から入力される座標データに対応するLCD14上の座標(検出座標)を時系列に従って記憶したデータである。
【0113】
なお、図示は省略するが、データ記憶領域72には、ゲームに必要な音を出力するための音(音楽)データも記憶される。上述したような体力値データ72b、影響オブジェクトデータ72eは、ゲームの進行に従って更新され、これらはゲームデータ(途中データや結果データ)に含まれる。図示は省略してあるが、プレイヤオブジェクト102(またはプレイヤ)のレベルなどもゲームデータに含まれる。
【0114】
また、データ記憶領域72には、表示時間タイマ72g、有効時間タイマ72h、囲み回数カウンタ72i、耐久度カウンタ72j、キャプチャ成功フラグ72kおよび選択フラグ72mなどが記憶される(設けられる)。
【0115】
表示時間タイマ72gは、効果オブジェクト128の表示時間(発生している期間)をカウントするためのタイマである。たとえば、上述したように、効果オブジェクト128は一定時間表示され、その後消滅する。ただし、効果オブジェクト128毎に一定時間は異なる値を設定するようにしてもよい。かかる場合には、敵オブジェクトデータ72cにおいて、各敵オブジェクト122に対応して一定時間を設定しておけばよい。また、有効時間タイマ72hは、効果オブジェクト128を発生させることができる期間(有効時間)をカウントするためのタイマである。上述したように、この第1実施例では、効果オブジェクト128を発生させることが可能な期間は一定であり、一定期間を過ぎると、効果オブジェクト128を発生させることができなくなる。つまり、影響オブジェクトが消滅し(プレイヤオブジェクト102の手から離れ)、その効力を発揮することができなくなるのである。具体的には、影響オブジェクトデータ72eにおいて、消滅させるべき影響オブジェクト(敵オブジェクト122)に対応するビットにデータ値「0」が設定されるのである。
【0116】
囲み回数カウンタ72iは、プレイヤが敵オブジェクト122を囲んだ回数をカウントするためのカウンタである。この第1実施例では、囲み回数カウンタ72iには、敵オブジェクトデータ72cにおいて敵オブジェクト122に対応して設定されている囲み回数が初期値として設定され、プレイヤの囲み操作によって形成された閉領域内に敵オブジェクト122が存在すると、つまり敵オブジェクト122を囲むと、デクリメントされる。この第1実施例では、囲み回数カウンタ72iのカウント値が0になると、敵オブジェクト122のキャプチャに成功する。具体的には、影響オブジェクトデータ72eにおいて、キャプチャした敵オブジェクト122に対応するビットにデータ値「1」が設定されるのである。
【0117】
耐久度カウンタ72jは、囲み線124の耐久度をカウントするためのカウンタである。上述したように、影響オブジェクトが選択された場合には、キャプチャしようとする敵オブジェクト122の属性と選択された影響オブジェクトの属性とに応じた数値が耐久度カウンタ72jの初期値として設定される。ただし、影響オブジェクトが選択されていない場合には、耐久度は普通であり、キャプチャしようとする敵オブジェクト122の属性に拘わらず、耐久度カウンタ72jの初期値としてデフォルトの数値(たとえば、「3」)が設定される。この耐久度カウンタ72jは、敵オブジェクト122が囲み線124に接触(衝突)すると、デクリメントされる。そして、耐久度カウンタ72jのカウント値が0になると、囲み線124は切断される。
【0118】
キャプチャ成功フラグ72kは、敵オブジェクト122のキャプチャに成功したか否かを判断するためのフラグであり、1ビットのレジスタで構成される。敵オブジェクト122のキャプチャに成功した場合には、キャプチャ成功フラグ72kはオン(成立)され、データ値「1」が設定される。それ以外では、キャプチャ成功フラグ72kはオフ(不成立)され、データ値「0」が設定される。たとえば、このキャプチャ成功フラグ72kは、戦闘シーンの開始時にリセット(オフ)される。
【0119】
選択フラグ72mは、プレイヤが影響オブジェクトを選択した(使用する)か否かを判断するためのフラグであり、1ビットのレジスタで構成される。プレイヤが影響オブジェクトを選択している場合には、選択フラグ72mはオンされ、データ値「1」が設定される。一方、プレイヤが影響オブジェクトを選択していない場合には、選択フラグ72mはオフされ、データ値「0」が設定される。
【0120】
なお、図示は省略するが、データ記憶領域72には、ゲームに必要な他のタイマ、カウンタ或いはフラグも設けられる。
【0121】
具体的には、図2に示したCPUコア42が図11および図12に示すゲーム全体処理を実行する。図11に示すように、CPUコア42は、ゲーム全体処理を開始すると、ステップS1で初期設定する。たとえば、CPUコア42は、RAM48を初期化して、メモリカード28のROM28aからゲームプログラムやデータを読み出し、RAM48に書き込み。このとき、セーブしておいたゲームデータを読み出した場合には、前回の続きからゲームを開始することができる。
【0122】
続くステップS3では、プレイヤの操作に基づくゲーム処理を実行する。たとえば、プレイヤの操作に従ってプレイヤオブジェクト102を仮想空間(フィールド)内で移動させ、また、敵オブジェクト122をコンピュータ(CPUコア42)の処理によって、フィールド内で移動させ、そのような様子のゲーム画面100がLCD14(LCD12でも可。)に表示する。
【0123】
次のステップS5では、プレイヤオブジェクト102が敵オブジェクト122と遭遇したかどうかを判断する。具体的には、プレイヤオブジェクト102の位置座標と敵オブジェクト122の位置座標との距離が一定未満になったかどうかを判断する。ステップS5で“NO”であれば、つまりプレイヤオブジェクト102が敵オブジェクト122に遭遇していなければ、そのままステップS3に戻る。一方、ステップS5で“YES”であれば、つまりプレイヤオブジェクト102が敵オブジェクト122に遭遇すれば、戦闘シーンに移行し、ステップS7で、キャプチャ画面120をLCD14に表示する。図示は省略するが、上述したように、このとき、キャプチャ成功フラグ72kがリセット(オフ)される。続くステップS9では、プレイヤオブジェクト102が遭遇した敵オブジェクト122に基づいて、囲み回数カウンタ72iを設定する。つまり、敵オブジェクトデータ72cを参照して、囲み回数を取得し、取得した囲み回数を囲み回数カウンタ72iの初期値として設定する。そして、ステップS11で、プレイヤオブジェクト102の体力値に初期値を設定する。
【0124】
続いて、ステップS13では、影響オブジェクトの選択指示があるかどうかを判断する。ステップS13で“NO”であれば、つまり影響オブジェクトの選択指示が無ければ、ステップS25で、耐久度カウンタ72iのカウント値をデフォルト値(たとえば、「3」)に設定して、図12に示すステップS27に進む。一方、ステップS13で“YES”であれば、つまり影響オブジェクトの選択指示があれば、ステップS15で、後述する影響オブジェクト選択処理(図13参照)を実行して、ステップS17で、選択された影響オブジェクトが単独で攻撃可能かどうかを判断する。具体的には、CPUコア42は、影響オブジェクト選択処理において読み出したプレイヤ補助の内容に従って、選択された影響オブジェクトが単独で攻撃可能かどうかを判断するのである。
【0125】
ステップS17で“NO”であれば、つまり選択された影響オブジェクトが単独で攻撃することができなければ、後述するように、効果オブジェクト128を発生させたり、効果を発動させたりするべく、ステップS23で、選択フラグ72mをオンし、ステップS27に進む。一方、ステップS17で“YES”であれば、つまり選択された影響オブジェクトが単独で攻撃可能であれば、ステップS19で、敵オブジェクト122を攻撃し、ステップS21で、当該影響オブジェクトを消去して、ステップS27に進む。つまり、ステップS19では、影響オブジェクトに対して予め設定されている攻撃(効果)を発動させる。また、ステップS21では、影響オブジェクトデータ72eにおいて、当該影響オブジェクト(敵オブジェクト122)に対応するビットにデータ値「0」を設定する。以下、影響オブジェクトを消去する場合において同じである。
【0126】
図12に示すように、ステップS27では、後述する囲み/効果オブジェクト発生処理(図14−図16参照)を実行し、次のステップS29では、後述する囲み線切断/効果発動処理(図17参照)を実行する。続いて、ステップS31では、表示時間が一定時間以上であるかどうかを判断する。つまり、ステップS27の囲み/効果オブジェクト発生処理において、効果オブジェクト128が発生(表示)されたときに、表示時間タイマ72gがスタートされ、表示時間(タイマ値)が一定時間を経過したかどうかを判断しているのである。ステップS31で“NO”であれば、つまり表示時間が一定時間未満であれば、そのままステップS35に進む。一方、ステップS31で“YES”であれば、つまり表示時間が一定時間以上であれば、ステップS33で効果オブジェクト128をゲーム画面(この実施例では、キャプチャ画面120)から消去して、ステップS35に進む。これにより、効果オブジェクト128は一定時間だけ表示されるのである。
【0127】
ステップS35では、敵オブジェクト122のキャプチャに成功したかどうかを判断する。つまり、ここでは、キャプチャ成功フラグ72kがオンであるかどうかを判断する。ステップS35で“YES”であれば、つまり敵オブジェクト122のキャプチャに成功していれば、ステップS37で、キャプチャした敵オブジェクト122を影響オブジェクトとしてRAM48に記憶して、ステップS41に進む。つまり、影響オブジェクトデータ72cにおいて、キャプチャに成功した敵オブジェクト122に対応するビットにデータ値「1」を設定する。一方、ステップS35で“NO”であれば、つまり敵オブジェクト122のキャプチャに成功していなければ、ステップS39で、体力値データ72bを参照して、プレイヤオブジェクト102の体力値が0以下であるかどうかを判断する。
【0128】
プレイヤオブジェクト102の体力値が0よりも大きければ、ステップS39で“NO”となり、囲み操作を続行するべく、ステップS27に戻る。しかし、プレイヤオブジェクト102の体力値が0以下であれば、ステップS39で“YES”となり、プレイヤオブジェクト102が死滅したと判断して、または、ゲームオーバになったと判断して、ステップS41に進む。
【0129】
ステップS41では、バックアップ処理を実行するかどうかを判断する。ここでは、プレイヤの指示や所定のイベントの発生により、バックアップ処理を実行するかどうかを判断するのである。ステップS41で“NO”であれば、つまりバックアップ処理を実行しない場合には、そのままステップS45に進む。一方、ステップS41で“YES”であれば、つまりバックアップ処理を実行する場合には、ステップS43で、ゲームデータをメモリカード28のRAM28bに記憶して、ステップS45に進む。
【0130】
ステップS45では、ゲーム終了かどうかを判断する。ここでは、ゲームオーバになったり、プレイヤがゲーム終了を指示したりしたかどうかを判断する。ステップS45で“NO”であれば、つまりゲーム終了でなければ、図11に示したステップS3に戻る。一方、ステップS45で“YES”であれば、つまりゲーム終了であれば、ゲーム全体処理を終了する。
【0131】
図13は、図11に示したステップS15の影響オブジェクト選択処理を示すフロー図である。図13に示すように、CPUコア42は影響オブジェクト選択処理を開始すると、ステップS51で、影響オブジェクトを表示する。図示は省略するが、ここでは、影響オブジェクトを選択するための選択画面を表示する。続くステップS53では、影響オブジェクトの選択があるかどうかを判断する。つまり、選択画面において、影響オブジェクトが選択されたかどうかを判断するのである。ステップS53で“NO”であれば、つまり影響オブジェクトの選択が無ければ、そのままステップS53に戻る。ただし、影響オブジェクトの選択が無い場合には、キャンセルの指示があるかどうかを判断し、キャンセルの指示が有れば、影響オブジェクト選択処理をリターンし、キャンセルの指示が無ければ、ステップS53に戻るようにしてもよい。
【0132】
また、ステップS53で“YES”であれば、つまり影響オブジェクトの選択が有れば、ステップS55で、選択された影響オブジェクトについての属性およびプレイヤ補助の内容を読み出すとともに、遭遇した敵オブジェクト122についての属性を読み出す。そして、ステップS57では、敵オブジェクト122の属性と影響オブジェクトの属性とに基づいて、耐久度カウンタ72jに初期値を設定して、影響オブジェクト選択処理をリターンする。ステップS57では、耐久度データ72dに従う初期値が設定されるのである。
【0133】
図14−図16は、図12に示したステップS27に示した囲み/効果オブジェクト発生処理を示すフロー図である。図14に示すように、CPUコア42は、囲み/効果オブジェクト発生処理を開始すると、ステップS71で、タッチ入力があるかどうかを判断する。ここでは、CPUコア42は、タッチパネル22から座標データが入力されたかどうかを判断する。ステップS71で“NO”であれば、つまりタッチパネル22から座標データが入力されていなければ、タッチオフの状態であると判断し、ステップS77で、囲み線消去処理を実行する。ここでは、キャプチャ画面120に表示された囲み線124を消去する。以下、同様である。続くステップS79では、検出座標データ72fを消去する。そして、ステップS81で、囲み回数カウンタ72iを初期値にリセットして、囲み/効果オブジェクト発生処理をリターンする。ただし、プレイヤオブジェクト102が敵オブジェクト122と遭遇した当初においては、何ら囲み線124が描かれておらず、また、敵オブジェクト122を囲んでもいないため、ステップS77−S81の処理は実行されず、そのままリターンされる。
【0134】
また、ステップS71で“YES”であれば、つまりタッチパネル22から座標データが入力されていれば、ステップS73で、タッチ座標を検出する。つまり、座標データが示すLCD14上の座標(タッチ座標)を検出する。続くステップS75では、ステップS73において検出したタッチ座標すなわち検出座標を時系列に従って記憶する。つまり、検出座標データ72fが更新される。
【0135】
続くステップS83では,検出座標データ72fを参照して、タッチ座標(検出座標)の数が2以上かどうかを判断する。ステップS83で“NO”であれば、つまりタッチ座標の数が1であれば、タッチオンすなわち囲み操作の開始であると判断して、ステップS93で、選択フラグ72mがオンであるかどうかを判断する。
【0136】
ステップS93で“NO”であれば、つまり選択フラグ72mがオフであれば、影響オブジェクトが選択されていないと判断して、そのまま囲み/効果オブジェクト発生処理をリターンする。一方、ステップS93で“YES”であれば、つまり選択フラグ72mがオンであれば、影響オブジェクトが選択されていると判断して、ステップS95で、有効時間に一定時間を設定し、ステップS97で、有効時間タイマ72hをスタートして、囲み/効果オブジェクト発生処理をリターンする。
【0137】
また、ステップS83で“YES”であれば、つまりタッチ座標の数が2以上であれば、今回の検出座標と前回の検出座標とを結ぶ線分を算出し、ステップS87で、選択フラグ72mがオンであるかどうかを判断する。ステップS87で“YES”であれば、算出された線分を、選択されている影響オブジェクトの属性に応じた色の線で画面(キャプチャ画面120)上に描画して、図15に示すステップS99に進む。一方、ステップS87で“NO”であれば、算出された線分を、デフォルトの色(たとえば、灰色)の線でキャプチャ画面120上に描画して、ステップS99に進む。
【0138】
図15に示すようにステップS99では、選択フラグ72mがオンであるかどうかを判断する。ステップS99で“NO”であれば、そのままステップS111に進む。一方、ステップS99で“YES”であれば、ステップS101で、有効時間が0であるかどうかを判断する。つまり、有効時間タイマ72hが、上述のステップS95で設定された有効時間のカウントを終了したかどうかを判断する。
【0139】
ステップS101で“NO”であれば、つまり有効時間が0でなければ、効果オブジェクト128を発生可能と判断し、ステップS103で、選択された影響オブジェクトに応じた効果オブジェクト128を線分(囲み線124)に従って(沿って)表示する。そして、ステップS105で、表示時間タイマ72gをスタートして、ステップS111に進む。しかし、ステップS101で“YES”であれば、つまり有効時間が0であれば、効果オブジェクト128を発生不能と判断し、ステップS107で、影響オブジェクトを影響オブジェクトデータ72eから消去し、ステップS109で、選択フラグ72mをオフして、ステップS111に進む。
【0140】
ステップS111では、検出座標データ72fを参照して、タッチ座標(検出座標)の数が3以上であるかどうかを判断する。ステップS111で“NO”であれば、つまり検出座標の数が2以下であれば、図14に示したように、囲み/効果オブジェクト発生処理をリターンする。一方、ステップS111で“YES”であれば、つまり検出座標の数が3以上であれば、ステップS113で、最も新しい線分(ステップS85で、今回算出した)とそれ以外の線分(以前の線分)とが交差したかどうかを判断する。つまり、閉領域が形成されたか否かを判定する。
【0141】
ステップS113で“YES”であれば、つまり最も新しい線分とそれ以外の線分とが交差すれば、閉領域が形成されたと判定して、ステップS115で、交差点を算出し、算出した交差点を含む閉領域を設定し、図16に示すステップS121に進む。つまり、ステップS115では、閉領域が設定される。一方、ステップS113で“NO”であれば、つまり最も新しい線分とそれ以外の線分とが交差していなければ、ステップS117で、各線分を加算した長さが一定値を超えたかどうかを判断する。つまり、一度に描画することができる囲み線124の長さを超えたかどうかを判断する。
【0142】
ステップS117で“NO”であれば、つまり各線分を加算した長さが一定値を超えていなければ、そのまま囲み/効果オブジェクト発生処理をリターンする。一方、ステップS117で“YES”であれば、つまり各線分を加算した長さが一定を超えていれば、ステップS119で、最も古い(時間的に最も早い)タッチ座標(検出座標)を検出座標データ72fから消去し、ステップS117に戻る。このステップS117とS119との処理によって、一度に描画することができる囲み線124の長さが制限されるのである。
【0143】
図16に示すように、ステップS121では、設定した閉領域内に敵オブジェクト122が存在するかどうかを判定する。つまり、上述した囲み判定の処理を実行する。ステップS121で“NO”であれば、つまり設定した閉領域内に敵オブジェクト122が存在しなければ、敵オブジェクト122を囲めていないと判断して、ステップS133で、囲み線消去処理を実行し、ステップS135で、検出座標データ72fを消去して、図14に示したように囲み/効果オブジェクト発生処理をリターンする。
【0144】
また、ステップS121で“YES”であれば、つまり設定した閉領域内に敵オブジェクト122が存在すれば、ステップS123で、囲み回数カウンタ72iをデクリメントして、つまりカウント値を1減算して、ステップS125で、囲み回数が0であるかどうかを判断する。ステップS125で“NO”であれば、つまり囲み回数が1以上であれば、そのままステップS133に進む。一方、ステップS125で“YES”であれば、つまり囲み回数が0であれば、敵オブジェクト122のキャプチャに成功したと判断して、ステップS127で、囲み線消去処理を実行し、ステップS129で、検出座標データを消去し、そして、ステップS131で、キャプチャ成功フラグ72kをオンして、囲み/効果オブジェクト発生処理をリターンする。
【0145】
なお、図12に示したステップS27−S35およびS39の処理のスキャンタイムは1フレームであり、したがって、座標データは1フレーム(一定時間)毎に検出される。
【0146】
図17は、図12に示したステップS29の囲み線切断/効果発動処理を示すフロー図である。図17に示すように、CPUコア42は、囲み線切断/効果発動処理を開始すると、ステップS151で、敵オブジェクト122が描画された囲み線124に接触したかどうかを判断する。ステップS151で“NO”であれば、つまり敵オブジェクト122が囲み線124に接触していなければ、そのままステップS165に進む。
【0147】
また、ステップS151で“YES”であれば、つまり敵オブジェクト122が囲み線124に接触すれば、ステップS153で、耐久度カウンタ72jをデクリメントする。そして、ステップS155で、耐久度が0であるかどうかを判断する。つまり、耐久度カウンタ72jのカウント値が0であるかどうかを判断するのである。
【0148】
ステップS155で“NO”であれば、つまり耐久度が1以上であれば、そのままステップS165に進む。一方、ステップS155で“YES”であれば、つまり耐久度が0であれば、ステップS157で、囲み線切断処理を実行するともに、囲み線消去処理を実行する。ただし、囲み線切断処理では、敵オブジェクト124が接触した位置を含む一定の範囲(長さ)だけ、囲み線124がキャプチャ画面120から消去される。その後、囲み線消去処理によって、囲み線124がすべて消去される。続くステップS159では、検出座標データ72fを消去し、ステップS161で、囲み回数カウンタ72i、耐久度カウンタ72jを初期値にリセットし、ステップS163で、プレイヤオブジェクト102の体力値を所定量減算して、ステップS165に進む。
【0149】
ステップS165では、選択フラグ72mがオンであるかどうかを判断する。ステップS165で“NO”であれば、つまり選択フラグ72mがオフであれば、影響オブジェクトが選択されていないと判断して、そのまま囲み線切断/効果発動処理をリターンする。一方、ステップS165で“YES”であれば、つまり選択フラグ72mがオンであれば、影響オブジェクトが選択されていると判断して、ステップS167で、敵オブジェクト122が効果オブジェクト128に接触したかどうかを判断する。
【0150】
ステップS167で“NO”であれば、つまり敵オブジェクト122が効果オブジェクト128に接触していなければ、そのまま囲み線切断/効果発動処理をリターンする。一方、ステップS167で“YES”であれば、つまり敵オブジェクト122が効果オブジェクト128に接触すれば、ステップS169で、効果オブジェクトに応じた効果を発動して、囲み線切断/効果発動処理をリターンする。
【0151】
この第1実施例によれば、既にキャプチャした敵オブジェクトを他の敵オブジェクトをキャプチャするときの影響オブジェクトとして使用することにより、キャプチャし易くすることができるので、キャプチャする敵オブジェクトを考慮しながらゲームを進行させることができる。つまり、単にオブジェクトを収集するようなゲームのように、ゲームが単調になってしまうのを防止することができるので、ゲームの面白味を増大させることができる。
<第2実施例>
第2実施例のゲーム装置10は、敵オブジェクト122を囲む毎に、当該敵オブジェクト122に対して設定された確率で、キャプチャの成否を判定するようにした以外は、第1実施例と同じであるため、重複した説明は省略する。
【0152】
図18に示すように、第2実施例の敵オブジェクトデータ72cでは、敵オブジェクト122の各々に対応して、囲み回数と各回における確率(キャプチャの成功率)が設定されている。それ以外は、第1実施例で説明した内容と同じである。たとえば、敵オブジェクFでは囲み回数の最大値は「3」であり、この敵オブジェクトFをキャプチャする場合には、囲み回数が1回ではキャプチャに成功する確率は10%であり、囲み回数が2回ではキャプチャに成功する確率は50%であり、そして、囲み回数が3回ではキャプチャに成功する確率は100%である。ただし、囲み回数の最大値が「1」である場合には、敵オブジェクト122を囲むことに一度成功すれば、100%の確率でキャプチャに成功することになる。詳細な説明は省略するが、他の敵オブジェクト122についても同様である。
【0153】
つまり、第2実施例においては、第1実施例で示した囲み/効果オブジェクト発生処理の一部が異なる。具体的には、図16に示したフロー図が図19に示すフロー図と置き換えられる。以下では、囲み/効果オブジェクト発生処理のうち、図19に示すフロー図についてのみ説明することにするが、第1実施例で説明した内容については簡単に説明することする。
【0154】
図19を参照して、CPUコア42は、囲み操作によって形成された閉領域に敵オブジェクト122が存在すると判断すると、ステップS121で“YES”となり、次のステップS123で、囲み回数カウンタ72iをデクリメントする。続くステップS201では、敵オブジェクト122および囲み回数に応じた確率を参照する。つまり、図18に示した敵オブジェクトデータ72cを参照して、確率を取得する。ただし、第1実施例から分かるように、囲み回数カウンタ72iの初期値として、第2実施例で言う囲み回数の最大値が設定されるため、囲み回数の最大値から囲みカウンタ72iのカウント値を減算した数値に対応して記述された確率が読み出される。
【0155】
次に、確率に従ってキャプチャの成否を判定する。そして、ステップS205で、キャプチャに成功したかどうかを判断(判定)する。ステップS205で“NO”であれば、つまりキャプチャに失敗した場合には、上述したように、ステップS133で、囲み線消去処理を実行し、ステップS135で、検出座標データ72fを消去して、囲み/効果オブジェクト発生処理をリターンする。一方、ステップS205で“YES”であれば、つまりキャプチャに成功した場合には、ステップS127で、囲み線消去処理を実行し、ステップS129で、検出座標データ72fを消去し、そして、ステップS131で、キャプチャ成功フラグ72kをオンして、囲み/効果オブジェクト発生処理をリターンする。
【0156】
この第2実施例によれば、囲み回数毎に確率により敵オブジェクトのキャプチャに成功するか否かを判断するので、比較的囲み回数を大きく設定されている敵オブジェクトであっても簡単にキャプチャできる場合もあり、第1実施例の効果に加え、ゲームの意外性や囲み操作を楽しむこともできる。
【0157】
なお、上述の実施例では、効果オブジェクトに接触した敵オブジェクトの移動速度を遅くしたり、その移動を停止させたり、その移動可能範囲を制限したり、囲み回数を加算(倍増)したり、一度に描くことができる軌跡の長さを長くしたりすることにより、囲み難易度を低減させるようにした。ただし、これに限定される必要はなく、ゲームの内容によっては、効果オブジェクトに接触した敵オブジェクトの移動速度を速くしたり、移動可能範囲を広げたりすることにより、囲み難易度を増加させるようにしてもよい。つまり、囲み操作を支援(補助)するだけでなく、囲み操作を邪魔することもできる。または、囲み回数を実際の囲み回数よりも少なく計算したり、一度に描くことができる軌跡の長さを短くしたりするようにしても、囲みの難易度を増加させることができる。さらには、囲み難易度が増加される影響オブジェクトと、囲み難易度が減少される影響オブジェクトとを混在させるようにしてもよい。
【0158】
また、上述の実施例では、表示器が一体的に形成されたゲーム装置についてのみ説明したが、表示器が別に設けられたゲーム装置にも適用することができる。
【0159】
さらに、上述の実施例では、ポインティングデバイスとしてタッチパネルを用いるようにしたが、これに限定されるべきではない。他の例としては、コンピュータマウス、タッチパッドまたはペンタブレットを用いることができる。ただし、かかる場合には、ゲーム画面にマウスポインタのような指示画像を表示する必要がある。
【0160】
さらにまた、ゲーム装置の構成は、上述の実施例の構成に限定されるべきでない。たとえば、LCDは1つでもよく、タッチパネルは2つのLCDのそれぞれに設けるようにしてもよい。また、左右2つのスピーカを設けるようにしてもよい。
【図面の簡単な説明】
【0161】
【図1】図1はこの発明のゲーム装置を示す図解図である。
【図2】図1は図1実施例に示すゲーム装置の電気的な構成を示すブロック図である。
【図3】図3は図1実施例の第2のLCDに表示されるゲーム画面の例を示す図解図である。
【図4】図4は図1実施例の第2のLCDに表示されるゲーム画面の他の例を示す図解図である。
【図5】図5は図1実施例の第2のLCDに表示されるゲーム画面のその他の例を示す図解図である。
【図6】図6は囲み操作によって形成された閉領域内に敵オブジェクトが存在するか否かの囲み判定を説明するための図解図である。
【図7】図7は囲み操作によって形成された閉領域内に敵オブジェクトが存在するか否かの囲み判定を説明するための他の図解図である。
【図8】図8は図2に示すRAMのメモリマップを示す図解図である。
【図9】図9は図8に示すデータ記憶領域を示す図解図である。
【図10】図10は図9に示す敵オブジェクトデータおよび耐久度データの具体例を示す図解図である。
【図11】図11は図2に示すCPUコアのゲーム全体処理の一部を示すフロー図である。
【図12】図12は図2に示すCPUコアのゲーム全体処理の他の一部であり、図11に後続するフロー図である。
【図13】図13は図2に示すCPUコアの影響オブジェクト選択処理を示すフロー図である。
【図14】図14は図2に示すCPUコアの囲み/効果オブジェクト発生処理の一部を示すフロー図である。
【図15】図15は図2に示すCPUコアの囲み/効果オブジェクト発生処理の他の一部であり、図14に後続するフロー図である。
【図16】図16は図2に示すCPUコアの囲み/効果オブジェクト発生処理のその他の一部であり、図14および図15に後続するフロー図である。
【図17】図17は図2に示すCPUコアの囲み線消去/効果発動処理を示すフロー図である。
【図18】図18はこの発明の第2実施例における敵オブジェクトデータの具体例を示す図解図である。
【図19】図19は第2実施例におけるCPUコアの囲み/効果オブジェクト発生処理の一部であり、図14および図15に後続するフロー図である。
【符号の説明】
【0162】
10 …ゲーム装置
12,14 …LCD
16,16a,16b …ハウジング
20 …操作スイッチ
22 …タッチパネル
24 …スティック
28 …メモリカード
28a …ROM
28b,48 …RAM
32 …アンテナ
40 …電子回路基板
42 …CPUコア
50,52 …GPU
54 …I/F回路
56,58 …VRAM
60 …LCDコントローラ
【技術分野】
【0001】
この発明はゲームプログラムおよびゲーム装置に関し、特にたとえば、仮想空間内のオブジェクトを画面に表示する表示装置と、少なくとも画面上の位置を指定するためのポインティングデバイスとを備える、ゲーム装置およびそのゲームプログラムに関する。
【背景技術】
【0002】
この種のゲーム装置の一例が非特許文献1に開示される。この非特許文献1に開示されるゲームでは、敵オブジェクトやコインのようなアイテムを囲むように、タッチパネル上で円を描くと、当該円に従って複数の雲オブジェクトが表示され、正しく円を描いた場合には、当該複数の雲オブジェクトが風船オブジェクトに変化される。このとき、風船オブジェクト内において、敵オブジェクトはコインに変化し(コインはそのまま)、プレイヤオブジェクトが当該風船オブジェクトに触れると、コインを取得することができる。
【非特許文献1】http://www.nintendo.co.jp/ds/ayij/index.html
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、非特許文献1の技術では、敵オブジェクトやアイテムを囲むように操作することにより、風船オブジェクトにコインのようなアイテムを閉じ込めて、当該アイテムを取得し易くするだけであり、その後のアイテム取得やゲーム展開に何ら影響を及ぼすことがない。このため、プレイヤは囲む敵オブジェクトの種類やアイテムを何ら考慮する必要がなく、ゲームの面白味に欠けてしまう恐れがある。
【0004】
それゆえに、この発明の主たる目的は、新規な、ゲームプログラムおよびゲーム装置を提供することである。
【0005】
この発明の他の目的は、ゲームの面白味を増大させることができる、ゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【0006】
請求項1の発明は、仮想空間内のオブジェクトを画面に表示する表示装置と、少なくとも画面上の位置を指定するためのポインティングデバイスとを備えるゲーム装置のゲームプログラムである。このゲームプログラムは、ゲーム装置のプロセサを、入力座標検出手段、線分算出手段、閉領域判断手段、囲み判断手段、影響オブジェクト記憶制御手段、および難易度変化手段として機能させる。入力座標検出手段は、ポインティングデバイスによって指定される画面上の位置を示す入力座標を所定時間毎に検出する。線分算出手段は、入力座標検出手段によって検出された前回の入力座標と今回の入力座標とを結ぶ線分を算出する。閉領域判断手段は、線分算出手段によって算出された複数の線分によって閉領域が形成されたか否かを判断する。囲み判断手段は、閉領域判断手段によって閉領域が形成されたことが判断されたとき、当該閉領域にオブジェクトが含まれるかどうかを判断する。影響オブジェクト記憶制御手段は、囲み判断手段によってオブジェクトが閉領域に含まれることが判断されたとき、当該オブジェクトを影響オブジェクトとする取得情報を記憶手段に記憶する。そして、難易度変化手段は、記憶手段に記憶された取得情報が示す影響オブジェクトに基づいて、他のオブジェクトの囲み難易度を変化させる。
【0007】
請求項1の発明では、ゲーム装置(10:実施例で相当する参照符号。以下、同じ。)は、仮想空間内のオブジェクト(102,104,122)を画面に表示する表示装置(14)と、少なくとも画面上の位置を指定するためのポインティングデバイス(22)とを備える。ゲームプログラムは、このゲーム装置(10)のプロセサ(42)を、入力座標検出手段(42,S71,S73)、線分算出手段(42,S85)、閉領域判断手段(42,S113)、囲み判断手段(42,S121)、影響オブジェクト記憶制御手段(42,S35,S37)および難易度変化手段(42,S19,S169)として機能させる。入力座標検出手段(42,S71,S73)は、ポインティングデバイス(22)によって指定される画面上の位置を示す入力座標を所定時間毎に検出する。線分算出手段(42,S85)は、入力座標検出手段(42,S71,S73)によって検出された前回の入力座標と今回の入力座標とを結ぶ線分を算出する。つまり、時間的に連続する2点を結ぶ線分が求められる。閉領域判断手段(42,S113)は、線分算出手段(42,S85)によって算出された複数の線分によって閉領域が形成されたか否かを判断する。たとえば、今回算出した線分がそれ以前に算出した線分と交差するか否かを判断する。囲み判断手段(42,S121)は、閉領域判断手段によって閉領域が形成されたことが判断されたとき、つまり複数の線分による閉多角形が形成されたとき、その閉領域(閉多角形)にオブジェクト(実施例では、122)が含まれるかどうかを判断する。影響オブジェクト記憶制御手段(42,S35,S37)は、オブジェクト(122)が閉領域に含まれることが判断されたとき(121で“YES”)、このオブジェクト(122)を影響オブジェクトとする取得情報(72e)を記憶手段(48)に記憶する。難易度変化手段(42,S19,S169)は、記憶手段(48)が示す影響オブジェクトに基づいて、他のオブジェクト(122)の囲み難易度を変化させる。
【0008】
第1の発明によれば、既に取得したオブジェクトに基づいて、他のオブジェクトを囲み難易度を変化させるので、単にオブジェクトを取得するようなゲームのように、ゲームが単調になることがない。また、取得するオブジェクトを考慮しながらプレイする必要があるので、ゲームの面白味を増大させることができる。
【0009】
請求項2の発明は請求項1に従属し、プロセサを、囲み判断手段によってオブジェクトが閉領域に含まれることが判断された回数をカウントする囲み回数カウント手段、および囲み回数カウント手段によってカウントされた回数が所定回数に達したか否かを判断する囲み回数判断手段としてさらに機能させ、影響オブジェクト記憶制御手段は、囲み回数判断手段によって囲み回数が所定回数に達したことが判断されたとき、オブジェクトを影響オブジェクトとする取得情報を記憶手段に記憶する。
【0010】
請求項2の発明では、ゲームプログラムは、プロセサ(42)を囲み回数カウント手段(42,S123)および囲み回数判断手段(42,S125)としてさらに機能させる。囲み回数カウント手段(42,S123)は、オブジェクト(122)が閉領域に含まれることが判断された回数をカウントする。囲み回数判断手段(42,S125)は、囲み回数カウント手段(42,S123)によってカウントされた回数が所定回数に達したか否かを判断する。たとえば、所定回数は各オブジェクトに異なる値が設定される。影響オブジェクト記憶制御手段(42,S35,S37)は、囲み回数が所定回数に達したとき(S125で“YES”)、オブジェクトを影響オブジェクトとする取得情報(72e)を記憶手段(48)に記憶する。
【0011】
請求項2の発明によれば、所定回数を各オブジェクトで異なる値に設定することにより、オブジェクト毎に取得する難易度を変化させることができる。したがって、たとえば、珍しいオブジェクトや囲み難易度を大幅に変化させるようなオブジェクトに対しては、所定回数を比較的大きい値に設定して、ゲームの困難性や面白味を増大させることができる。
【0012】
請求項3の発明は請求項2に従属し、プロセサを、入力座標検出手段によって入力座標が検出されなかったとき、または、オブジェクトが線分に接触したとき、囲み回数カウント手段によってカウントされた囲み回数をリセットする囲み回数リセット手段としてさらに機能させる。
【0013】
請求項3の発明では、ゲームプログラムは、プロセサ(42)を囲み回数リセット手段(42,S81,S161)としてさらに機能させる。囲み回数リセット手段(42,S81,S161)は、入力座標検出手段(42,S71,S73)によって入力座標が検出されなかったとき(S71で“NO”)、または、オブジェクト(122)が線分に接触したとき(S151で“YES”)、囲み回数カウント手段(42,S123)によってカウントされた囲み回数をリセットする。したがって、たとえば、囲み操作の回数が所定回数に達する前に囲み操作を止めたり、オブジェクト(22)が線分に接触ないし衝突または攻撃したりした場合には、囲み回数がリセットされる。
【0014】
請求項3の発明によれば、囲み操作が連続的でない場合やオブジェクトの衝突により邪魔をされた場合には、それまでにカウントされた囲み回数をリセットするので、オブジェクトを取得するための難易度を上げることが出来る。
【0015】
請求項4の発明は1ないし3のいずれかに従属し、難易度変化手段は、一定期間だけ、または一定回数だけ、囲み難易度を変化させ、一定期間が経過したとき、または一定回数を超えたとき、影響オブジェクトについての取得情報を記憶手段から消去する消去手段としてプロセサをさらに機能させる。
【0016】
請求項4の発明では、たとえば、難易度変化手段(42,S19,S169)は、一定期間だけ、または一定回数だけ、囲み難易度を変化させる。消去手段(42,S107)は、一定期間が経過したとき(S107で“YES”)、または一定回数を超えたとき、影響オブジェクトについての取得情報(72e)を記憶手段(48)から消去する。
【0017】
請求項4の発明によれば、難易度が変化されるのは、一定期間または一定回数であり、有限であるため、ゲームが簡単になり過ぎたり、難しくなり過ぎたりすることがない。したがって、ゲームに飽きが来るのを防止することができる。
【0018】
請求項5の発明は請求項1ないし4のいずれかに従属し、難易度変化手段は、オブジェクトの移動速度を変化させる。
【0019】
請求項5の発明では、難易度変化手段(42,S19,S169)は、オブジェクト(122)の移動速度を変化させる。たとえば、オブジェクト(122)の移動速度を速くしたり、遅くしたりする。
【0020】
請求項5の発明によれば、オブジェクトの移動速度を変化させることにより囲み操作の難易度を変化させることができ、ゲームの面白味を増大させることができる。
【0021】
請求項6の発明は請求項1ないし4のいずれかに従属し、難易度変化手段は、オブジェクトの移動可能範囲を変化させる。
【0022】
請求項6の発明では、難易度変化手段(42,S19,S169)は、オブジェクト(122)の移動可能範囲を変化させる。たとえば、オブジェクト(122)の移動可能範囲を広げたり、狭めたりする。
【0023】
請求項6の発明においても、囲み操作の難易度を変化させることができ、ゲームの面白味を増大させることができる。
【0024】
請求項7の発明は請求項2ないし4のいずれかに従属し、難易度変化手段は、囲み回数カウント手段のカウント値を変化させる。
【0025】
請求項7の発明では、難易度変化手段(42,S19,S169)は、囲み回数カウント手段(42,S123)のカウント値を変化させる。たとえば、カウント値を増加(倍増)させたり、低減(半減)させたりする。したがって、少ない囲み回数で所定回数に達するようにしたり、実際の所定回数よりも多い囲み回数で当該所定回数に達するようにしたりできる。
【0026】
請求項7の発明においても、囲み操作の難易度を変化させることができ、ゲームの面白味を増大させることができる。
【0027】
請求項8の発明は請求項1ないし4のいずれかに従属し、描画可能な線の長さは一定であり、難易度変化手段は、描画可能な線の長さを変化させる。
【0028】
請求項8の発明では、たとえば、囲み操作によって、描画可能な線(124)の長さは一定である。難易度変化手段(42,S19,S169)は、描画可能な線(124)の長さを変化させる。つまり、描画可能な線(124)が長ければ、比較的大きい範囲を囲みことができるため、囲み操作が容易であり、逆に、描画可能な線(124)が短ければ、比較的狭い範囲しか囲むことができず、囲み操作が困難である。
【0029】
請求項8の発明においても、囲み操作の難易度を変化させることができ、ゲームの面白味を増大させることができる。
【0030】
請求項9の発明は請求項1ないし8のいずれかに従属し、線分算出手段によって算出された線分を記憶手段に記憶された取得情報に対応する影響オブジェクトの属性に基づく色で表示する線分表示手段としてプロセサをさらに機能させる。
【0031】
請求項9の発明では、ゲームプログラムは、プロセサ(42)を線分表示手段(42,S89)としてさらに機能させる。線分表示手段(42,S89)は、線分算出手段(42,S85)によって算出された線分を記憶手段(48)に記憶された取得情報(72e)に対応する影響オブジェクトの属性に基づく色で表示する。
【0032】
請求項9の発明によれば、選択した影響オブジェクトの属性を視覚的に識別可能にすることができる。
【0033】
請求項10の発明は、仮想空間内のオブジェクトを画面に表示する表示装置と、少なくとも画面上の位置を指定するためのポインティングデバイスとを備えるゲーム装置である。このゲーム装置は、入力座標検出手段、線分算出手段、閉領域判断手段、囲み判断手段、影響オブジェクト記憶制御手段、および難易度変化手段を備える。入力座標検出手段は、ポインティングデバイスによって指定される画面上の位置を示す入力座標を所定時間毎に検出する。線分算出手段は、入力座標検出手段によって検出された前回の入力座標と今回の入力座標とを結ぶ線分を算出する。閉領域判断手段は、線分算出手段によって算出された複数の線分によって閉領域が形成されたか否かを判断する。囲み判断手段は、閉領域判断手段によって閉領域が形成されたことが判断されたとき、当該閉領域にオブジェクトが含まれるかどうかを判断する。影響オブジェクト記憶制御手段は、囲み判断手段によってオブジェクトが閉領域に含まれることが判断されたとき、当該オブジェクトを影響オブジェクトとする取得情報を記憶手段に記憶する。そして、難易度変化手段は、記憶手段に記憶された取得情報が示す影響オブジェクトに基づいて、他のオブジェクトの囲み難易度を変化させる。
【0034】
請求項10の発明においても、請求項1の発明と同様に、ゲームの面白味を増大させることができる。
【発明の効果】
【0035】
この発明によれば、取得したオブジェクトに基づいて他のオブジェクトを囲む際の難易度を変化させるので、プレイヤは取得するオブジェクトを考慮しながらゲームをプレイすることができる。つまり、ゲームの面白味を増大させることができる。
【0036】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0037】
<第1実施例>
図1を参照して、この発明の第1実施例であるゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。このLCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この第1実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
【0038】
なお、この第1実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【0039】
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも少し大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aよりも横長に選ばれ、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。また、下側ハウジング16bには、音抜き孔18が形成されるとともに、操作スイッチ20(20a,20b,20c,20d,20e,20Lおよび20R)が設けられる。
【0040】
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
【0041】
操作スイッチ20は、方向指示スイッチ(十字スイッチ)20a、スタートスイッチ20b、セレクトスイッチ20c、動作スイッチ(Aボタン)20d、動作スイッチ(Bボタン)20e、動作スイッチ(Lボタン)20Lおよび動作スイッチ(Rボタン)20Rを含む。スイッチ20a,20bおよび20cは、下側ハウジング16bの一方主面であり、LCD14の左側に配置される。また、スイッチ20dおよび20eは、下側ハウジング16bの一方主面であり、LCD14の右側に配置される。さらに、スイッチ20Lおよびスイッチ20Rは、それぞれ、下側ハウジング16bの上端(天面)の一部であり、上側ハウジング16aとの連結部以外に当該連結部を挟むように、左右に配置される。
【0042】
方向指示スイッチ20aは、ディジタルジョイスティックとして機能し、4つの押圧部の1つを操作することによって、プレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。スタートスイッチ20bは、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止(Pause)したりする等に用いられる。セレクトスイッチ20cは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【0043】
動作スイッチ20dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ20eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ20cで選択したゲームモードの変更やAボタン20dで決定したアクションの取り消し等のために用いられる。
【0044】
動作スイッチ(左押しボタン)20Lおよび動作スイッチ(右押しボタン)20Rは、プッシュボタンで構成され、左押しボタン(Lボタン)20Lおよび右押しボタン(Rボタン)20Rは、Aボタン20dおよびBボタン20eと同様の操作に用いることができ、また、Aボタン20dおよびBボタン20eの補助的な操作に用いることができる。
【0045】
また、LCD14の上面には、タッチパネル22が装着される。タッチパネル22としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル22は、その上面(検出面)をスティック24ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック24等」という場合がある。)で、押圧したり、撫でたり、触れたりすることにより操作すると、スティック24等の操作位置(タッチ位置)の座標(タッチ座標)を検出して、検出した座標に対応する座標データを出力する。
【0046】
この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル22の検出面の検出精度もその解像度に対応して256dot×192dotとしてある。ただし、タッチパネル22の検出面の検出精度は、LCD14の表示面の解像度よりも低くてもよく、高くてもよい。
【0047】
LCD12およびLCD14には異なるゲーム画像(ゲーム画面)を表示することができる。たとえば、一方のLCD(たとえば、LCD12)にゲームをプレイするためのゲーム画面を表示し、他方のLCD(たとえば、LCD14)に当該ゲームを操作するための文字情報を入力したり、所定の画像(アイコンなど)を指示したりするためのゲーム画面(操作画面)を表示することができる。したがって、プレイヤはスティック24等でタッチパネル22を操作することにより、LCD14の画面上で、文字情報(コマンド)を入力したり、所定の画像(アイコンなど)を指示したりすることができる。
【0048】
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この第1実施例では、LCD14)の上面にタッチパネル22が設けられるので、2画面(12,14)と2系統の操作部(20,22)とを有する構成になっている。
【0049】
また、この第1実施例では、スティック24は、たとえば上側ハウジング16aの側面(右側面)近傍に設けられる収納部(収納穴)26に収納することができ、必要に応じて取り出される。ただし、スティック24を設けない場合には、収納部26を設ける必要もない。
【0050】
さらに、ゲーム装置10はメモリカード(またはゲームカートリッジ)28を含み、このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは下端(底面)に設けられる挿入口30から挿入される。図1では省略するが、挿入口30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ46(図2参照)が設けられており、したがって、メモリカード28が挿入口30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア42(図2参照)がメモリカード28にアクセス可能となる。
【0051】
なお、図1では表現できないが、下側ハウジング16bの音抜き孔18と対応する位置であり、この下側ハウジング16bの内部にはスピーカ32(図2参照)が設けられる。
【0052】
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、電源スイッチ、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【0053】
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板40を含み、この電子回路基板40にはCPUコア42等の回路コンポーネントが実装される。CPUコア42は、バス44を介してコネクタ46に接続されるととともに、RAM48、第1のグラフィック処理ユニット(GPU)50、第2のGPU52、入出カインターフエース回路(以下、「I/F回路」という。)54およびLCDコントローラ60が接続される。
【0054】
コネクタ46には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ46と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア42は、ROM28aおよびRAM28bにアクセスすることができるのである。
【0055】
ROM28aは、ゲーム装置10で実行すべきゲーム(仮想ゲーム)のためのゲームプログラム、画像(キャラクタ画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像など)データおよびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)28bは、そのゲームの途中データやゲームの結果データを記憶(セーブ)する。
【0056】
RAM48は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア42は、メモリカード28のROM28aに記憶されたゲームプログラム、画像データおよび音データ等をRAM48にロードし、ロードしたゲームプログラムを実行する。また、CPUコア42は、ゲームの進行に応じて一時的に発生するデータ(ゲームデータやフラグデータ)をRAM48に記憶しつつゲーム処理を実行する。
【0057】
なお、ゲームプログラム、画像データおよび音データ等は、ROM28aから一度に全部、または部分的かつ順次的に読み出され、RAM48に記憶(ロード)される。
【0058】
GPU50およびGPU52は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア42からのグラフィックスコマンド(graphics command :作画命令)を受け、そのグラフィックスコマンドに従ってゲーム画像データを生成する。ただし、CPUコア42は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU50およびGPU52のそれぞれに与える。
【0059】
また、GPU50には、第1のビデオRAM(以下、「VRAM」という。)56が接続され、GPU52には、第2のVRAM58が接続される。GPU50およびGPU52が作画コマンドを実行するにあたって必要なデータ(画像データ:キャラクタデータやテクスチャ等のデータ)は、GPU50およびGPU52が、それぞれ、第1のVRAM56および第2のVRAM58にアクセスして取得する。なお、CPUコア42は、描画に必要な画像データをGPU50およびGPU52を介して第1のVRAM56および第2のVRAM58に書き込む。GPU50はVRAM56にアクセスして描画のためのゲーム画像データを作成し、GPU52はVRAM58にアクセスして描画のためのゲーム画像データを作成する。
【0060】
VRAM56およびVRAM58は、LCDコントローラ60に接続される。LCDコントローラ60はレジスタ62を含み、レジスタ62はたとえば1ビットで構成され、CPUコア42の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ60は、レジスタ62のデータ値が「0」である場合には、GPU50によって作成されたゲーム画像データをLCD12に出力し、GPU52によって作成されたゲーム画像データをLCD14に出力する。また、LCDコントローラ60は、レジスタ62のデータ値が「1」である場合には、GPU50によって作成されたゲーム画像データをLCD14に出力し、GPU52によって作成されたゲーム画像データをLCD12に出力する。
【0061】
なお、LCDコントローラ60は、VRAM56およびVRAM58から直接ゲーム画像データを読み出したり、GPU50およびGPU52を介してVRAM56およびVRAM58からゲーム画像データを読み出したりする。
【0062】
I/F回路54には、操作スイッチ20,タッチパネル22およびスピーカ32が接続される。ここで、操作スイッチ20は、上述したスイッチ20a,20b,20c,20d,20e,20Lおよび20Rであり、操作スイッチ20が操作されると、対応する操作信号(操作データ)がI/F回路54を介してCPUコア42に入力される。また、タッチパネル22からの座標データがI/F回路54を介してCPUコア42に入力される。さらに、CPUコア42は、ゲーム音楽(BGM)、効果音またはゲームキャラクタ(ゲームオブジェクト)の音声(擬制音)などのゲームに必要な音データをRAM48から読み出し、I/F回路54を介してスピーカ32から出力する。
【0063】
このような構成のゲーム装置10では、RPGのような仮想ゲームをプレイすることができる。この第1実施例の仮想ゲームでは、プレイヤは、プレイヤオブジェクトを2次元の仮想空間内で移動させ、遭遇した敵オブジェクトと戦闘したり、敵オブジェクトを取得(以下、「キャプチャ」ということがある。)したりして、ゲームを進行させ、ボスオブジェクトを倒すなどの最終的な目標を達成する。
【0064】
たとえば、図3(A)に示すようなゲーム画面100がLCD14に表示される。このゲーム画面100は、仮想空間の一部(フィールド)を表示したものであり、プレイヤオブジェクト102および村人(町人)などのノンプレイヤオブジェクト104が表示される。プレイヤオブジェクト102は、村人のようなノンプレイヤオブジェクト104と会話することにより、ゲーム進行の手がかりとなる内容を聞き出す。また、図示は省略するが、上述したように、LCD14上にはタッチパネル22が設けられる。したがって、スティック24等でLCD14上のプレイヤオブジェクト102をドラッグすることにより、当該プレイヤオブジェクト102をフィールド内で移動させることができる。ただし、操作スイッチ20(十字スイッチ20a)によってプレイヤオブジェクト102を移動させることもできる。
【0065】
なお、図3(A)では(以下、図3(B),図4(A),図4(B)および図5において同じ。)、分かり易く示すために、背景オブジェクトは省略してある。また、後述するプレイヤの体力値など、ゲームに必要な情報を可視表示(棒グラフや数値によって表示)してもよいが、ここでは省略してある。ただし、ゲームに必要な情報は、LCD12に表示するようにしてもよい。
【0066】
図3(B)はLCD14に表示される戦闘シーンにおいて表示されるゲーム画面(以下、説明の都合上、「キャプチャ画面」という。)120の一例を示す図解図である。キャプチャ画面120には、敵オブジェクト122が表示される。図3(B)に示すキャプチャ画面120は、図3(A)に示したようなゲーム画面100において、プレイヤオブジェクト102がフィールドを移動し、敵オブジェクト122に遭遇して、戦闘シーン(戦闘モード)に移行したときに表示される。
【0067】
ここで、プレイヤがスティック24等を用いて敵オブジェクト122を囲むようにタッチパネル22上を撫でる(スライドする)と、図4(A)に示すようなキャプチャ画面120が表示される。以下、説明の便宜上、キャプチャ画面120が表示されているときに、プレイヤがスティック等でタッチパネル22(LCD14)上を撫でる操作を「囲み操作」と呼ぶことにする。この図4(A)に示すキャプチャ画面120において(図4(B)および図5も同じ。)、開始点はプレイヤが囲み操作を開始した位置、すなわちタッチオンした位置である。ただし、囲み操作を連続的に行う場合には、この囲み操作により後述する閉領域が形成される毎に、開始点は更新される。また、図4(A)に示すように、囲み操作に従って線(以下、「囲み線」と呼ぶ。)124が表示される。この実施例では、CPUコア42は、タッチパネル22から入力される座標データを所定時間(たとえば、1フレーム)毎に検出し、前回検出した座標データが示すLCD14上の位置と今回検出した座標データが示すLCD14上の位置とを結ぶ線分を算出する。ただし、1フレームは、画面更新単位時間(1/60秒)である。そして、CPUコア42の指示に従って算出された線分がLCD14に表示される。このような処理が繰り返され、図4(A)に示すような囲み線124が表示される。
【0068】
なお、上述したように、LCD14の解像度とタッチパネル22の検出精度とは同じに設定してあるため、各々の座標系を同じに設定しておけば、タッチパネル22から入力される座標データをLCD14の座標データとしてそのまま使用することができる。
【0069】
また、図4(A)に示すように、敵オブジェクト122の上方には、当該的オブジェクト122をキャプチャするために必要な囲み回数を示すキャラクタ126(図4(A)では数字の「2」)が表示される。この囲み回数は、後述するように、敵オブジェクト122に応じて予め設定されており(図10(A)参照)、設定された数値がキャラクタ126で表示される。
【0070】
この第1実施例では、敵オブジェクト122をキャプチャするためには、プレイヤは、当該敵オブジェクト122に対応して予め決定された囲み回数以上、連続して当該敵キャラクタ122をスティック24等で囲む必要がある。厳密には、スティック24等で描いた囲み線124によって形成された閉領域内に敵オブジェクト122が存在する場合に、敵オブジェクト122を囲んだと判断し、これが囲み回数以上連続する必要がある。
【0071】
なお、敵オブジェクト122の囲み判定については後で詳細に説明するため、ここではその説明を省略する。
【0072】
また、プレイヤが囲み操作を行っている途中で、敵オブジェクト122が囲み線124に接触ないし衝突すると、図4(B)に示すように、囲み線124が切断され、消去される。このとき、プレイヤオブジェクト102の体力(または生命力)が所定量減算される。ただし、囲み線124には、後述するように耐久度が設定されており、敵オブジェクト122の接触ないし衝突した回数によって切断されるか否かが判断される。また、囲み線124が切断され、消去されると、それまでに敵オブジェクト122を囲んだ回数は無効になる(リセットされる)。
【0073】
なお、図示は省略するが、プレイヤが囲み操作を止めた場合にも、つまりタッチオフした場合にも、囲み線124は消去され、それまでに敵オブジェクト122を囲んだ回数は無効になる。
【0074】
また、この第1実施例では、敵オブジェクト122が囲み線に接触したり衝突したりした場合に、囲み線124が切断されるようにしてあるが、敵オブジェクト122の攻撃(たとえば、火や水を放つ)が囲み線124に命中した場合にも、当該囲み線124が切断されるようにしてもよい。ただし、囲み線124に対して耐久度が設定されている点は同じである。
【0075】
そして、プレイヤが、敵オブジェクト122に設定された囲み回数以上、連続して当該敵オブジェクト122を囲むと、図示は省略するが、プレイヤオブジェクト102は当該敵オブジェクト122のキャプチャに成功する。後で詳細に説明するが、プレイヤオブジェクト102は、キャプチャした敵オブジェクト122を選択(使用)することにより、当該敵オブジェクト122が持つ能力(効果)を、次回以降の囲み操作において、すなわち他の敵オブジェクト122をキャプチャする際に、発揮させることができる。つまり、囲み操作を支援(補助)するなどして、当該囲み操作に影響を及ぼす。
【0076】
なお、これ以降では、フィールド上に存在する敵オブジェクト122と、キャプチャした敵オブジェクト122とを区別する必要がある場合には、キャプチャした敵オブジェクト122を「影響オブジェクト」と呼ぶことにする。
【0077】
たとえば、属性が「草」である影響オブジェクトを選択すると、図5に示すように、囲み線124を描画すると、その囲み線124に沿って草木のような効果オブジェクト128が表示される。この効果オブジェクト128は、壁として働き、敵オブジェク122の移動可能範囲を制限する。したがって、敵オブジェクト122の行動範囲を狭くすることができ、囲み操作を容易にすることができるのである。
【0078】
また、図示は省略するが、属性が「火」である影響オブジェクトを選択すると、囲み線124に沿って炎(火)のような効果オブジェクト128が表示される。この効果オブジェクト128により、敵オブジェクト128を攻撃することができる。つまり、敵オブジェクト122が炎の効果オブジェクト128に接触すると、敵オブジェクト122にダメージが与えられ、その移動速度が低下したり、その動きが停止されたりする。これにより、囲み操作を容易にすることもできる。
【0079】
なお、図5に示す効果オブジェクト128は単なる一例であり、各影響オブジェクト(敵オブジェクト122)に応じて効果(プレイヤ補助)が設定されている(図10(A)参照)。
【0080】
ただし、この第1実施例では、プレイヤの囲み操作に従って効果オブジェクト128を発生させることができる期間は、一定期間(有効時間)に設定される。これは、無期限に効果オブジェクト128を発生できるようにすると、非常に簡単に敵オブジェクト122を囲むことができてしまい、プレイヤは直にゲームに飽きてしまうからである。ただし、有効時間は、影響オブジェクト(の属性)に応じて異なる値を設定するようにしてもよい。また、敵オブジェクト122の属性と影響オブジェクトの属性とに基づいて、有効時間を設定することもできる。さらに、有効時間に代えて、有効回数を設定するようにしてもよい。
【0081】
なお、この第1実施例では、効果オブジェクト128を発生することにより、囲み操作の難易度を容易化するようにしてあるが、逆に、囲み操作の難易度を高度化する場合であっても、このような有効時間や有効回数は設定すべきである。囲み操作の難易度を高度化する場合に、無期限に効果オブジェクト128を発生できるようにすると、ゲームが難しくなり過ぎてしまうからである。
【0082】
また、図面では表現することができないが、影響オブジェクトを選択した場合には、当該影響オブジェクトの属性に応じて決定されている色で線分すなわち囲み線124が表示される。たとえば、影響オブジェクトの属性が「水」であれば、囲み線124は青色で表示され、また、影響オブジェクトの属性が「火」であれば、囲み線124は赤色で表示される。ただし、何ら影響オブジェクトが選択されていない場合には、デフォルトで設定されている色(たとえば、灰色)で、囲み線124は表示される。
【0083】
ここで、図6および図7を用いて、敵オブジェクト122の囲み判定について説明する。図6(A)は、プレイヤが開始点から右周りに囲み操作を行って、囲み線124によって、敵オブジェクト122を囲んだ状態を示す。上述したように、CPUコア42は、タッチパネル22からの入力される座標データを1フレーム毎に検出し、検出した座標データが示すLCD14上の位置(位置座標)を検出する。検出した位置座標(検出座標)は時系列に従ってRAM48に記憶され、CPUコア42は、前回の検出座標と今回の検出座標とを結ぶ線分を算出する。ただし、CPUコア42は、RAM48に記憶される検出座標が1つの場合には、線分を算出することなく、囲み操作が開始されたと判断する。
【0084】
また、CPUコア42は、検出座標が3つ以上になると、CPUコア42は、今回算出した線分(今回の線分)がそれ以前に算出した線分(以前の線分)と交差するか否かを判断する。図6(A)に示すように、今回の線分が以前の線分と交差する場合には、閉領域が生成(形成)されたと判断し、その交差点を開始点と擬制して、図6(B)に示すように、交差点を含む閉領域を設定する。つまり、交差点を含む閉多角形を囲み図形として設定する。ただし、今回の線分が、以前の線分と交差しない場合には、閉領域は形成されていないと判断する。
【0085】
ここで、図示は省略するが、タッチオン(入力有り)状態からタッチオフ(入力無し)状態まで、プレイヤの囲み操作に従って囲み線124は描かれる(表示される)。ただし、一度に描くことができる囲み線124の長さは一定距離に決定されており、したがって、当該一定距離を越える場合には、最も古い検出座標が消去され、これに従って対応する線分(囲み線124の一部)も消去される。これは、一度に描くことができる囲み線124の長さを無制限にすると、非常に簡単に敵オブジェクト122を囲むことができてしまい、プレイヤは直にゲームに飽きてしまうからである。ただし、「一度に描くことができる囲み線124の長さ」とは、タッチオンからタッチオフまでに描くことができる囲み線124の長さ、または、一回の攻撃シーン(攻撃ターン)において描くことができる囲み線124を総合した長さである。
【0086】
上述したように、閉領域が設定されると、当該閉領域内に敵オブジェクト122が存在するかどうかを判断する。つまり、敵オブジェクト122の囲み判定が行われる。具体的には、図7(A)に示すように、敵オブジェクト122から上方向に引いた直線L1と当該敵オブジェクト122から左方向に引いた直線L2とを用いて、囲み判定が行われる。囲み判定では、まず、直線L1と閉領域を形成する線分(囲み線124)とが交差するかどうかを判断し、交差する場合には、その交差点の数(説明の便宜上、「第1個数」という。)を検出する。ただし、直線L1と閉領域を形成する線分とが交差しない場合には、第1個数は0である。次に、直線L2と閉領域を形成する線分とが交差するかどうかを判断し、交差する場合には、その交差点の数(説明の便宜上、「第2個数」という。)を検出する。ただし、直線L2と閉領域を形成する線分とが交差しない場合には、第2個数は0である。そして、第1個数および第2個数がそれぞれ奇数である場合には、敵オブジェクト122は閉領域内であると判定される。したがって、図7(A)に示す状態では、第1個数および第2個数はともに「1」であるため、敵オブジェクト122は閉領域内であると判定される。一方、第1個数および第2個数のうちのいずれか一方でも偶数(0を含む。)である場合には、敵オブジェクト122は閉領域外であると判定される。
【0087】
このような囲み判定を行うのは、プレイヤの囲み操作による閉領域が円形とは限らないからである。たとえば、図7(B)に示すように、敵オブジェクト122をハート型の閉領域で囲んだ場合について考えると、第1個数は「1」であり、第2個数は「3」であり、共に奇数である。図示は省略するが、図7(A)および図7(B)において、敵オブジェクト122を閉領域外に出してみると、第1個数および第2個数の少なくとも一方が「0」になったり、偶数(2,4)になったりすることが容易に分かる。
【0088】
なお、上述した囲み判定はCPUコア42が、検出座標データ72fおよび敵オブジェクト122の位置座標データ(図示せず)を参照し、RAM48のワーク領域を用いて実行する。
【0089】
図8は、図2に示したゲーム装置10に内蔵されるRAM48のメモリマップである。この図8を参照して、RAM48は、ゲームプログラム記憶領域70およびデータ記憶領域72を含む。ゲームプログラム記憶領域70には、ゲームプログラムが記憶される。このゲームプログラムは、ゲームメイン処理プログラム70a、画像生成プログラム70b、画像表示プログラム70c、影響オブジェクト選択プログラム70d、敵オブジェクト囲みプログラム70e、効果オブジェクト発生プログラム70f、効果オブジェクト消去プログラム70g、囲み線切断プログラム70h、効果発動プログラム70i、囲み線消去プログラム70jおよびバックアッププログラム70kなどによって構成される。
【0090】
ゲームメイン処理プログラム70aは、この第1実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム70bは、後述する画像データ72aを用いて、プレイヤオブジェクト102、ノンプレイヤオブジェクト102、アイテムオブジェクトおよび背景オブジェクトなどのオブジェクトを含むゲーム画像を生成するためのプログラムである。
【0091】
ここで、プレイヤオブジェクト102とは、プレイヤの操作によって仮想空間内を移動等するオブジェクトをいい、人物や動物を模した動画オブジェクトやアニメキャラクタについての動画オブジェクトなどが該当する。また、ノンプレイヤオブジェクト102とは、プレイヤの操作によらないで、プログラムに従って移動等するオブジェクトをいい、プレイヤオブジェクト102と同様に、人物や動物を模した動画オブジェクトやアニメキャラクタについての動画オブジェクトなどが該当する。アイテムオブジェクトとは、プレイヤオブジェクト102もしくはノンプレイヤオブジェクト102によって、取得または所持等されるアイテム(武器、薬、食物、魔法の道具、コインなど)についてのオブジェクトをいう。ただし、アイテムオブジェクトには、武器を使用するなどにより、プレイヤオブジェクト102が敵オブジェクト122を攻撃する場合に、発射(放射)される弾(または、炎、水、氷、泡、電気(雷)など)のオブジェクトも含まれる。背景オブジェクトとは、建物、壁、床(地面)、柱、樹木、草木などの背景についてのオブジェクトをいう。
【0092】
画像表示プログラム70cは、上述した画像生成プログラム70bに従って生成されたゲーム画像(ゲーム画面)を表示装置(LCD12,14)に表示するためのプログラムである。影響オブジェクト選択プログラム70dは、後述する敵オブジェクト囲みプログラム70eに従ってキャプチャした敵オブジェクト122すなわち影響オブジェクトを選択(使用)するためのプログラムである。
【0093】
敵オブジェクト囲みプログラム70eは、プレイヤの囲み操作に応じて、プレイヤオブジェクト102に敵オブジェクト122をキャプチャさせるためのプログラムである。効果オブジェクト発生プログラム70fは、上述した影響オブジェクト選択プログラム70dに従って影響オブジェクトが選択されている場合に、当該影響オブジェクトに対応するプレイヤ補助のための効果オブジェクト128を発生させるためのプログラムである。効果オブジェクト消去プログラム70gは、発生させた(キャプチャ画面120に表示した)効果オブジェクト128を消去させるためのプログラムである。この第1実施例では、プログラム70gは、発生させてから一定時間が経過したときに、効果オブジェクト128を消去させるようにしてある。ただし、敵オブジェクト122と効果オブジェクト128との距離(射程距離)が一定以上になったときに、当該効果オブジェクト128を消滅させるようにしてもよい。
【0094】
囲み線切断プログラム70hは、敵オブジェクト122が囲み線124に接触ないし衝突した場合に、当該囲み線124を切断するためのプログラムである。たとえば、キャプチャ画面120に表示された囲み線124のうち、敵オブジェクト122が接触等した位置を含む一定長さを消去して、囲み線124が切断された様子が表現される。ただし、後述するように、敵オブジェクト122が囲み線124に衝突する場合には、囲み線124の耐久度が0以下になったときに、囲み線124が切断される。効果発動プログラム70hは、囲み線124に従って効果オブジェクト128が発生されている場合に、当該効果オブジェクト128に接触ないし衝突した敵オブジェクト122にダメージを与えて、その移動速度を低下させたり、その移動を停止させたり、当該敵オブジェクト122の移動可能範囲を制限したりするためのプログラムである。また、プログラム70hは、囲み線124を一度に描画することができる長さを延長することができる。さらに、プログラム70hは、敵オブジェクト122を囲んだ回数を実際に囲んだ回数よりも増加(倍増)させたりすることもできる。ただし、プログラム70hは、影響オブジェクトが単独で敵オブジェクト122に攻撃する効果がある場合には、上述した影響オブジェクト選択プログラム70dに従って影響オブジェクトが選択されると、囲み操作を開始する前に(囲み操作の有無に拘わらず)、一定の効果を発動する。たとえば、ゲーム空間に、火(炎)、水、氷、電気(雷)などが発生され、敵オブジェクト122にダメージを与えることができる。敵オブジェクト122にダメージを与えた場合の効果は、効果オブジェクト128に敵オブジェクト122が接触した場合と同様である。
【0095】
囲み線消去プログラム70jは、プレイヤが囲み操作を中止したり(タッチオフの状態)、囲み線124が切断されたり、囲み判定を実行したりしたときに、キャプチャ画面120に囲み線124をすべて消去するためのプログラムである。バックアッププログラム70kは、RAM48に記憶されたゲームデータ(途中データないし結果データ)を、プレイヤの指示や或るイベントの発生に応じて、メモリカード28のRAM28bに記憶(セーブ)するためのプログラムである。
【0096】
なお、図示は省略するが、ゲームプログラム記憶領域70には、プレイヤオブジェクト102などのゲームオブジェクトの音声ないし擬声音、効果音、BGMなどの音楽のようなゲームに必要な音を出力するための音出力プログラムなども記憶される。
【0097】
図9に示すように、データ記憶領域72には、画像データ72a、体力値データ72b、敵オブジェクトデータ72c、耐久度データ72d、影響オブジェクトデータ72eおよび検出座標データ72fなどのデータが記憶される。
【0098】
画像データ72aは、上述したように、ゲーム画像を生成するためのデータ(ポリゴンデータ、テクスチャデータなど)である。体力値データ72bは、プレイヤオブジェクト102の体力値ないし生命力(ライフ)の値である。この第1実施例では、体力値は、プレイヤないしプレイヤオブジェクト102のレベルや経験値に応じてその初期値が決定され、囲み線124が切断されると、所定量減算される。ただし、減算量は、切断されたときの囲み線124の長さに応じて可変的に設定するようにしてもよい。体力値が消滅すると(0以下になると)、プレイヤオブジェクト102は死滅し、場合によっては、ゲームオーバとなる。
【0099】
敵オブジェクトデータ72cは、各敵オブジェクト122についての属性(特性)等を定義(記述)したテーブルデータである。具体的には、図10(A)に示すように、敵オブジェクトデータ72cでは、名称に対応して、属性、囲み回数およびプレイヤ補助の内容が記述される。名称の欄には、敵オブジェクト122の名称ないし識別情報が記述される。図10(A)では、敵オブジェクト122の名称として、敵オブジェクトA,B,C,D,E,F,…が記載される。属性の欄には、対応する敵オブジェクト122の属性が記述される。属性は、敵オブジェクト122の種別を示し、この第1実施例では、水,格闘,電気,草,氷,悪,…などに分類される。囲み回数の欄には、対応する敵オブジェクト122のキャプチャを成功するために必要な囲み回数(囲み回数の最大値)が記述される。プレイヤ補助の欄には、プレイヤが敵オブジェクト122をキャプチャする際に、囲み操作の難易度を変化(たとえば、容易化)させるための効果が記載される。具体的には、対応する敵オブジェクト122をプレイヤが影響オブジェクトとして所持しており、他の敵オブジェクト122をキャプチャする際に、当該影響オブジェクトを選択すると(使用すると)、プレイヤ補助の欄に記載された効果が発動されるのである。
【0100】
たとえば、影響オブジェクトとしての敵オブジェクトAが選択された場合には、プレイヤが囲み操作する際に描かれる囲み線124に従って水のような効果オブジェクト128が噴出され、その水の効果オブジェクト128に今回キャプチャしようとしている敵キャラクタが接触ないし衝突すると、当該敵キャラクタにダメージを与えて、その動きを鈍くさせることができる。
【0101】
また、影響オブジェクトとしての敵オブジェクトBが選択された場合には、囲み操作する際に、敵オブジェクト122を囲んだ回数が増大(倍増)される。たとえば、プレイヤの囲み操作により、敵オブジェクト122を3回囲んだ場合には、その囲み操作の回数が6にされる。つまり、囲み操作の回数が少なくて済む。
【0102】
なお、影響オブジェクトとしての敵オブジェクトCが選択された場合には、囲み操作に従って電気または雷のような効果オブジェクト128が発生される以外は、敵オブジェクトAが選択された場合と同様であるため、同様の説明は省略することにする。
【0103】
また、プレイヤが影響オブジェクトとしての敵オブジェクトDが選択された場合には、プレイヤが囲み操作する際に描かれる囲み線124に従って草のような効果オブジェクト128が発生され、その草の効果オブジェクト128が壁として働き、今回キャプチャしようとする敵オブジェクト122はその移動可能範囲を制限(規制)される。つまり、行動範囲が狭くされる。
【0104】
さらに、影響オブジェクトとしての敵オブジェクトEが選択された場合には、プレイヤが囲み操作する際に描かれる囲み線124に従って氷のような効果オブジェクト128が発生され、その氷に今回キャプチャしようとしている敵オブジェクト122が接触ないし衝突すると、当該敵オブジェクト122を凍らせて、その動きを停止させることができる。
【0105】
そして、影響オブジェクトとしての敵オブジェクトFが選択された場合には、プレイヤが囲み操作する際に描くことができる囲み線124の長さが延長される。このように、囲み線124の長さが延長されると、比較的大きい範囲を囲むことができる。
【0106】
このように、影響オブジェクトを選択すると、敵オブジェクト122をキャプチャする際に、当該影響オブジェクトに応じた攻撃等を当該敵オブジェクト122に加えて、その移動を鈍くさせたり、停止させたりして、囲み操作が容易化される。また、場合によっては、囲み操作の回数が倍増されたり、囲み線124の長さが延長されたりして、囲み操作が容易化される。
【0107】
ただし、図示は省略するが、上述したように、影響オブジェクトとしての敵オブジェクト122の中には、プレイヤが囲み操作を開始する前に、今回キャプチャしようとしている敵オブジェクト122に単独で攻撃することができるものも存在する。かかる場合には、影響オブジェクトが選択されると、囲み操作の有無に拘わらず、当該影響オブジェクトの属性に応じた攻撃が敵オブジェクト122に対して実行される。たとえば、単独で攻撃することができる影響オブジェクトの属性が「水」であれば、敵オブジェクト122目掛けて水を噴射したり、敵オブジェクト122を水中に閉じこめたりする。また、単独で攻撃することができる影響オブジェクトの属性が「電気」であれば、敵オブジェクト122目掛けて雷を落とすなどする。これらは単なる例示であり、限定されるべきでなく、ゲームプログラマや開発者等によって設定される事項である。
【0108】
また、この敵オブジェクトデータ72cは、単なる例示であり、限定されるべきでなく、ゲームプログラマや開発者が設定する事項であり、様々なバリエーションを取り得る。
【0109】
図9に戻って、耐久度データ72dは、プレイヤが影響オブジェクトを選択した場合に、当該影響オブジェクトの属性と敵オブジェクト122の属性とによって囲み線124の耐久度(敵オブジェクト122の接触(衝突)回数)を決定するためのテーブルデータである。具体的には、図10(B)に示すように、影響オブジェクト(図10(B)では、「影」と記載)の属性が縦方向に記載され、敵オブジェクト122(図10(B)では、「敵」と記載)の属性が横方向に記載される。この耐久度データ72dに従えば、影響オブジェクトの属性と敵オブジェクト122の属性とから耐久度、具体的には、後述する耐久度カウンタ72jに設定する初期値が決定される。たとえば、影響オブジェクトの属性が「電気」であり、敵オブジェクト122の属性が「水」である場合には、耐久度カウンタ72jの初期値として「5」が設定される。詳細な説明は省略するが、他の場合も同様にして、耐久度カウンタ72jの初期値が設定される。
【0110】
なお、耐久度データ72dは、単なる例示であり、限定されるべきではない。これらは、ゲームプログラマや開発者が設定する事項であり、様々なバリエーションを取り得る。
【0111】
また、影響オブジェクトの属性および敵オブジェクト122の属性は、上述した敵オブジェクトデータ72cから取得する。
【0112】
図9に戻って、影響オブジェクトデータ72eは、プレイヤオブジェクト102がキャプチャして、現在所持している敵オブジェクト122すなわち影響オブジェクトについてのデータである。たとえば、影響オブジェクトデータ72eは、各敵オブジェクト122に対応するビットを有するレジスタである。所持している敵オブジェクト122すなわち影響オブジェクトに対応するビットにはデータ値「1」が設定され、所持していない敵オブジェクト122に対応するビットにはデータ値「0」が設定される。検出座標データ72fは、タッチパネル22から入力される座標データに対応するLCD14上の座標(検出座標)を時系列に従って記憶したデータである。
【0113】
なお、図示は省略するが、データ記憶領域72には、ゲームに必要な音を出力するための音(音楽)データも記憶される。上述したような体力値データ72b、影響オブジェクトデータ72eは、ゲームの進行に従って更新され、これらはゲームデータ(途中データや結果データ)に含まれる。図示は省略してあるが、プレイヤオブジェクト102(またはプレイヤ)のレベルなどもゲームデータに含まれる。
【0114】
また、データ記憶領域72には、表示時間タイマ72g、有効時間タイマ72h、囲み回数カウンタ72i、耐久度カウンタ72j、キャプチャ成功フラグ72kおよび選択フラグ72mなどが記憶される(設けられる)。
【0115】
表示時間タイマ72gは、効果オブジェクト128の表示時間(発生している期間)をカウントするためのタイマである。たとえば、上述したように、効果オブジェクト128は一定時間表示され、その後消滅する。ただし、効果オブジェクト128毎に一定時間は異なる値を設定するようにしてもよい。かかる場合には、敵オブジェクトデータ72cにおいて、各敵オブジェクト122に対応して一定時間を設定しておけばよい。また、有効時間タイマ72hは、効果オブジェクト128を発生させることができる期間(有効時間)をカウントするためのタイマである。上述したように、この第1実施例では、効果オブジェクト128を発生させることが可能な期間は一定であり、一定期間を過ぎると、効果オブジェクト128を発生させることができなくなる。つまり、影響オブジェクトが消滅し(プレイヤオブジェクト102の手から離れ)、その効力を発揮することができなくなるのである。具体的には、影響オブジェクトデータ72eにおいて、消滅させるべき影響オブジェクト(敵オブジェクト122)に対応するビットにデータ値「0」が設定されるのである。
【0116】
囲み回数カウンタ72iは、プレイヤが敵オブジェクト122を囲んだ回数をカウントするためのカウンタである。この第1実施例では、囲み回数カウンタ72iには、敵オブジェクトデータ72cにおいて敵オブジェクト122に対応して設定されている囲み回数が初期値として設定され、プレイヤの囲み操作によって形成された閉領域内に敵オブジェクト122が存在すると、つまり敵オブジェクト122を囲むと、デクリメントされる。この第1実施例では、囲み回数カウンタ72iのカウント値が0になると、敵オブジェクト122のキャプチャに成功する。具体的には、影響オブジェクトデータ72eにおいて、キャプチャした敵オブジェクト122に対応するビットにデータ値「1」が設定されるのである。
【0117】
耐久度カウンタ72jは、囲み線124の耐久度をカウントするためのカウンタである。上述したように、影響オブジェクトが選択された場合には、キャプチャしようとする敵オブジェクト122の属性と選択された影響オブジェクトの属性とに応じた数値が耐久度カウンタ72jの初期値として設定される。ただし、影響オブジェクトが選択されていない場合には、耐久度は普通であり、キャプチャしようとする敵オブジェクト122の属性に拘わらず、耐久度カウンタ72jの初期値としてデフォルトの数値(たとえば、「3」)が設定される。この耐久度カウンタ72jは、敵オブジェクト122が囲み線124に接触(衝突)すると、デクリメントされる。そして、耐久度カウンタ72jのカウント値が0になると、囲み線124は切断される。
【0118】
キャプチャ成功フラグ72kは、敵オブジェクト122のキャプチャに成功したか否かを判断するためのフラグであり、1ビットのレジスタで構成される。敵オブジェクト122のキャプチャに成功した場合には、キャプチャ成功フラグ72kはオン(成立)され、データ値「1」が設定される。それ以外では、キャプチャ成功フラグ72kはオフ(不成立)され、データ値「0」が設定される。たとえば、このキャプチャ成功フラグ72kは、戦闘シーンの開始時にリセット(オフ)される。
【0119】
選択フラグ72mは、プレイヤが影響オブジェクトを選択した(使用する)か否かを判断するためのフラグであり、1ビットのレジスタで構成される。プレイヤが影響オブジェクトを選択している場合には、選択フラグ72mはオンされ、データ値「1」が設定される。一方、プレイヤが影響オブジェクトを選択していない場合には、選択フラグ72mはオフされ、データ値「0」が設定される。
【0120】
なお、図示は省略するが、データ記憶領域72には、ゲームに必要な他のタイマ、カウンタ或いはフラグも設けられる。
【0121】
具体的には、図2に示したCPUコア42が図11および図12に示すゲーム全体処理を実行する。図11に示すように、CPUコア42は、ゲーム全体処理を開始すると、ステップS1で初期設定する。たとえば、CPUコア42は、RAM48を初期化して、メモリカード28のROM28aからゲームプログラムやデータを読み出し、RAM48に書き込み。このとき、セーブしておいたゲームデータを読み出した場合には、前回の続きからゲームを開始することができる。
【0122】
続くステップS3では、プレイヤの操作に基づくゲーム処理を実行する。たとえば、プレイヤの操作に従ってプレイヤオブジェクト102を仮想空間(フィールド)内で移動させ、また、敵オブジェクト122をコンピュータ(CPUコア42)の処理によって、フィールド内で移動させ、そのような様子のゲーム画面100がLCD14(LCD12でも可。)に表示する。
【0123】
次のステップS5では、プレイヤオブジェクト102が敵オブジェクト122と遭遇したかどうかを判断する。具体的には、プレイヤオブジェクト102の位置座標と敵オブジェクト122の位置座標との距離が一定未満になったかどうかを判断する。ステップS5で“NO”であれば、つまりプレイヤオブジェクト102が敵オブジェクト122に遭遇していなければ、そのままステップS3に戻る。一方、ステップS5で“YES”であれば、つまりプレイヤオブジェクト102が敵オブジェクト122に遭遇すれば、戦闘シーンに移行し、ステップS7で、キャプチャ画面120をLCD14に表示する。図示は省略するが、上述したように、このとき、キャプチャ成功フラグ72kがリセット(オフ)される。続くステップS9では、プレイヤオブジェクト102が遭遇した敵オブジェクト122に基づいて、囲み回数カウンタ72iを設定する。つまり、敵オブジェクトデータ72cを参照して、囲み回数を取得し、取得した囲み回数を囲み回数カウンタ72iの初期値として設定する。そして、ステップS11で、プレイヤオブジェクト102の体力値に初期値を設定する。
【0124】
続いて、ステップS13では、影響オブジェクトの選択指示があるかどうかを判断する。ステップS13で“NO”であれば、つまり影響オブジェクトの選択指示が無ければ、ステップS25で、耐久度カウンタ72iのカウント値をデフォルト値(たとえば、「3」)に設定して、図12に示すステップS27に進む。一方、ステップS13で“YES”であれば、つまり影響オブジェクトの選択指示があれば、ステップS15で、後述する影響オブジェクト選択処理(図13参照)を実行して、ステップS17で、選択された影響オブジェクトが単独で攻撃可能かどうかを判断する。具体的には、CPUコア42は、影響オブジェクト選択処理において読み出したプレイヤ補助の内容に従って、選択された影響オブジェクトが単独で攻撃可能かどうかを判断するのである。
【0125】
ステップS17で“NO”であれば、つまり選択された影響オブジェクトが単独で攻撃することができなければ、後述するように、効果オブジェクト128を発生させたり、効果を発動させたりするべく、ステップS23で、選択フラグ72mをオンし、ステップS27に進む。一方、ステップS17で“YES”であれば、つまり選択された影響オブジェクトが単独で攻撃可能であれば、ステップS19で、敵オブジェクト122を攻撃し、ステップS21で、当該影響オブジェクトを消去して、ステップS27に進む。つまり、ステップS19では、影響オブジェクトに対して予め設定されている攻撃(効果)を発動させる。また、ステップS21では、影響オブジェクトデータ72eにおいて、当該影響オブジェクト(敵オブジェクト122)に対応するビットにデータ値「0」を設定する。以下、影響オブジェクトを消去する場合において同じである。
【0126】
図12に示すように、ステップS27では、後述する囲み/効果オブジェクト発生処理(図14−図16参照)を実行し、次のステップS29では、後述する囲み線切断/効果発動処理(図17参照)を実行する。続いて、ステップS31では、表示時間が一定時間以上であるかどうかを判断する。つまり、ステップS27の囲み/効果オブジェクト発生処理において、効果オブジェクト128が発生(表示)されたときに、表示時間タイマ72gがスタートされ、表示時間(タイマ値)が一定時間を経過したかどうかを判断しているのである。ステップS31で“NO”であれば、つまり表示時間が一定時間未満であれば、そのままステップS35に進む。一方、ステップS31で“YES”であれば、つまり表示時間が一定時間以上であれば、ステップS33で効果オブジェクト128をゲーム画面(この実施例では、キャプチャ画面120)から消去して、ステップS35に進む。これにより、効果オブジェクト128は一定時間だけ表示されるのである。
【0127】
ステップS35では、敵オブジェクト122のキャプチャに成功したかどうかを判断する。つまり、ここでは、キャプチャ成功フラグ72kがオンであるかどうかを判断する。ステップS35で“YES”であれば、つまり敵オブジェクト122のキャプチャに成功していれば、ステップS37で、キャプチャした敵オブジェクト122を影響オブジェクトとしてRAM48に記憶して、ステップS41に進む。つまり、影響オブジェクトデータ72cにおいて、キャプチャに成功した敵オブジェクト122に対応するビットにデータ値「1」を設定する。一方、ステップS35で“NO”であれば、つまり敵オブジェクト122のキャプチャに成功していなければ、ステップS39で、体力値データ72bを参照して、プレイヤオブジェクト102の体力値が0以下であるかどうかを判断する。
【0128】
プレイヤオブジェクト102の体力値が0よりも大きければ、ステップS39で“NO”となり、囲み操作を続行するべく、ステップS27に戻る。しかし、プレイヤオブジェクト102の体力値が0以下であれば、ステップS39で“YES”となり、プレイヤオブジェクト102が死滅したと判断して、または、ゲームオーバになったと判断して、ステップS41に進む。
【0129】
ステップS41では、バックアップ処理を実行するかどうかを判断する。ここでは、プレイヤの指示や所定のイベントの発生により、バックアップ処理を実行するかどうかを判断するのである。ステップS41で“NO”であれば、つまりバックアップ処理を実行しない場合には、そのままステップS45に進む。一方、ステップS41で“YES”であれば、つまりバックアップ処理を実行する場合には、ステップS43で、ゲームデータをメモリカード28のRAM28bに記憶して、ステップS45に進む。
【0130】
ステップS45では、ゲーム終了かどうかを判断する。ここでは、ゲームオーバになったり、プレイヤがゲーム終了を指示したりしたかどうかを判断する。ステップS45で“NO”であれば、つまりゲーム終了でなければ、図11に示したステップS3に戻る。一方、ステップS45で“YES”であれば、つまりゲーム終了であれば、ゲーム全体処理を終了する。
【0131】
図13は、図11に示したステップS15の影響オブジェクト選択処理を示すフロー図である。図13に示すように、CPUコア42は影響オブジェクト選択処理を開始すると、ステップS51で、影響オブジェクトを表示する。図示は省略するが、ここでは、影響オブジェクトを選択するための選択画面を表示する。続くステップS53では、影響オブジェクトの選択があるかどうかを判断する。つまり、選択画面において、影響オブジェクトが選択されたかどうかを判断するのである。ステップS53で“NO”であれば、つまり影響オブジェクトの選択が無ければ、そのままステップS53に戻る。ただし、影響オブジェクトの選択が無い場合には、キャンセルの指示があるかどうかを判断し、キャンセルの指示が有れば、影響オブジェクト選択処理をリターンし、キャンセルの指示が無ければ、ステップS53に戻るようにしてもよい。
【0132】
また、ステップS53で“YES”であれば、つまり影響オブジェクトの選択が有れば、ステップS55で、選択された影響オブジェクトについての属性およびプレイヤ補助の内容を読み出すとともに、遭遇した敵オブジェクト122についての属性を読み出す。そして、ステップS57では、敵オブジェクト122の属性と影響オブジェクトの属性とに基づいて、耐久度カウンタ72jに初期値を設定して、影響オブジェクト選択処理をリターンする。ステップS57では、耐久度データ72dに従う初期値が設定されるのである。
【0133】
図14−図16は、図12に示したステップS27に示した囲み/効果オブジェクト発生処理を示すフロー図である。図14に示すように、CPUコア42は、囲み/効果オブジェクト発生処理を開始すると、ステップS71で、タッチ入力があるかどうかを判断する。ここでは、CPUコア42は、タッチパネル22から座標データが入力されたかどうかを判断する。ステップS71で“NO”であれば、つまりタッチパネル22から座標データが入力されていなければ、タッチオフの状態であると判断し、ステップS77で、囲み線消去処理を実行する。ここでは、キャプチャ画面120に表示された囲み線124を消去する。以下、同様である。続くステップS79では、検出座標データ72fを消去する。そして、ステップS81で、囲み回数カウンタ72iを初期値にリセットして、囲み/効果オブジェクト発生処理をリターンする。ただし、プレイヤオブジェクト102が敵オブジェクト122と遭遇した当初においては、何ら囲み線124が描かれておらず、また、敵オブジェクト122を囲んでもいないため、ステップS77−S81の処理は実行されず、そのままリターンされる。
【0134】
また、ステップS71で“YES”であれば、つまりタッチパネル22から座標データが入力されていれば、ステップS73で、タッチ座標を検出する。つまり、座標データが示すLCD14上の座標(タッチ座標)を検出する。続くステップS75では、ステップS73において検出したタッチ座標すなわち検出座標を時系列に従って記憶する。つまり、検出座標データ72fが更新される。
【0135】
続くステップS83では,検出座標データ72fを参照して、タッチ座標(検出座標)の数が2以上かどうかを判断する。ステップS83で“NO”であれば、つまりタッチ座標の数が1であれば、タッチオンすなわち囲み操作の開始であると判断して、ステップS93で、選択フラグ72mがオンであるかどうかを判断する。
【0136】
ステップS93で“NO”であれば、つまり選択フラグ72mがオフであれば、影響オブジェクトが選択されていないと判断して、そのまま囲み/効果オブジェクト発生処理をリターンする。一方、ステップS93で“YES”であれば、つまり選択フラグ72mがオンであれば、影響オブジェクトが選択されていると判断して、ステップS95で、有効時間に一定時間を設定し、ステップS97で、有効時間タイマ72hをスタートして、囲み/効果オブジェクト発生処理をリターンする。
【0137】
また、ステップS83で“YES”であれば、つまりタッチ座標の数が2以上であれば、今回の検出座標と前回の検出座標とを結ぶ線分を算出し、ステップS87で、選択フラグ72mがオンであるかどうかを判断する。ステップS87で“YES”であれば、算出された線分を、選択されている影響オブジェクトの属性に応じた色の線で画面(キャプチャ画面120)上に描画して、図15に示すステップS99に進む。一方、ステップS87で“NO”であれば、算出された線分を、デフォルトの色(たとえば、灰色)の線でキャプチャ画面120上に描画して、ステップS99に進む。
【0138】
図15に示すようにステップS99では、選択フラグ72mがオンであるかどうかを判断する。ステップS99で“NO”であれば、そのままステップS111に進む。一方、ステップS99で“YES”であれば、ステップS101で、有効時間が0であるかどうかを判断する。つまり、有効時間タイマ72hが、上述のステップS95で設定された有効時間のカウントを終了したかどうかを判断する。
【0139】
ステップS101で“NO”であれば、つまり有効時間が0でなければ、効果オブジェクト128を発生可能と判断し、ステップS103で、選択された影響オブジェクトに応じた効果オブジェクト128を線分(囲み線124)に従って(沿って)表示する。そして、ステップS105で、表示時間タイマ72gをスタートして、ステップS111に進む。しかし、ステップS101で“YES”であれば、つまり有効時間が0であれば、効果オブジェクト128を発生不能と判断し、ステップS107で、影響オブジェクトを影響オブジェクトデータ72eから消去し、ステップS109で、選択フラグ72mをオフして、ステップS111に進む。
【0140】
ステップS111では、検出座標データ72fを参照して、タッチ座標(検出座標)の数が3以上であるかどうかを判断する。ステップS111で“NO”であれば、つまり検出座標の数が2以下であれば、図14に示したように、囲み/効果オブジェクト発生処理をリターンする。一方、ステップS111で“YES”であれば、つまり検出座標の数が3以上であれば、ステップS113で、最も新しい線分(ステップS85で、今回算出した)とそれ以外の線分(以前の線分)とが交差したかどうかを判断する。つまり、閉領域が形成されたか否かを判定する。
【0141】
ステップS113で“YES”であれば、つまり最も新しい線分とそれ以外の線分とが交差すれば、閉領域が形成されたと判定して、ステップS115で、交差点を算出し、算出した交差点を含む閉領域を設定し、図16に示すステップS121に進む。つまり、ステップS115では、閉領域が設定される。一方、ステップS113で“NO”であれば、つまり最も新しい線分とそれ以外の線分とが交差していなければ、ステップS117で、各線分を加算した長さが一定値を超えたかどうかを判断する。つまり、一度に描画することができる囲み線124の長さを超えたかどうかを判断する。
【0142】
ステップS117で“NO”であれば、つまり各線分を加算した長さが一定値を超えていなければ、そのまま囲み/効果オブジェクト発生処理をリターンする。一方、ステップS117で“YES”であれば、つまり各線分を加算した長さが一定を超えていれば、ステップS119で、最も古い(時間的に最も早い)タッチ座標(検出座標)を検出座標データ72fから消去し、ステップS117に戻る。このステップS117とS119との処理によって、一度に描画することができる囲み線124の長さが制限されるのである。
【0143】
図16に示すように、ステップS121では、設定した閉領域内に敵オブジェクト122が存在するかどうかを判定する。つまり、上述した囲み判定の処理を実行する。ステップS121で“NO”であれば、つまり設定した閉領域内に敵オブジェクト122が存在しなければ、敵オブジェクト122を囲めていないと判断して、ステップS133で、囲み線消去処理を実行し、ステップS135で、検出座標データ72fを消去して、図14に示したように囲み/効果オブジェクト発生処理をリターンする。
【0144】
また、ステップS121で“YES”であれば、つまり設定した閉領域内に敵オブジェクト122が存在すれば、ステップS123で、囲み回数カウンタ72iをデクリメントして、つまりカウント値を1減算して、ステップS125で、囲み回数が0であるかどうかを判断する。ステップS125で“NO”であれば、つまり囲み回数が1以上であれば、そのままステップS133に進む。一方、ステップS125で“YES”であれば、つまり囲み回数が0であれば、敵オブジェクト122のキャプチャに成功したと判断して、ステップS127で、囲み線消去処理を実行し、ステップS129で、検出座標データを消去し、そして、ステップS131で、キャプチャ成功フラグ72kをオンして、囲み/効果オブジェクト発生処理をリターンする。
【0145】
なお、図12に示したステップS27−S35およびS39の処理のスキャンタイムは1フレームであり、したがって、座標データは1フレーム(一定時間)毎に検出される。
【0146】
図17は、図12に示したステップS29の囲み線切断/効果発動処理を示すフロー図である。図17に示すように、CPUコア42は、囲み線切断/効果発動処理を開始すると、ステップS151で、敵オブジェクト122が描画された囲み線124に接触したかどうかを判断する。ステップS151で“NO”であれば、つまり敵オブジェクト122が囲み線124に接触していなければ、そのままステップS165に進む。
【0147】
また、ステップS151で“YES”であれば、つまり敵オブジェクト122が囲み線124に接触すれば、ステップS153で、耐久度カウンタ72jをデクリメントする。そして、ステップS155で、耐久度が0であるかどうかを判断する。つまり、耐久度カウンタ72jのカウント値が0であるかどうかを判断するのである。
【0148】
ステップS155で“NO”であれば、つまり耐久度が1以上であれば、そのままステップS165に進む。一方、ステップS155で“YES”であれば、つまり耐久度が0であれば、ステップS157で、囲み線切断処理を実行するともに、囲み線消去処理を実行する。ただし、囲み線切断処理では、敵オブジェクト124が接触した位置を含む一定の範囲(長さ)だけ、囲み線124がキャプチャ画面120から消去される。その後、囲み線消去処理によって、囲み線124がすべて消去される。続くステップS159では、検出座標データ72fを消去し、ステップS161で、囲み回数カウンタ72i、耐久度カウンタ72jを初期値にリセットし、ステップS163で、プレイヤオブジェクト102の体力値を所定量減算して、ステップS165に進む。
【0149】
ステップS165では、選択フラグ72mがオンであるかどうかを判断する。ステップS165で“NO”であれば、つまり選択フラグ72mがオフであれば、影響オブジェクトが選択されていないと判断して、そのまま囲み線切断/効果発動処理をリターンする。一方、ステップS165で“YES”であれば、つまり選択フラグ72mがオンであれば、影響オブジェクトが選択されていると判断して、ステップS167で、敵オブジェクト122が効果オブジェクト128に接触したかどうかを判断する。
【0150】
ステップS167で“NO”であれば、つまり敵オブジェクト122が効果オブジェクト128に接触していなければ、そのまま囲み線切断/効果発動処理をリターンする。一方、ステップS167で“YES”であれば、つまり敵オブジェクト122が効果オブジェクト128に接触すれば、ステップS169で、効果オブジェクトに応じた効果を発動して、囲み線切断/効果発動処理をリターンする。
【0151】
この第1実施例によれば、既にキャプチャした敵オブジェクトを他の敵オブジェクトをキャプチャするときの影響オブジェクトとして使用することにより、キャプチャし易くすることができるので、キャプチャする敵オブジェクトを考慮しながらゲームを進行させることができる。つまり、単にオブジェクトを収集するようなゲームのように、ゲームが単調になってしまうのを防止することができるので、ゲームの面白味を増大させることができる。
<第2実施例>
第2実施例のゲーム装置10は、敵オブジェクト122を囲む毎に、当該敵オブジェクト122に対して設定された確率で、キャプチャの成否を判定するようにした以外は、第1実施例と同じであるため、重複した説明は省略する。
【0152】
図18に示すように、第2実施例の敵オブジェクトデータ72cでは、敵オブジェクト122の各々に対応して、囲み回数と各回における確率(キャプチャの成功率)が設定されている。それ以外は、第1実施例で説明した内容と同じである。たとえば、敵オブジェクFでは囲み回数の最大値は「3」であり、この敵オブジェクトFをキャプチャする場合には、囲み回数が1回ではキャプチャに成功する確率は10%であり、囲み回数が2回ではキャプチャに成功する確率は50%であり、そして、囲み回数が3回ではキャプチャに成功する確率は100%である。ただし、囲み回数の最大値が「1」である場合には、敵オブジェクト122を囲むことに一度成功すれば、100%の確率でキャプチャに成功することになる。詳細な説明は省略するが、他の敵オブジェクト122についても同様である。
【0153】
つまり、第2実施例においては、第1実施例で示した囲み/効果オブジェクト発生処理の一部が異なる。具体的には、図16に示したフロー図が図19に示すフロー図と置き換えられる。以下では、囲み/効果オブジェクト発生処理のうち、図19に示すフロー図についてのみ説明することにするが、第1実施例で説明した内容については簡単に説明することする。
【0154】
図19を参照して、CPUコア42は、囲み操作によって形成された閉領域に敵オブジェクト122が存在すると判断すると、ステップS121で“YES”となり、次のステップS123で、囲み回数カウンタ72iをデクリメントする。続くステップS201では、敵オブジェクト122および囲み回数に応じた確率を参照する。つまり、図18に示した敵オブジェクトデータ72cを参照して、確率を取得する。ただし、第1実施例から分かるように、囲み回数カウンタ72iの初期値として、第2実施例で言う囲み回数の最大値が設定されるため、囲み回数の最大値から囲みカウンタ72iのカウント値を減算した数値に対応して記述された確率が読み出される。
【0155】
次に、確率に従ってキャプチャの成否を判定する。そして、ステップS205で、キャプチャに成功したかどうかを判断(判定)する。ステップS205で“NO”であれば、つまりキャプチャに失敗した場合には、上述したように、ステップS133で、囲み線消去処理を実行し、ステップS135で、検出座標データ72fを消去して、囲み/効果オブジェクト発生処理をリターンする。一方、ステップS205で“YES”であれば、つまりキャプチャに成功した場合には、ステップS127で、囲み線消去処理を実行し、ステップS129で、検出座標データ72fを消去し、そして、ステップS131で、キャプチャ成功フラグ72kをオンして、囲み/効果オブジェクト発生処理をリターンする。
【0156】
この第2実施例によれば、囲み回数毎に確率により敵オブジェクトのキャプチャに成功するか否かを判断するので、比較的囲み回数を大きく設定されている敵オブジェクトであっても簡単にキャプチャできる場合もあり、第1実施例の効果に加え、ゲームの意外性や囲み操作を楽しむこともできる。
【0157】
なお、上述の実施例では、効果オブジェクトに接触した敵オブジェクトの移動速度を遅くしたり、その移動を停止させたり、その移動可能範囲を制限したり、囲み回数を加算(倍増)したり、一度に描くことができる軌跡の長さを長くしたりすることにより、囲み難易度を低減させるようにした。ただし、これに限定される必要はなく、ゲームの内容によっては、効果オブジェクトに接触した敵オブジェクトの移動速度を速くしたり、移動可能範囲を広げたりすることにより、囲み難易度を増加させるようにしてもよい。つまり、囲み操作を支援(補助)するだけでなく、囲み操作を邪魔することもできる。または、囲み回数を実際の囲み回数よりも少なく計算したり、一度に描くことができる軌跡の長さを短くしたりするようにしても、囲みの難易度を増加させることができる。さらには、囲み難易度が増加される影響オブジェクトと、囲み難易度が減少される影響オブジェクトとを混在させるようにしてもよい。
【0158】
また、上述の実施例では、表示器が一体的に形成されたゲーム装置についてのみ説明したが、表示器が別に設けられたゲーム装置にも適用することができる。
【0159】
さらに、上述の実施例では、ポインティングデバイスとしてタッチパネルを用いるようにしたが、これに限定されるべきではない。他の例としては、コンピュータマウス、タッチパッドまたはペンタブレットを用いることができる。ただし、かかる場合には、ゲーム画面にマウスポインタのような指示画像を表示する必要がある。
【0160】
さらにまた、ゲーム装置の構成は、上述の実施例の構成に限定されるべきでない。たとえば、LCDは1つでもよく、タッチパネルは2つのLCDのそれぞれに設けるようにしてもよい。また、左右2つのスピーカを設けるようにしてもよい。
【図面の簡単な説明】
【0161】
【図1】図1はこの発明のゲーム装置を示す図解図である。
【図2】図1は図1実施例に示すゲーム装置の電気的な構成を示すブロック図である。
【図3】図3は図1実施例の第2のLCDに表示されるゲーム画面の例を示す図解図である。
【図4】図4は図1実施例の第2のLCDに表示されるゲーム画面の他の例を示す図解図である。
【図5】図5は図1実施例の第2のLCDに表示されるゲーム画面のその他の例を示す図解図である。
【図6】図6は囲み操作によって形成された閉領域内に敵オブジェクトが存在するか否かの囲み判定を説明するための図解図である。
【図7】図7は囲み操作によって形成された閉領域内に敵オブジェクトが存在するか否かの囲み判定を説明するための他の図解図である。
【図8】図8は図2に示すRAMのメモリマップを示す図解図である。
【図9】図9は図8に示すデータ記憶領域を示す図解図である。
【図10】図10は図9に示す敵オブジェクトデータおよび耐久度データの具体例を示す図解図である。
【図11】図11は図2に示すCPUコアのゲーム全体処理の一部を示すフロー図である。
【図12】図12は図2に示すCPUコアのゲーム全体処理の他の一部であり、図11に後続するフロー図である。
【図13】図13は図2に示すCPUコアの影響オブジェクト選択処理を示すフロー図である。
【図14】図14は図2に示すCPUコアの囲み/効果オブジェクト発生処理の一部を示すフロー図である。
【図15】図15は図2に示すCPUコアの囲み/効果オブジェクト発生処理の他の一部であり、図14に後続するフロー図である。
【図16】図16は図2に示すCPUコアの囲み/効果オブジェクト発生処理のその他の一部であり、図14および図15に後続するフロー図である。
【図17】図17は図2に示すCPUコアの囲み線消去/効果発動処理を示すフロー図である。
【図18】図18はこの発明の第2実施例における敵オブジェクトデータの具体例を示す図解図である。
【図19】図19は第2実施例におけるCPUコアの囲み/効果オブジェクト発生処理の一部であり、図14および図15に後続するフロー図である。
【符号の説明】
【0162】
10 …ゲーム装置
12,14 …LCD
16,16a,16b …ハウジング
20 …操作スイッチ
22 …タッチパネル
24 …スティック
28 …メモリカード
28a …ROM
28b,48 …RAM
32 …アンテナ
40 …電子回路基板
42 …CPUコア
50,52 …GPU
54 …I/F回路
56,58 …VRAM
60 …LCDコントローラ
【特許請求の範囲】
【請求項1】
仮想空間内のオブジェクトを画面に表示する表示装置と、少なくとも前記画面上の位置を指定するためのポインティングデバイスとを備えるゲーム装置のゲームプログラムであって、
前記ゲーム装置のプロセサを、
前記ポインティングデバイスによって指定される前記画面上の位置を示す入力座標を所定時間毎に検出する入力座標検出手段、
前記入力座標検出手段によって検出された前回の入力座標と今回の入力座標とを結ぶ線分を算出する線分算出手段、
前記線分算出手段によって算出された複数の線分によって閉領域が形成されたか否かを判断する閉領域判断手段、
前記閉領域判断手段によって前記閉領域が形成されたことが判断されたとき、当該閉領域に前記オブジェクトが含まれるかどうかを判断する囲み判断手段、
前記囲み判断手段によって前記オブジェクトが前記閉領域に含まれることが判断されたとき、当該オブジェクトを影響オブジェクトとする取得情報を記憶手段に記憶する影響オブジェクト記憶制御手段、および
前記記憶手段に記憶された取得情報が示す影響オブジェクトに基づいて、他の前記オブジェクトの囲み難易度を変化させる難易度変化手段として機能させる、ゲームプログラム。
【請求項2】
前記プロセサを、
前記囲み判断手段によって前記オブジェクトが前記閉領域に含まれることが判断された回数をカウントする囲み回数カウント手段、および
前記囲み回数カウント手段によってカウントされた回数が所定回数に達したか否かを判断する囲み回数判断手段としてさらに機能させ、
前記影響オブジェクト記憶制御手段は、前記囲み回数判断手段によって囲み回数が前記所定回数に達したことが判断されたとき、前記オブジェクトを影響オブジェクトとする取得情報を前記記憶手段に記憶する、請求項1記載のゲームプログラム。
【請求項3】
前記プロセサを、
前記入力座標検出手段によって入力座標が検出されなかったとき、または、前記オブジェクトが前記線分に接触したとき、前記囲み回数カウント手段によってカウントされた囲み回数をリセットする囲み回数リセット手段としてさらに機能させる、請求項2記載のゲームプログラム。
【請求項4】
前記難易度変化手段は、一定期間だけ、または一定回数だけ、前記囲み難易度を変化させ、
前記一定期間が経過したとき、または前記一定回数を超えたとき、前記影響オブジェクトについての取得情報を前記記憶手段から消去する消去手段として前記プロセサをさらに機能させる、請求項1ないし3のいずれかに記載のゲームプログラム。
【請求項5】
前記難易度変化手段は、前記オブジェクトの移動速度を変化させる、請求項1ないし4のいずれかに記載のゲームプログラム。
【請求項6】
前記難易度変化手段は、前記オブジェクトの移動可能範囲を変化させる、請求項1ないし4のいずれかに記載のゲームプログラム。
【請求項7】
前記難易度変化手段は、前記囲み回数カウント手段のカウント値を変化させる、請求項2ないし4記載のゲームプログラム。
【請求項8】
描画可能な線の長さは一定であり、
前記難易度変化手段は、前記描画可能な線の長さを変化させる、請求項1ないし4のいずれかに記載のゲームプログラム。
【請求項9】
前記線分算出手段によって算出された線分を前記記憶手段に記憶された取得情報に対応する影響オブジェクトの属性に基づく色で表示する線分表示手段として前記プロセサをさらに機能させる、請求項1ないし8のいずれかに記載のゲームプログラム。
【請求項10】
仮想空間内のオブジェクトを画面に表示する表示装置と、少なくとも前記画面上の位置を指定するためのポインティングデバイスとを備えるゲーム装置であって、
前記ポインティングデバイスによって指定される前記画面上の位置を示す入力座標を所定時間毎に検出する入力座標検出手段、
前記入力座標検出手段によって検出された前回の入力座標と今回の入力座標とを結ぶ線分を算出する線分算出手段、
前記線分算出手段によって算出された複数の線分によって閉領域が形成されたか否かを判断する閉領域判断手段、
前記閉領域判断手段によって前記閉領域が形成されたことが判断されたとき、当該閉領域に前記オブジェクトが含まれるかどうかを判断する囲み判断手段、
前記囲み判断手段によって前記オブジェクトが前記閉領域に含まれることが判断されたとき、当該オブジェクトを影響オブジェクトとする取得情報を記憶手段に記憶する影響オブジェクト記憶制御手段、および
前記記憶手段に記憶された取得情報が示す影響オブジェクトに基づいて、他の前記オブジェクトの囲み難易度を変化させる難易度変化手段を備える、ゲーム装置。
【請求項1】
仮想空間内のオブジェクトを画面に表示する表示装置と、少なくとも前記画面上の位置を指定するためのポインティングデバイスとを備えるゲーム装置のゲームプログラムであって、
前記ゲーム装置のプロセサを、
前記ポインティングデバイスによって指定される前記画面上の位置を示す入力座標を所定時間毎に検出する入力座標検出手段、
前記入力座標検出手段によって検出された前回の入力座標と今回の入力座標とを結ぶ線分を算出する線分算出手段、
前記線分算出手段によって算出された複数の線分によって閉領域が形成されたか否かを判断する閉領域判断手段、
前記閉領域判断手段によって前記閉領域が形成されたことが判断されたとき、当該閉領域に前記オブジェクトが含まれるかどうかを判断する囲み判断手段、
前記囲み判断手段によって前記オブジェクトが前記閉領域に含まれることが判断されたとき、当該オブジェクトを影響オブジェクトとする取得情報を記憶手段に記憶する影響オブジェクト記憶制御手段、および
前記記憶手段に記憶された取得情報が示す影響オブジェクトに基づいて、他の前記オブジェクトの囲み難易度を変化させる難易度変化手段として機能させる、ゲームプログラム。
【請求項2】
前記プロセサを、
前記囲み判断手段によって前記オブジェクトが前記閉領域に含まれることが判断された回数をカウントする囲み回数カウント手段、および
前記囲み回数カウント手段によってカウントされた回数が所定回数に達したか否かを判断する囲み回数判断手段としてさらに機能させ、
前記影響オブジェクト記憶制御手段は、前記囲み回数判断手段によって囲み回数が前記所定回数に達したことが判断されたとき、前記オブジェクトを影響オブジェクトとする取得情報を前記記憶手段に記憶する、請求項1記載のゲームプログラム。
【請求項3】
前記プロセサを、
前記入力座標検出手段によって入力座標が検出されなかったとき、または、前記オブジェクトが前記線分に接触したとき、前記囲み回数カウント手段によってカウントされた囲み回数をリセットする囲み回数リセット手段としてさらに機能させる、請求項2記載のゲームプログラム。
【請求項4】
前記難易度変化手段は、一定期間だけ、または一定回数だけ、前記囲み難易度を変化させ、
前記一定期間が経過したとき、または前記一定回数を超えたとき、前記影響オブジェクトについての取得情報を前記記憶手段から消去する消去手段として前記プロセサをさらに機能させる、請求項1ないし3のいずれかに記載のゲームプログラム。
【請求項5】
前記難易度変化手段は、前記オブジェクトの移動速度を変化させる、請求項1ないし4のいずれかに記載のゲームプログラム。
【請求項6】
前記難易度変化手段は、前記オブジェクトの移動可能範囲を変化させる、請求項1ないし4のいずれかに記載のゲームプログラム。
【請求項7】
前記難易度変化手段は、前記囲み回数カウント手段のカウント値を変化させる、請求項2ないし4記載のゲームプログラム。
【請求項8】
描画可能な線の長さは一定であり、
前記難易度変化手段は、前記描画可能な線の長さを変化させる、請求項1ないし4のいずれかに記載のゲームプログラム。
【請求項9】
前記線分算出手段によって算出された線分を前記記憶手段に記憶された取得情報に対応する影響オブジェクトの属性に基づく色で表示する線分表示手段として前記プロセサをさらに機能させる、請求項1ないし8のいずれかに記載のゲームプログラム。
【請求項10】
仮想空間内のオブジェクトを画面に表示する表示装置と、少なくとも前記画面上の位置を指定するためのポインティングデバイスとを備えるゲーム装置であって、
前記ポインティングデバイスによって指定される前記画面上の位置を示す入力座標を所定時間毎に検出する入力座標検出手段、
前記入力座標検出手段によって検出された前回の入力座標と今回の入力座標とを結ぶ線分を算出する線分算出手段、
前記線分算出手段によって算出された複数の線分によって閉領域が形成されたか否かを判断する閉領域判断手段、
前記閉領域判断手段によって前記閉領域が形成されたことが判断されたとき、当該閉領域に前記オブジェクトが含まれるかどうかを判断する囲み判断手段、
前記囲み判断手段によって前記オブジェクトが前記閉領域に含まれることが判断されたとき、当該オブジェクトを影響オブジェクトとする取得情報を記憶手段に記憶する影響オブジェクト記憶制御手段、および
前記記憶手段に記憶された取得情報が示す影響オブジェクトに基づいて、他の前記オブジェクトの囲み難易度を変化させる難易度変化手段を備える、ゲーム装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公開番号】特開2007−130376(P2007−130376A)
【公開日】平成19年5月31日(2007.5.31)
【国際特許分類】
【出願番号】特願2005−328605(P2005−328605)
【出願日】平成17年11月14日(2005.11.14)
【出願人】(391041718)株式会社ハル研究所 (38)
【出願人】(599139187)株式会社クリーチャーズ (7)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成19年5月31日(2007.5.31)
【国際特許分類】
【出願日】平成17年11月14日(2005.11.14)
【出願人】(391041718)株式会社ハル研究所 (38)
【出願人】(599139187)株式会社クリーチャーズ (7)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]