(57)【要約】    【構成】  ゲーム装置１０はＬＣＤ１４を含み、ＬＣＤ１４には３次元ゲーム空間に存在するプレイヤオブジェクトおよび敵オブジェクトの平面的な位置関係を表示する表示部を含むゲーム画面が表示される。たとえば、プレイヤオブジェクトおよび敵オブジェクトとは飛行オブジェクトである。プレイヤが、Ｘボタン２２ｆを押す度に、プレイヤオブジェクトが標的とする敵オブジェクトの選択状態が、敵オブジェクトの優先順位に従って順番に切り替えられる。また、プレイヤがＸボタン２２ｆを一定時間以上継続して押し続けると、敵オブジェクトの優先順位に拘わらず、最も優先順位の高い敵オブジェクトに選択状態が切り替えられる。    【効果】  切替の操作性を向上することができる。【選択図】  図１
2008188322.tif 000002
【特許請求の範囲】
【請求項１】
標的となる複数のノンプレイヤオブジェクトが配置された仮想ゲーム空間を画面に表示するゲーム装置のゲームプログラムであって、
前記ゲーム装置のコンピュータに、
操作手段から所定の入力がある毎に、前記複数のノンプレイヤオブジェクトから１つのノンプレイヤオブジェクトを順次切り替えて選択するための選択ステップ、
前記複数のノンプレイヤオブジェクトの各々について、前記選択ステップによって選択される順序を設定するノンプレイヤオブジェクト選択順位設定ステップ、および
前記所定の入力がある状態が継続する継続時間を検出する入力状態継続時間検出ステップを実行させ、
前記選択ステップは、前記継続時間が所定値未満のとき、前記ノンプレイヤオブジェクト選択順位設定ステップによって設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する第１選択ステップと、前記継続時間が所定値以上のとき、前記順位の最も高いノンプレイヤオブジェクトに切り替えて選択する第２選択ステップとを含む、ゲームプログラム。
【請求項２】
前記ノンプレイヤオブジェクト選択順位設定ステップは、前記継続時間が所定値以上のとき、前記複数のノンプレイヤオブジェクトの各々について、前記選択ステップによって選択される順序を再設定し、
前記第２選択ステップは、前記再設定された順位の最も高いノンプレイヤオブジェクトに切り替えて選択する、請求項１記載のゲームプログラム。
【請求項３】
前記選択ステップによって切替選択が行われてからの経過時間を検出する経過時間検出ステップを前記コンピュータにさらに実行させ、
前記ノンプレイヤオブジェクト選択順位設定ステップは、前記経過時間が所定値以上のとき、前記複数のノンプレイヤオブジェクトの各々について、前記選択ステップによって選択される順序を再設定し、
前記第１選択ステップは、前記所定の入力がある毎に、前記ノンプレイヤオブジェクト選択順位設定ステップによって再設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する、請求項１または２記載のゲームプログラム。
【請求項４】
前記仮想ゲーム空間におけるプレイヤオブジェクトの位置情報および進行方向を取得するプレイヤオブジェクト情報取得ステップ、
前記位置情報および進行方向と、前記位置情報を基点とした左右の角度および距離とに基づいて、前記仮想ゲーム空間を複数の領域に分割する領域分割ステップ、および
前記領域分割ステップによって分割された領域の各々について、選択順位を設定する領域選択順位設定ステップを前記コンピュータにさらに実行させ、
前記ノンプレイヤオブジェクト選択順位設定ステップは、前記領域選択順位設定ステップによって設定された順位の高い領域に存在するノンプレイヤオブジェクトから順次高い順位を設定する、請求項１ないし３のいずれかに記載のゲームプログラム。
【請求項５】
時間Ｔ（Ｔ＞０）後に前記プレイヤオブジェクトが到達する位置座標および進行方向を予測する予測ステップを前記コンピュータにさらに実行させ、
前記領域分割ステップは、前記予測ステップによって予測された前記位置情報および進行方向と、前記位置情報を基点とした左右の角度および距離とに基づいて、前記仮想ゲーム空間を複数の領域に分割する、請求項４記載のゲームプログラム。
【請求項６】
標的となる複数のノンプレイヤオブジェクトが配置された仮想ゲーム空間を画面に表示するゲーム装置であって、
操作手段から所定の入力がある毎に、前記複数のノンプレイヤオブジェクトから１つのノンプレイヤオブジェクトを順次切り替えて選択するための選択手段、
前記複数のノンプレイヤオブジェクトの各々について、前記選択手段によって選択される順序を設定するノンプレイヤオブジェクト選択順位設定手段、および
前記所定の入力がある状態が継続する継続時間を検出する入力状態継続時間検出手段を備え、
前記選択手段は、前記継続時間が所定値未満のとき、前記ノンプレイヤオブジェクト選択順位設定手段によって設定された順位に従ってノンプレイヤを順次切り替えて選択する第１選択手段と、前記継続時間が所定値以上のとき、前記順位の最も高いノンプレイヤオブジェクトに切り替えて選択する第２選択手段とを含む、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はゲームプログラムおよびゲーム装置に関し、特にたとえば、シューティングゲームをプレイするための、ゲームプログラムおよびゲーム装置に関する。
【背景技術】
【０００２】
従来、シューティングゲーム等において、ゲーム空間内を移動する複数の標的の中から攻撃目標とする標的をプレイヤの操作に応じて順次切り替えて選択するものが知られている。
【０００３】
たとえば、特許文献１に開示された技術では、プレイヤオブジェクトの視界内に存在する複数のノンプレイヤオブジェクト（標的）を、当該プレイヤオブジェクトとの距離が短いものから順に高い優先順位を設定し、コントローラのＺボタンの１回目の操作で優先順位が１位のノンプレイヤオブジェクトを注目ノンプレイヤオブジェクトとして選択し、２回目の操作で優先順位が次の（２位の）ノンプレイヤオブジェクトを注目ノンプレイヤオブジェクトとして選択する。
【０００４】
また、非特許文献１には、コントローラの△ボタンを押すことによって目標の切り替えを行うことが開示されている。
【特許文献１】特開平１１−１２８５３３
【非特許文献１】ＰＳ２用ゲームソフト「エースコンバット・ゼロ・  ザ・ベルカン・ウォー」のソフトウェアマニュアル  Ｐ．８−９
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このような背景技術のゲームでは、プレイヤが標的を順次切り替えて選択するようにしてあるため、所望の標的を選択している途中で、最初に選択した標的や既に選択し終わった標的を再度選択したいという要求が出てくる場合がある。このような場合には、すべての標的を選択し終わった後に、最初から標的を選択し直すことになる。または、プレイヤが何ら操作しないで一定時間放置すると、優先順位のリストを再取得した後に、優先順位が１位の（最初の）標的が選択される。このように、プレイヤは、すべての標的を順次選択したり、一定時間放置したりして、所望の標的を選択し直す必要があるため、ゲームの操作性が悪いと言える。
【０００６】
それゆえに、この発明の主たる目的は、新規な、ゲームプログラムおよびゲーム装置を提供することである。
【０００７】
また、この発明の他の目的は、標的を選択するための操作性を向上できる、ゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００９】
第１の発明は、標的となる複数のノンプレイヤオブジェクトが配置された仮想ゲーム空間を画面に表示するゲーム装置のゲームプログラムであって、ゲーム装置のコンピュータに、選択ステップ、ノンプレイヤオブジェクト選択順位設定ステップおよび入力状態継続時間検出ステップを実行させる。選択ステップは、操作手段から所定の入力がある毎に、複数のノンプレイヤオブジェクトから１つのノンプレイヤオブジェクトを順次切り替えて選択する。ノンプレイヤオブジェクト選択順位設定ステップは、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を設定する。そして、入力状態継続時間検出ステップは、所定の入力がある状態が継続する継続時間を検出する。上記の選択ステップは、継続時間が所定値未満のとき、ノンプレイヤオブジェクト選択順位設定ステップによって設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する第１選択ステップと、継続時間が所定値以上のとき、順位の最も高いノンプレイヤオブジェクトに切り替えて選択する第２選択ステップとを含む。
【００１０】
第１の発明では、ゲーム装置（１０）は、標的となる複数のノンプレイヤオブジェクト（２０２）が配置された仮想ゲーム空間を画面（１００，２００）に表示する。ゲームプログラムは、このゲーム装置のコンピュータに、選択ステップ（３４，Ｓ１１７，Ｓ１２７，Ｓ１２９，Ｓ２０１，Ｓ２０３）、ノンプレイヤオブジェクト選択順位設定ステップ（３４，Ｓ１１５，Ｓ１３３）および入力状態継続時間検出ステップ（３４，Ｓ８７，Ｓ９３，Ｓ９５）を実行させる。選択ステップは、操作手段（２２）から所定の入力がある毎に、複数のノンプレイヤオブジェクトから１つのノンプレイヤオブジェクトを順次切り替えて選択する。ノンプレイヤオブジェクト選択順位設定ステップは、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を設定する。入力状態継続時間検出ステップは、所定の入力がある状態が継続する継続時間を検出する。たとえば、或るボタンが押し続けられる時間を検出する。選択ステップは、第１選択ステップおよび第２選択ステップを含む。第１選択ステップは、継続時間が所定値未満のとき、ノンプレイヤオブジェクト選択順位設定ステップによって設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する。第２選択ステップは、継続時間が所定値以上のとき、順位の最も高いノンプレイヤオブジェクトに切り替えて選択する。つまり、第２選択ステップは、順位に従わないで、順位の最も高いのプレイヤオブジェクトを選択する。
【００１１】
第１の発明によれば、所定の入力の継続時間に応じて、ノンプレイヤオブジェクトを順位に従って順次切り替えたり、順位に従わないで順位の最も高いノンプレイヤオブジェクトに切り替えたりするので、標的の切替の操作性を向上させることができる。したがって、たとえば、ノンプレイヤオブジェクトを順位選択している途中であっても、所定の入力を所定値以上継続することにより、順位の最も高いノンプレイヤオブジェクトを選択できるので、所望のオブジェクトを容易に選択し直すことができる。
【００１２】
第２の発明は第１の発明に従属し、ノンプレイヤオブジェクト選択順位設定ステップは、継続時間が所定値以上のとき、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を再設定し、第２選択ステップは、再設定された順位の最も高いノンプレイヤオブジェクトに切り替えて選択する。
【００１３】
第２の発明では、ノンプレイヤオブジェクト選択順位設定ステップは、継続時間が所定値以上のとき、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を再設定する。たとえば、プレイヤが所定のボタンを一定時間以上押し続けた場合には、選択ステップによって選択される順位が更新される。したがって、第２選択ステップは、再設定された（更新された）順位の最も高いノンプレイヤオブジェクトに切り替えて選択する。
【００１４】
第２の発明によれば、所定の入力が所定値以上継続するときには、選択順位を再設定するので、最新情報に基づいた標的を再選択することができる。
【００１５】
第３の発明は第１または第２の発明に従属し、選択ステップによって切替選択が行われてからの経過時間を検出する経過時間検出ステップをコンピュータにさらに実行させ、ノンプレイヤオブジェクト選択順位設定ステップは、経過時間が所定値以上のとき、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を再設定し、第１選択ステップは、所定の入力がある毎に、ノンプレイヤオブジェクト選択順位設定ステップによって再設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する。
【００１６】
第３の発明では、経過時間検出ステップ（３４，Ｓ７，Ｓ１２５）は、選択ステップによって切替選択が行われてからの経過時間を検出する。ノンプレイヤオブジェクト選択順位設定ステップは、経過時間が所定値以上のとき、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を再設定する。第１選択ステップは、所定の入力がある毎に、ノンプレイヤオブジェクト選択順位設定ステップによって再設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する。
【００１７】
第３の発明によれば、所定時間が経過する毎に更新される最新の情報に基づいてノンプレイヤオブジェクトの切替選択を実行することができる。
【００１８】
第４の発明は第１ないし第３の発明に従属し、仮想ゲーム空間におけるプレイヤオブジェクトの位置情報および進行方向を取得するプレイヤオブジェクト情報取得ステップ、位置情報および進行方向と、位置情報を基点とした左右の角度および距離とに基づいて、仮想ゲーム空間を複数の領域に分割する領域分割ステップ、および領域分割ステップによって分割された領域の各々について、選択順位を設定する領域選択順位設定ステップをコンピュータにさらに実行させ、ノンプレイヤオブジェクト選択順位設定ステップは、領域選択順位設定ステップによって設定された順位の高い領域に存在するノンプレイヤオブジェクトから順次高い順位を設定する。
【００１９】
第４の発明では、プレイヤオブジェクト情報取得ステップ（３４，Ｓ３１）は、仮想ゲーム空間におけるプレイヤオブジェクト（１０２）の位置情報および進行方向を取得する。領域分割ステップ（３４，Ｓ３３）は、プレイヤオブジェクトの位置情報および進行方向と、位置情報を基点とした左右の角度および距離とに基づいて、仮想ゲーム空間を複数の領域に分割する。たとえば、プレイヤオブジェクトとの距離およびプレイヤオブジェクトの進行方向からのずれに応じて、仮想ゲーム空間が複数の領域に分割される。領域選択順位設定ステップは、領域分割ステップによって分割された領域の各々について、選択順位を設定する。したがって、たとえば、ノンプレイヤオブジェクト選択順位設定ステップは、領域選択順位設定ステップによって設定された順位の高い領域に存在するノンプレイヤオブジェクトから順次高い順位を設定する。
【００２０】
第４の発明によれば、仮想ゲーム空間をプレイヤオブジェクトとの位置関係に基づいて分割した領域に従ってノンプレイヤオブジェクトの順位を設定するので、プレイヤオブジェクトとの位置関係に基づいた簡単な処理でノンプレイヤオブジェクトの順位を設定することができる。
【００２１】
第５の発明は第４の発明に従属し、時間Ｔ（Ｔ＞０）後にプレイヤオブジェクトが到達する位置座標および進行方向を予測する予測ステップをコンピュータにさらに実行させ、領域分割ステップは、予測ステップによって予測された位置情報および進行方向と、位置情報を基点とした左右の角度および距離とに基づいて、仮想ゲーム空間を複数の領域に分割する。
【００２２】
第５の発明では、予測ステップは、時間Ｔ（Ｔ＞０）後にプレイヤオブジェクトが到達する位置座標および進行方向を予測する。たとえば、現在のプレイヤオブジェクトの移動速度を知ることができれば、この移動速度と進行方向とから時間Ｔ後の位置および移動方向を物理計算により簡単に算出される。領域分割ステップは、予測ステップによって予測された位置情報および進行方向と、位置情報を基点とした左右の角度および距離とに基づいて、仮想ゲーム空間を複数の領域に分割する。つまり、
第５の発明によれば、プレイヤオブジェクトの予測した位置および予測した移動方向に基づいてノンプレイヤオブジェクトの順位を設定することができる。
【００２３】
第６の発明は、標的となる複数のノンプレイヤオブジェクトが配置された仮想ゲーム空間を画面に表示するゲーム装置であって、選択手段、ノンプレイヤオブジェクト選択順位設定手段、および入力状態継続時間検出手段を備える。選択手段は、操作手段から所定の入力がある毎に、複数のノンプレイヤオブジェクトから１つのノンプレイヤオブジェクトを順次切り替えて選択する。ノンプレイヤオブジェクト選択順位設定手段は、複数のノンプレイヤオブジェクトの各々について、選択手段によって選択される順序を設定する。入力状態継続時間検出手段は、所定の入力がある状態が継続する継続時間を検出する。そして、選択手段は、継続時間が所定値未満のとき、ノンプレイヤオブジェクト選択順位設定手段によって設定された順位に従ってノンプレイヤを順次切り替えて選択する第１選択手段と、継続時間が所定値以上のとき、順位の最も高いノンプレイヤオブジェクトに切り替えて選択する第２選択手段とを含む。
【００２４】
第６の発明においても、第１の発明と同様に、標的の切替選択の操作性を向上させることができる。
【発明の効果】
【００２５】
この発明によれば、所定の入力の継続時間に応じて、順次標的を切り替えたり、順位に従わずに最も順位の高い標的に切り替えたりするので、標的の切替の操作性を向上させることができる。
【００２６】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２７】
図１を参照して、この発明の実施例であるゲーム装置１０は、第１の液晶表示器（ＬＣＤ）１２および第２のＬＣＤ１４を含む。ＬＣＤ１２およびＬＣＤ１４は、所定の配置位置となるようにハウジング1６に収納される。この実施例では、ハウジング１６は、上側ハウジング１６ａと下側ハウジング１６ｂとによって構成され、ＬＣＤ１２は上側ハウジング１６ａに収納され、ＬＣＤ１４は下側ハウジング１６ｂに収納される。したがって、ＬＣＤ１２とＬＣＤ１４とは縦（上下）に並ぶように近接して配置される。
【００２８】
なお、この実施例では、表示器としてＬＣＤを用いるようにしてあるが、ＬＣＤに代えて、ＥＬ(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【００２９】
図１からも分かるように、上側ハウジング１６ａは、ＬＣＤ１２の平面形状よりも少し大きな平面形状を有し、一方主面からＬＣＤ１２の表示面を露出するように開口部が形成される。一方、下側ハウジング１６ｂは、その平面形状が上側ハウジング１６ａよりも横長に選ばれ、横方向の略中央部にＬＣＤ１４の表示面を露出するように開口部が形成される。下側ハウジング１６ｂのＬＣＤ１４の左方には電源スイッチ１８が設けられる。
【００３０】
また、上側ハウジング１６ａには、ＬＣＤ１２を挟んで左右に、スピーカ３６ａおよび３６ｂ（図２）のための音抜き孔２０ａおよび２０ｂが形成される。そして、下側ハウジング１６ｂには、マイク（図示せず）のためのマイク孔２０ｃが形成されるとともに、操作スイッチ２２（２２ａ，２２ｂ，２２ｃ，２２ｄ，２２ｅ，２２Ｌおよび２２Ｒ）が設けられる。
【００３１】
また、上側ハウジング１６ａと下側ハウジング１６ｂとは、上側ハウジング１６ａの下辺（下端）と下側ハウジング１６ｂの上辺（上端）の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、ＬＣＤ１２の表示面とＬＣＤ１４の表示面とが対面するように、上側ハウジング１６ａを回動させて折りたたんでおけば、ＬＣＤ１２の表示面およびＬＣＤ１４の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング１６ａと下側ハウジング１６ｂとは、回動可能に連結せずに、それらを一体的（固定的）に設けたハウジング１６を形成するようにしてもよい。
【００３２】
操作スイッチ２２は、方向指示スイッチ（十字スイッチ）２２ａ，スタートスイッチ２２ｂ、セレクトスイッチ２２ｃ、動作スイッチ（Ａボタン）２２ｄ、動作スイッチ（Ｂボタン）２２ｅ、動作スイッチ（Ｘボタン）２２ｆ、動作スイッチ（Ｙボタン）２２ｇ、動作スイッチ（Ｌボタン）２２Ｌおよび動作スイッチ（Ｒボタン）２２Ｒを含む。スイッチ２２ａは、下側ハウジング１６ｂの一方主面であり、ＬＣＤ１４の左側に配置される。その他のスイッチ２２ｂ−２２ｇは、下側ハウジング１６ｂの一方主面であり、ＬＣＤ１４の右側に配置される。さらに、スイッチ２２Ｌおよびスイッチ２２Ｒは、それぞれ、上側ハウジング１６ａとの連結部を挟む下側ハウジング１６ｂの上側面の左右角部に配置される。
【００３３】
方向指示スイッチ２２ａは、ディジタルジョイスティックとして機能し、４つの押圧部の１つを操作することによって、ユーザないしプレイヤによって操作可能なプレイヤオブジェクト(またはプレイヤキャラクタ)の進行方向（移動方向）を指示したり、カーソルの進行方向を指示したりする等に用いられる。また、各押圧部には、特定の役割を割り当てることができ、４つの押圧部の１つを操作することによって、割り当てられた役割を指示（指定）することができる。
【００３４】
スタートスイッチ２２ｂは、プッシュボタンで構成され、ゲームを開始（再開）したり、一時停止(Pause)したりする等に用いられる。また、セレクトスイッチ２２ｃは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【００３５】
動作スイッチ２２ｄすなわちＡボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤオブジェクトに打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(ＲＰＧ)やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ２２ｅすなわちＢボタンは、プッシュボタンで構成され、セレクトスイッチ２２ｃで選択したゲームモードの変更やＡボタン２２ｄで決定したアクションの取り消し等のために用いられる。
【００３６】
動作スイッチ２２ｆすなわちＸボタン、および動作スイッチ２２ｇすなわちＹボタンは、プッシュボタンで構成され、Ａボタン２２ｄとＢボタン２２ｅだけでは、ゲーム進行ができないときに、補助的な操作に用いられる。ただし、Ｘボタン２２ｆおよびＹボタン２２ｇは、Ａボタン２２ｄおよびＢボタン２２ｅと同様の操作に用いることも可能である。もちろん、ゲームプレイにおいてＸボタン２２ｆとＹボタン２２ｇとを必ずしも使用しなくてよい。
【００３７】
動作スイッチ２２Ｌ（左押しボタン）および動作スイッチ２２Ｒ（右押しボタン）は、プッシュボタンで構成され、左押しボタン（Ｌボタン）２２Ｌおよび右押しボタン（Ｒボタン）２２Ｒは、Ａボタン２２ｄおよびＢボタン２２ｅと同様の操作に用いることができ、また、Ａボタン２２ｄおよびＢボタン２２ｅの補助的な操作に用いることができる。さらに、Ｌボタン２２ＬおよびＲボタン２２Ｒは、方向スイッチ２２ａ、Ａボタン２２ｄ，Ｂボタン２２ｅ，Ｘボタン２２ｆ，Ｙボタン２２ｇに割り当てられた役割を、他の役割に変更することができる。
【００３８】
また、ＬＣＤ１４の上面には、タッチパネル２４が装着される。タッチパネル２４としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル２４は、その上面をスティック２６ないしはペン（スタイラスペン）或いは指（以下、これらを「スティック２６等」という場合がある。）で、押圧したり、撫でたり、触れたりすることにより操作（タッチ入力）すると、スティック２６等の操作位置の座標を検出して、検出した座標（検出座標）に対応する座標データを出力する。
【００３９】
なお、この実施例では、ＬＣＤ１４（ＬＣＤ１２も同じ、または略同じ。）の表示面の解像度は２５６ｄｏｔ×１９２ｄｏｔであり、タッチパネル２４の検出精度も表示画面に対応して２５６ｄｏｔ×１９２ｄｏｔとしてあるが、タッチパネル２４の検出精度は表示画面の解像度よりも低くてもよく、高くてもよい。
【００４０】
ＬＣＤ１２およびＬＣＤ１４には異なるゲーム画面が表示されてもよい。たとえば、レースゲームでは一方のＬＣＤに運転席からの視点による画面を表示し、他方のＬＣＤにレース（コース）全体の画面を表示することができる。また、ＲＰＧでは、一方のＬＣＤにマップやプレイヤオブジェクト等のキャラクタを表示し、他方のＬＣＤにプレイヤオブジェクトが所有するアイテムを表示することができる。さらに、一方のＬＣＤ（この実施例では、ＬＣＤ１２）にプレイヤオブジェクトやノンプレイヤオブジェクトなどを含むゲーム画面を表示し、他方のＬＣＤ（この実施例では、ＬＣＤ１４）に当該プレイヤオブジェクトやノンプレイヤオブジェクトに関する情報を含む他のゲーム画面または当該プレイヤオブジェクトを操作するための操作画面を表示することができる。さらには、２つのＬＣＤ１２およびＬＣＤ１４を合わせて１つの画面として用いることにより、プレイヤオブジェクトが倒さなければならない巨大な怪物（敵オブジェクト）を表示することもできる。
【００４１】
したがって、プレイヤはスティック２６等でタッチパネル２４を操作することにより、ＬＣＤ１４の画面に表示されるプレイヤオブジェクト、敵オブジェクト、アイテムオブジェクト、操作オブジェクトなどの画像を指示（操作）したり、コマンドを選択（入力）したりすることができる。また、仮想ゲーム空間（３次元ゲーム空間）に設けられる仮想カメラ（視点）の方向（視線の向き）を変化させたり、ゲーム画面（マップ）のスクロール(徐々に移動表示)方向を指示したりすることもできる。
【００４２】
なお、ゲームの種類によっては、タッチパネル２４を用いることにより、その他の入力指示も可能である。たとえば、座標入力指示を入力したり、ＬＣＤ１４において文字，数字，記号等を手書き入力したりすることができる。
【００４３】
このように、ゲーム装置１０は、２画面分の表示部となるＬＣＤ１２およびＬＣＤ１４を有し、いずれか一方（この実施例では、ＬＣＤ１４）の上面にタッチパネル２４が設けられるので、２画面（１２，１４）と２系統の操作部（２２，２４）とを有する構成になっている。
【００４４】
また、この実施例では、スティック２６は、たとえば下側ハウジング１６ｂに設けられる収納部（図１では点線で示す）に収納することができ、必要に応じて取り出される。ただし、スティック２６を設けない場合には、その収納部も設ける必要はない。
【００４５】
さらに、ゲーム装置１０はメモリカード（またはカートリッジ）２８を含み、このメモリカード２８は着脱自在であり、下側ハウジング１６ｂの裏面ないしは下端（底面）に設けられる挿入部３０（図１では点線で示す）に挿入される。図１では省略するが、挿入部３０の奥部には、メモリカード２８の挿入方向先端部に設けられるコネクタ（図示せず）と接合するためのコネクタ３２（図２参照）が設けられており、したがって、メモリカード２８が挿入部３０に挿入されると、コネクタ同士が接合され、ゲーム装置１０のＣＰＵコア３４（図２参照）がメモリカード２８にアクセス可能となる。
【００４６】
なお、図１では表現できないが、上側ハウジング１６ａの音抜き孔２０ａおよび２０ｂと対応する位置であり、この上側ハウジング１６ａの内部にはスピーカ３６ａおよび３６ｂ（図２参照）が設けられる。
【００４７】
また、図１では省略するが、たとえば、下側ハウジング１６ｂの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング１６ｂの底面側には、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【００４８】
図２はゲーム装置１０の電気的な構成を示すブロック図である。図２を参照して、ゲーム装置１０は電子回路基板３８を含み、この電子回路基板３８には上述のＣＰＵコア３４等の回路コンポーネントが実装される。ＣＰＵコア３４は、バス４０を介して前述のコネクタ３２に接続されるととともに、ＲＡＭ４２、第１のグラフィック処理ユニット（ＧＰＵ）４４、第２のＧＰＵ４６、入出カインターフエース回路（以下、「Ｉ／Ｆ回路」という。）４８およびＬＣＤコントローラ５０が接続される。
【００４９】
コネクタ３２には、上述したように、メモリカード２８が着脱自在に接続される。メモリカード２８は、ＲＯＭ２８ａおよびＲＡＭ２８ｂを含み、図示は省略するが、ＲＯＭ２８ａおよびＲＡＭ２８ｂは、互いにバスで接続され、さらに、コネクタ３２と接合されるコネクタ（図示せず）に接続される。したがって、上述したように、ＣＰＵコア３４は、ＲＯＭ２８ａおよびＲＡＭ２８ｂにアクセスすることができるのである。
【００５０】
ＲＯＭ２８ａは、ゲーム装置１０で実行すべきゲームのためのゲームプログラム、画像データ（文字やオブジェクトの画像、背景画像、アイテム画像、アイコン（ボタン）画像、メッセージ画像など）およびゲームに必要な音（音楽）のデータ（音データ）等を予め記憶する。ＲＡＭ（バックアップＲＡＭ）２８ｂは、そのゲームの途中データやゲームの結果データなどを記憶（セーブ）する。
【００５１】
ＲＡＭ４２は、バッファメモリないしはワーキングメモリとして使用される。つまり、ＣＰＵコア３４は、メモリカード２８のＲＯＭ２８ａに記憶されたプログラム、画像データおよび音データ等をＲＡＭ４２にロードし、ロードしたプログラムを実行する。また、ＣＰＵコア３４は、ゲームの進行に応じて一時的に発生するデータ（ゲームデータやフラグデータ）をＲＡＭ４２に記憶しつつゲーム処理を実行する。
【００５２】
なお、ゲームプログラム、画像データおよび音データ等は、ＲＯＭ２８ａから一度に全部、または部分的かつ順次的に読み出され、ＲＡＭ４２に記憶（ロード）される。
【００５３】
ただし、メモリカード２８のＲＯＭ２８ａには、ゲーム以外の他のアプリケーションについてのプログラムおよび当該アプリケーションの実行に必要な画像データが記憶される。また、必要に応じて、音（音楽）データが記憶されてもよい。かかる場合には、ゲーム装置１０では、当該アプリケーションが実行される。
【００５４】
ＧＰＵ４４およびＧＰＵ４６は、それぞれ、描画手段の一部を形成し、たとえばシングルチップＡＳＩＣで構成され、ＣＰＵコア３４からのグラフィックスコマンド（作画命令）を受け、そのグラフィックスコマンドに従って画像データを生成する。ただし、ＣＰＵコア３４は、グラフィックスコマンドに加えて、画像データの生成に必要な画像生成プログラム（ゲームプログラムに含まれる。）をＧＰＵ４４およびＧＰＵ４６のそれぞれに与える。
【００５５】
また、ＧＰＵ４４には、第１のビデオＲＡＭ（以下、「ＶＲＡＭ」という。）５２が接続され、ＧＰＵ４６には、第２のＶＲＡＭ５４が接続される。ＧＰＵ４４およびＧＰＵ４６が作画コマンドを実行するにあたって必要なデータ（画像データ：ポリゴンやテクスチャ等のデータ）は、ＧＰＵ４４およびＧＰＵ４６が、それぞれ、第１のＶＲＡＭ５２および第２のＶＲＡＭ５４にアクセスして取得する。
【００５６】
なお、ＣＰＵコア３４は、描画に必要な画像データをＧＰＵ４４およびＧＰＵ４６を介して第１のＶＲＡＭ５２および第２のＶＲＡＭ５４に書き込む。ＧＰＵ４４はＶＲＡＭ５２にアクセスして描画のための画像データを作成し、ＧＰＵ４６はＶＲＡＭ５４にアクセスして描画のための画像データを作成する。
【００５７】
ＶＲＡＭ５２およびＶＲＡＭ５４は、ＬＣＤコントローラ５０に接続される。ＬＣＤコントローラ５０はレジスタ５６を含み、レジスタ５６はたとえば１ビットで構成され、ＣＰＵコア３４の指示によって「０」または「１」の値（データ値）を記憶する。ＬＣＤコントローラ５０は、レジスタ５６のデータ値が「０」である場合には、ＧＰＵ４４によって作成された画像データをＬＣＤ１２に出力し、ＧＰＵ４６によって作成された画像データをＬＣＤ１４に出力する。また、ＬＣＤコントローラ５０は、レジスタ５６のデータ値が「１」である場合には、ＧＰＵ４４によって作成された画像データをＬＣＤ１４に出力し、ＧＰＵ４６によって作成された画像データをＬＣＤ１２に出力する。
【００５８】
なお、ＬＣＤコントローラ５０は、ＶＲＡＭ５２およびＶＲＡＭ５４から直接画像データを読み出したり、ＧＰＵ４４およびＧＰＵ４６を介してＶＲＡＭ５２およびＶＲＡＭ５４から画像データを読み出したりする。
【００５９】
Ｉ／Ｆ回路４８には、操作スイッチ２２，タッチパネル２４およびスピーカ３６ａ，３６ｂが接続される。ここで、操作スイッチ２２は、上述したスイッチ２２ａ，２２ｂ，２２ｃ，２２ｄ，２２ｅ，２２ｇ，２２Ｌおよび２２Ｒであり、操作スイッチ２２が操作されると、対応する操作信号（操作データ）がＩ／Ｆ回路４８を介してＣＰＵコア３４に入力される。また、タッチパネル２４からの座標データがＩ／Ｆ回路４８を介してＣＰＵコア３４に入力される。さらに、ＣＰＵコア３４は、ゲーム音楽（ＢＧＭ）、効果音またはゲームキャラクタの音声（擬制音）などのゲームに必要な音データをＲＡＭ４２から読み出し、Ｉ／Ｆ回路４８を介してスピーカ３６ａ，３６ｂから出力する。
【００６０】
図３は、図１および図２に示すゲーム装置１０を用いて、この実施例の仮想ゲーム（コンバットフライトシミュレーションゲーム）をプレイする場合に、ＬＣＤ１２に表示されるゲーム画面１００の一例およびＬＣＤ１４に表示されるゲーム画面２００の一例を示す。ゲーム画面１００は、プレイヤオブジェクト１０２を含み、このプレイヤオブジェクト１０２は、戦闘機の機体を模した飛行オブジェクトである。簡単のため、図示は省略するが、この実施例の敵オブジェクトは、主として、戦闘機のような飛行オブジェクトであるが、戦車、装甲車、戦艦または潜水艦のような地上ないし水上（水中）に存在する他のオブジェクト（以下、簡単のため、これらを「地上オブジェクト」と呼ぶことにする。）も含まれる。
【００６１】
また、ゲーム画面１００には、プレイヤオブジェクト１０２の機体速度および機体高度が可視表示される。この実施例では、ゲーム画面１００の左下部に機体速度の表示部１０４が設けられ、ゲーム画面１００の右下部に機体高度の表示部１０６が設けられる。さらに、ゲーム画面１００の中央上部には、機体の進行方向を示す方位（Ｎ，Ｅ，Ｗ，Ｓ）のキャラクタ１０８（図３では“Ｎ”）が表示される。なお、図示は省略するが、ゲーム画面１００には、敵オブジェクトや地形オブジェクト等も表示される。
【００６２】
また、ゲーム画面２００は、３次元（仮想）ゲーム空間の全部ないしその一部を上方から俯瞰的に見た場合に（図４参照）、プレイヤオブジェクト１０２と敵オブジェクト２０２との平面的な（ＸＺ平面における）位置関係を知らせるための表示部（レーダ表示部）２１０を含む。たとえば、レーダ表示部２１０では、プレイヤオブジェクト１０２は中心の三角形状の図形（黒色で塗りつぶしてある。）で示され、敵オブジェクト２０２はそれ以外の三角形状や四角形状の図形（線で模様を付してある。）で示される。また、プレイヤオブジェクト１０２が目標（標的）とする敵オブジェクト２０２（以下、「ターゲットオブジェクト」と呼ぶことがある。）を指示するカーソル２０４が表示される。
【００６３】
詳細な説明は省略するが、ゲーム画面２００には、レーダ表示部２１０の周りに、プレイヤオブジェクト１０２に関する情報（ライフ（ＨＰ）、プレイヤオブジェクト１０２が保有する弾の種類および数など）や敵オブジェクト２０２の数（倒した数（ＨＩＴ），残りの数（ＬＥＦＴ））などの他の情報も表示される。
【００６４】
ここで、図４に示すように、この実施例の３次元ゲーム空間では、水平面の横方向がＸ軸方向であり、水平面の奥行き方向がＺ軸方向であり、水平面に対して垂直な方向（高さ方向）がＹ軸方向である。詳細な説明は省略するが、Ｙ軸には海抜（標高）０ｍ〜７０００ｍのスケールを定義する目盛が付されている。したがって、Ｙ軸方向におけるプレイヤオブジェクト１０２の位置に対応する標高が、上述したゲーム画面１００の表示部１０６に表示されるのである。
【００６５】
また、プレイヤの操作（たとえば、十字スイッチ２２ａの操作）によって、プレイヤオブジェクト１０２のヨー角とピッチ角とを制御することにより、プレイヤオブジェクト１０２の進行方向を変化させることができる。図５に示すように、この実施例では、プレイヤオブジェクト１０２が３次元ゲーム空間のＺ軸方向に移動していると仮定した場合に、ヨー角は３次元ゲーム空間（ワールド座標）のＹ軸周りの角度であり、ピッチ角は３次元ゲーム空間のＸ軸周りの角度である。図面では表現できないが、プレイヤの操作（たとえば、Ａボタン２２ｄやＢボタン２２ｅのオン／オフ）によって、機体速度を制御することもできる。したがって、３次元ゲーム空間において、プレイヤオブジェクト１０２を自在に移動（飛行）させることができるのである。
【００６６】
このような仮想ゲームにおいては、プレイヤは、所望のターゲットオブジェクトを選択し、プレイヤオブジェクト１０２の移動を制御して、選択したターゲットオブジェクトに追従させる。そして、プレイヤは、プレイヤオブジェクト１０２がターゲットオブジェクトを攻撃可能な状態（ロックオン状態）で、タイミングを計ってミサイルを発射させる。ただし、ロックオン状態とは、プレイヤオブジェクト１０２が敵オブジェクト２０２（ターゲットオブジェクト）に照準を合わせて追尾可能な状態を意味する。
【００６７】
プレイヤオブジェクト１０２から発射されたミサイルがターゲットオブジェトに命中すると、当該ターゲットオブジェクトは爆発し、３次元ゲーム空間から消滅する。一方、プレイヤオブジェクト１０２から発射されたミサイルがターゲットオブジェクトに命中しなければ、そのままターゲットオブジェクトは逃げ去ったり、プレイヤオブジェクト１０２に攻撃したりする。
【００６８】
通常、このような仮想ゲームでは、Ｘボタン２２ｆがオン（操作）される毎に、ターゲットオブジェクトが優先順位に従って順番に切り替えられる。つまり、ターゲットオブジェクトとして選択された状態（選択状態）が優先順位に従って切り替えられる。図示は省略するが、このとき、図３に示したゲーム画面２００において、カーソル２０４が優先順位に従って選択されたターゲットオブジェクト（敵オブジェクト２０２）を指示するように表示を更新される。
【００６９】
ここで、優先順位は、ターゲットオブジェクトの選択状態を切り替える順番を意味する。この実施例では、Ｘボタン２２ｆがオンされる毎に、優先順位が１位から順に４位まで切り替えられ、優先順位が４位のターゲットオブジェクトを選択している状態で、Ｘボタン２２ｆがオンされると、優先順位が１位のターゲットオブジェクトが選択される。つまり、最初（１位）のターゲットオブジェクトに選択状態が戻る。
【００７０】
また、この実施例では、優先順位は、プレイヤオブジェクト１０２の位置を中心に決定される領域（後述する「判定領域」）の順位に応じて決定される。ただし、同じ順位の領域に存在する敵オブジェクト２０２については、プレイヤオブジェクト１０２からの距離（または角度）が近い方の敵オブジェクト２０２の優先順位が高く決定される。ここで、プレイヤオブジェクト１０２と敵オブジェクト２０２との距離は数１に従って算出される。ただし、プレイヤオブジェクト１０２の現在位置の座標を（Ｘ１，Ｙ１，Ｚ１）とし、敵オブジェクト２０２の現在位置の座標を（Ｘ２，Ｙ２，Ｚ２）としてある。
【００７１】
［数１］
距離＝√｛（Ｘ１−Ｘ２）２＋（Ｙ１−Ｙ２）２＋（Ｚ１−Ｚ２）２｝
さらに、同じ順位の領域内に存在する複数の敵オブジェクト２０２のそれぞれとプレイヤオブジェクト１０２との距離が同じ場合には、プレイヤオブジェクト１０２の進行方向からのずれ（水平方向の（ＸＺ平面における）角度θおよび垂直方向の（ＹＺ平面における）角度α）が小さい方の敵オブジェクト２０２の優先順位が高くなる。
【００７２】
なお、簡単のため、プレイヤオブジェクト１０２の進行方向のベクトル（移動ベクトル）と、プレイヤオブジェクト１０２の位置を始点とし敵オブジェクト２０２の位置を終点とするベクトルとの角度の大きさ（絶対値）を、プレイヤオブジェクト１０２の進行方向からのずれとして算出するようにしてもよい。
【００７３】
具体的には、図６およびこの図６の一部拡大図である図７（Ａ）に示すように、判定領域は、プレイヤオブジェクト１０２を中心とする水平面上の４つの同心円と、プレイヤオブジェクト１０２の視界の範囲を示す直線およびその視界の範囲を所定の角度で区切った直線と、３次元ゲーム空間の水平方向の範囲（水平面）を一定の大きさで仕切る四角形の枠とを用いて設定される。この実施例では、４つの同心円の半径は、それぞれ、３次元ゲーム空間におけるスケールで、３０００ｍ，６０００ｍ，１２０００ｍおよび２００００ｍである。また、プレイヤオブジェクト１０２の視界の範囲はその進行方向を０°とした場合に、左右３０°ずつである。そして、この視界の範囲をプレイヤオブジェクト１０２の進行方向を０°とした場合に、左右１６°ずつで区切って、プレイヤオブジェクト１０２の進行方向からのずれの大きさに優劣を付けるようにしてある。図示は省略するが、たとえば、３次元ゲーム空間の水平面を仕切る四角形は、１５０００ｍ×１４０００ｍの大きさである。
【００７４】
図６および図７（Ａ）からも分かるように、この実施例では、判定領域は１６個の領域（閉領域）に分割され、各領域には番号が付されている。この番号は、各領域を識別する識別情報であるとともに、その数値の大きさが領域の順位（優先度）を示してある。この領域の順位に従って敵オブジェクト２０２の優先順位が決定される。ただし、図６および図７（Ａ）の上方がプレイヤオブジェクト１０２の進行方向である。
【００７５】
この実施例では、判定領域が決定されると、各領域の番号は固定的に決定される。各領域の番号の決定方法は、次の３つの条件に従っている。１つ目の条件としては、プレイヤオブジェクト１０２の前方（進行方向）の領域は後方の領域も順位が高い。２つ目の条件としては、プレイヤオブジェクト１０２との距離が近い領域はより順位が高い。３つ目の条件としては、プレイヤオブジェクト１０２の進行方向に対する水平方向の角度が小さい領域はより順位が高い。
【００７６】
なお、この実施例では、プレイヤオブジェクト１０２が敵オブジェクト２０２を追尾したり、攻撃したりする難易度を重視して、判別領域を設定したり、上記のような条件に従って各領域の番号を決定するようにしてある。ただし、判定領域の設定方法や領域の番号の決定の仕方はこの実施例の方法に限定される必要はなく、ゲームプログラマや開発者が任意に設定することができる。
【００７７】
また、この実施例では、判定領域の各領域の番号（順位）を固定的に決定するようにしてあるが、ゲームの種類や難易度、或いは３次元ゲーム空間に出現する敵オブジェクト２０２の種類によっては、任意に決定するようにしてもよい。
【００７８】
図７（Ｂ）は、３次元ゲーム空間を横方向（Ｘ軸方向）から見た図であり、プレイヤオブジェクト１０２の上下方向における視界の範囲を示す。この実施例では、進行方向を０°とした場合に、上下３０°の範囲がプレイヤオブジェクト１０２の視界の範囲である。この図７（Ｂ）から分かるように、地上オブジェクトの水平方向の位置がプレイヤオブジェクト１０２に近い場合には、地上オブジェクトはプレイヤオブジェクト１０２からの死角になってしまう。このため、優先順位を決定する場合には、地上オブジェクトについては、上下方向の角度は考慮しないようにしてある。
【００７９】
なお、この実施例では、簡単のため、上下方向については、角度のみを検出するようにしてあるが、水平方向と同様に、上下方向についても複数の領域に分割して、領域毎の順位に従って優先順位を決定するようにしてもよい。
【００８０】
従来では、たとえば、ターゲットオブジェクトの選択中に、もう一度最初に選択したターゲットオブジェクト（敵オブジェクト２０２）や既に選択し終わった敵オブジェクト２０２を選択し直したい場合には、Ｘボタン２２ｆを繰返し操作する必要があった。これでは、操作が大変面倒であり、特に敵オブジェクト２０２の数が多い場合には、操作性が悪く、ゲーム自体への興味の減退を招来しかねない。
【００８１】
そこで、この実施例では、簡単な操作で、優先順位が最も高い敵オブジェクト２０２を選択するようにして、操作性を向上させるようにしてある。
【００８２】
具体的には、一定時間（この実施例では、６０フレーム）以上Ｘボタン２２ｆを押し続けた場合には、現在のターゲットオブジェクトの優先順位に拘わらず、優先順位が最も高い敵オブジェクト２０２をターゲットオブジェクトとして選択するようにしてある。したがって、最初に選択した敵オブジェクト２０２や既に選択し終わった敵オブジェクト２０２を選択し直す場合に、簡単な操作で選択することができるのである。
【００８３】
図８は図２に示したＲＡＭ４２のメモリマップを示す図解図である。この図８を参照して、ＲＡＭ４２は、プログラム記憶領域７０およびデータ記憶領域７２を含む。プログラム記憶領域７０はゲームプログラムを記憶し、ゲームプログラムは、ゲームメイン処理プログラム７０ａ、画像生成プログラム７０ｂ、画像表示プログラム７０ｃ、優先順位設定プログラム７０ｄ、変更操作判別プログラム７０ｅおよびターゲット切替プログラム７０ｆなどによって構成される。
【００８４】
ゲームメイン処理プログラム７０ａは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム７０ｂは、後述する画像データ７２ｂを用いてゲーム画像（ゲーム画面）を生成するためのプログラムである。画像表示プログラム７０ｃは、ゲーム画像生成プログラム７０ｂに従って生成されたゲーム画像を表示装置（ＬＣＤ１２，ＬＣＤ１４）に表示（更新）するためのプログラムである。
【００８５】
優先順位設定プログラム７０ｄは、後述する最優先指示が入力された場合や所定時間が経過する毎に、敵オブジェクト２０２の優先順位を設定し、設定した結果（後述する優先順位データ）を当該敵オブジェクト２０２に対応づけてデータ記憶領域７２に記憶するためのプログラムである。ただし、この実施例では、優先順位は１位から４位までしか必要ないため、５位以下の敵オブジェクト２０２に関しては優先順位データを記憶する必要はない。なお、他の実施例では、必要とする優先順位の数を変更してもよいし、すべての敵オブジェクト２０２について優先順位データを記憶するようにしてもよい。
【００８６】
優先順位を設定する場合には、まず、図６に示したような判定領域がプレイヤオブジェクト１０２の現在位置および進行方向に応じて設定される。次に、敵オブジェクト２０２の現在位置に応じて各敵オブジェクト２０２がいずれの領域に存在するかが判別される。そして、各敵オブジェクト２０２が存在する領域の番号に従って、各敵オブジェクト２０２の優先順位が判定される。ただし、同じ番号（優先順位）の領域に存在する敵オブジェクト２０２が複数存在する場合には、プレイヤオブジェクト１０２との距離に応じて優先順位が決定される。さらに、距離も同じである場合には、プレイヤオブジェクト１０２の進行方向とのずれ（角度）に応じて優先順位が決定される。たとえば、この実施例では、プレイヤオブジェクト１０２の進行方向とのずれは、水平方向の角度θの大きさ（絶対値）と垂直方向の角度αの大きさとの和で算出される。角度の大きさは単純に加算してもよいし、いずれか一方の角度を重視するように重み付けをしてもよい。また、敵オブジェクト２０２の種類に応じて、いずれか一方の角度のみを考慮するようにしてもよい。
【００８７】
変更操作判別プログラム７０ｅは、プレイヤの操作（指示）が優先順位に従って順次ターゲットオブジェクトを切り替える指示（順次切替指示）であるか、優先順位に従わずに最も優先順位の高いターゲットオブジェクトに切り替える指示（最優先指示）であるかを判別するためのプログラムである。この実施例では、プレイヤがＸボタン２２ｆを押し続けている時間（継続時間）をカウントし、その継続時間が一定時間（６０フレーム）を越えるか否かに応じて、順次切替指示であるか最優先指示であるかを判別する。この実施例では、プレイヤがＸボタン２２ｆを一定時間以上押し続けた場合には、最優先指示であることが判別され、一定時間未満である場合には、順次切替指示であることが判別される。
【００８８】
ターゲット切替プログラム７０ｆは、プレイヤの指示に従ってターゲットオブジェクトを切り替えるためのプログラムである。ただし、変更操作判別プログラム７０ｅに従って順次切替指示が判別された場合には、ターゲット切替プログラム７０ｆは、優先順位が次のターゲットオブジェクトに選択状態を切り替える。一方、変更操作判別プログラム７０ｅに従って最優先指示が判別された場合には、ターゲット切替プログラム７０ｆは、優先順位に従わずに最も優先順位の高いターゲットオブジェクトに選択状態を切り替える。ただし、ターゲットオブジェクトを切り替える前に、既に最も優先順位の高いターゲットオブジェクトが選択されている場合には、そのまま選択状態が維持される。
【００８９】
なお、図示は省略するが、ゲームプログラムは、ゲーム音出力プログラムおよびバックアッププログラムも含む。ゲーム音出力プログラムは、音（音楽）データを用いて、ゲームに必要な音を出力するためのプログラムである。バックアッププログラムは、プレイヤの指示やゲームイベントに従って、ＲＡＭ４２に記憶されているゲームデータ（途中データ，結果データ）をメモリカード２８（ＲＡＭ２８ｂ）にセーブするためのプログラムである。
【００９０】
図９は図８に示したデータ記憶領域７２の具体的な内容を示す図解図である。データ記憶領域７２には、操作データバッファ７２ａが設けられる。また、データ記憶領域７２には、画像データ７２ｂ、プレイヤオブジェクトデータ７２ｃおよび敵オブジェクトデータ７２ｄが記憶される。さらに、データ記憶領域７２には、変更間隔カウンタ７２ｅおよび継続時間カウンタ７２ｆが設けられるとともに、ボタンフラグ７２ｇ、順次切替フラグ７２ｈおよび最優先フラグ７２ｉが設けられる。
【００９１】
操作データバッファ７２ａは、操作スイッチ２２からの操作データを一時記憶するためのバッファであり、また、タッチパネル２４からの座標データ（操作データ）も一時記憶する。画像データ７２ｂは、プレイヤオブジェクト１０２、敵オブジェクト２０２、背景オブジェクトなどを含むゲーム画像を生成するためのデータ（ポリゴンやテクスチャなどのデータ）である。
【００９２】
プレイヤオブジェクトデータ７２ｃは、プレイヤオブジェクト１０２に関するデータである。このプレイヤオブジェクトデータ７２ｃは、プレイヤオブジェクト１０２の動作パラメータ８０および位置データ８２を含む。動作パラメータ８０は、プレイヤオブジェクト１０２の進行方向および移動速度に関するデータである。つまり、動作パラメータ８０は、プレイヤオブジェクト１０２の移動に関するベクトルのデータである。位置データ８２は、３次元ゲーム空間におけるプレイヤオブジェクト１０２の現在位置のデータであり、３次元の座標データで表わされる。プレイヤオブジェクトデータ７２ｃ（動作パラメータ８０および位置データ８２）は、プレイヤオブジェクト１０２を３次元ゲーム空間に配置（描画）するために用いられたり、判定領域を決定する際に用いられたりする。
【００９３】
敵オブジェクトデータ７２ｄは、敵オブジェクト１０２に関するデータであり、図９からも分かるように、敵オブジェクト１０２毎に記憶される。この実施例では、第１オブジェクトデータ９０、第２オブジェクトデータ９２，…，第ｎオブジェクトデータ９ｎが記憶される。第１オブジェクトデータ９０は、動作パラメータ９０ａ、位置データ９０ｂおよび優先順位データ９０ｃを含む。動作パラメータ９０ａは、敵オブジェクト２０２の移動に関するベクトル（進行方向および移動速度）のデータである。位置データ９０ｂは、３次元ゲーム空間における敵オブジェクト２０２の現在位置のデータであり、３次元の座標データで表わされる。優先順位データ９０ｃは、優先順位設定プログラム７０ｄに従って判定された優先順位を示す番号のデータ（数値データ）である。したがって、優先順位が判定される毎に、優先順位データ９０ｃは更新される。ただし、上述したように、この実施例では、優先順位は１位から４位までしか必要ないため、５位以下の敵オブジェクト２０２に対応する敵オブジェクトデータ（９０，９２，…，９２ｎ）については、優先順位データが記述されない。
【００９４】
なお、図示および詳細な説明は省略するが、第２オブジェクトデータ９２，…，第ｎオブジェクトデータ９ｎについても、第１オブジェクトデータ９０と同様である。
【００９５】
変更間隔カウンタ７２ｅは、優先順位を変更（再設定）する時間間隔（変更間隔）をカウントするためのカウンタである。この実施例では、変更間隔は、変更操作指示を判別するための一定時間よりも短い一定時間（たとえば、４０フレーム）に設定される。継続時間カウンタ７２ｆは、プレイヤが所定のボタン（この実施例では、Ｘボタン２２ｆ）を操作（オン）している継続時間をカウントするためのカウンタである。
【００９６】
ボタンフラグ７２ｇは、上記所定のボタンすなわちＸボタン２２ｆがオンされているか否かを判別するためのフラグである。たとえば、ボタンフラグ７２ｇは、１ビットのレジスタで構成される。ボタンフラグ７２ｇが成立（オン）されると、レジスタにはデータ値「１」が設定され、ボタンフラグ７２ｇが不成立（オフ）されると、レジスタにはデータ値「０」が設定される。この実施例では、Ｘボタン２２ｆがオンされている場合に、ボタンフラグ７２ｇはオンされ、Ｘボタン２２ｆがオフされている場合に、ボタンフラグ７２ｇはオフされる。
【００９７】
順次切替フラグ７２ｈは、優先順位に従ってターゲットオブジェクトを順次切り替えるか否かを判別するためのフラグである。この順次切替フラグ７２ｈもまた、１ビットのレジスタで構成される。順次切替フラグ７２ｈがオンされると、レジスタにはデータ値「１」が設定され、順次切替フラグ７２ｈがオフされると、レジスタにはデータ値「０」が設定される。この実施例では、順次切替指示が判別された場合に、順次切替フラグ７２ｈはオンされ、最優先指示が判別された場合に、順次切替フラグ７２ｈはオフされる。
【００９８】
最優先フラグ７２ｉは、優先順位に従わずにターゲットオブジェクトを優先順位の最も高いターゲットオブジェクトに切り替えるか否かを判別するためのフラグである。この最優先フラグ７２ｉもまた、１ビットのレジスタで構成される。最優先フラグ７２ｉがオンされると、レジスタにはデータ値「１」が設定され、最優先フラグ７２ｉがオフされると、レジスタにはデータ値「０」が設定される。この実施例では、最優先指示が判別された場合に、最優先フラグ７２ｉはオンされ、順次切替支持が判別された場合に、最優先フラグ７２ｉはオフされる。
【００９９】
図示は省略するが、データ記憶領域７２には、音（音楽）データのような他のデータが記憶されるとともに、ゲームの進行に必要な他のカウンタやフラグも設けられる。
【０１００】
具体的には、図２に示したＣＰＵコア３４が図１０に示す全体処理を実行する。図１０に示すように、全体処理を開始すると、ステップＳ１で、初期設定を実行する。たとえば、ゲームを始めから開始する場合には、各種フラグ、レジスタおよびカウンタに初期値が設定される。また、データ記憶領域７２のバッファ領域（操作データバッファ７２ａなど）がクリアされる。ただし、前回の続きからゲームを開始する場合には、メモリカード２８にセーブしておいたゲームデータに従って各種フラグおよびレジスタの値が設定される。ただし、いずれの場合であっても、ステップＳ１では、変更間隔カウンタ７２ｅおよび継続時間カウンタ７２ｆのカウント値は「０」に設定される。
【０１０１】
続くステップＳ３では、後述する優先順位設定処理（図１１−図１２参照）を実行する。次のステップＳ５では、優先順位が１番の敵機（敵オブジェクト２０２）をターゲットオブジェクトとして設定する。このとき、ＬＣＤ１４に表示されるゲーム画面２００では、ターゲットオブジェクトに設定された敵オブジェクト２０２に対応する図形がカーソルないし指示画像で指示される。
【０１０２】
続いて、ステップＳ７では、変更間隔カウンタ７２ｅをインクリメントする。つまり、カウント値を１（フレーム）加算する。次のステップＳ９では、後述する変更操作判別処理（図１３参照）を実行し、ステップＳ１１では、後述するターゲット切替処理（図１４および図１５参照）を実行する。次いで、ステップＳ１３では、ゲームプログラムおよびプレイヤの操作に基づいてゲーム進行処理を実行する。ここでは、プレイヤの操作に応じてプレイヤオブジェクト１０２を移動させたり、プレイヤオブジェクト１０２からミサイルを発射させたりする。また、ゲームプログラムに従って敵オブジェクト２０２を移動させたり、プレイヤオブジェクト１０２目掛けてミサイルを発射させたりする。このとき、ゲーム画面１００およびゲーム画面２００も更新される。
【０１０３】
そして、ステップＳ１５では、ゲーム終了かどうかを判断する。たとえば、プレイヤによってゲーム終了が指示されたり、ゲームオーバになったりしたかどうかを判断する。ステップＳ１５で“ＮＯ”であれば、つまりゲーム終了でなければ、そのままステップＳ７に戻る。一方、ステップＳ１５で“ＹＥＳ”であれば、つまりゲーム終了であれば、そのまま全体処理を終了する。
【０１０４】
なお、ステップＳ７−Ｓ１５のスキャンタイムは、１フレームであり、したがって、変更間隔カウンタ７２ｅは１フレーム毎にインクリメントされる。
【０１０５】
図１１および図１２は、図１０に示したステップＳ３の優先順位設定処理のフロー図である。図１１に示すように、ＣＰＵコア３４は優先順位設定処理を開始すると、ステップＳ３１で、自機の位置座標および進行方向情報を取得する。つまり、ＣＰＵコア３４は、データ記憶領域７２のプレイヤオブジェクトデータ７２ｃに含まれる動作パラメータ８０および位置データ８２を参照して、現在位置の位置座標および進行方向情報を取得する。
【０１０６】
続くステップＳ３３では、取得した位置座標と進行方向情報とに基づいてゲーム空間を１６の領域に分割する。つまり、プレイヤオブジェクト１０２を中心とする判定領域が設定される。次のステップＳ３５では、１６の領域に所定の規則に基づいて順位をつける。この実施例では、図６および図７（Ａ）に示したように、各領域の番号が決定される。つまり、プレイヤオブジェクト１０２との距離が短く、プレイヤオブジェクト１０２の進行方向とのずれが小さい領域の番号が小さく（順位が高く）設定される。
【０１０７】
続いて、ステップＳ３７では、領域の番号を示す変数ｍおよび優先順位を示す変数ｎの初期値を設定する（ｍ＝１，ｎ＝１）。図１２に示すように、次のステップＳ３９では、領域ｍ内に敵機が存在するかどうかを判断する。ここでは、領域ｍに位置座標（ＸＺ座標のみ）が含まれる敵オブジェクト２０２が存在するかどうかを判断する。ステップＳ３９で“ＮＯ”であれば、つまり領域ｍ内に敵機が存在しなければ、そのままステップＳ５９に進む。一方、ステップＳ３９で“ＹＥＳ”であれば、つまり領域ｍ内に敵機が存在すれば、ステップＳ４１で、当該領域ｍに複数の敵機が存在するかどうかを判断する。
【０１０８】
ステップＳ４１で“ＮＯ”であれば、つまり当該領域ｍに敵機が一機存在する場合には、ステップＳ４３で、当該敵機に優先順位ｎを設定して、ステップＳ５３に進む。一方、ステップＳ４１で“ＹＥＳ”であれば、つまり当該領域ｍに複数の敵機が存在すれば、ステップＳ４５で、自機と複数の敵機とのそれぞれの距離を数１に従って算出する。そして、ステップＳ４７で、距離が最も小さい敵機に優先順位ｎを設定し、ステップＳ４９で、変数ｎを１加算する（ｎ＝ｎ＋１）。次のステップＳ５１では、次に距離が小さい敵機に優先順位ｎを設定する。
【０１０９】
続いて、ステップＳ５３では、変数ｎが４であるかどうかを判断する。つまり、１〜４位までの優先順位が敵機に付けられたかどうかを判断する。ステップＳ５３で“ＹＥＳ”であれば、つまり変数ｎが４であれば、優先順位ｎの設定を終了したと判断して、図１０に示した全体処理にリターンする。
【０１１０】
しかし、ステップＳ５３で“ＮＯ”であれば、つまり変数ｎが４未満であれば、ステップＳ５５で、領域ｍ内のすべての敵機について優先順位ｎを設定したかどうかを判断する。ステップＳ５５で“ＮＯ”であれば、つまり領域ｍ内において優先順位ｎを付していない敵機が存在すれば、そのままステップＳ４９に戻る。一方、ステップＳ５５で“ＹＥＳ”であれば、つまり領域ｍ内のすべての敵機に優先順位を設定すれば、ステップＳ５７で、変数ｎを１加算して、ステップＳ５９に進む。
【０１１１】
ステップＳ５９では、変数ｍが１６かどうかを判断する。つまり、すべての領域ｍについて敵機が存在するか否かを調べたかどうかを判断する。ステップＳ５９で“ＹＥＳ”であれば、つまり変数ｍが１６であれば、すべての領域ｍについて敵機が存在するか否かを調べたと判断して、全体処理にリターンする。一方、ステップＳ５９で“ＮＯ”であれば、つまり変数ｍが１６未満であれば、ステップＳ６１で変数ｍを１加算して（ｍ＝ｍ＋１）、ステップＳ３９に戻る。
【０１１２】
図１３は図１０に示したステップＳ９の変更操作判別処理のフロー図である。図１３に示すように、ＣＰＵコア３４は変更操作判別処理を開始すると、ステップＳ８１で、ターゲット変更ボタンが押されたかどうかを判断する。この実施例では、ＣＰＵコア３４は、データ記憶領域７２の操作データバッファ７２ａを参照して、Ｘボタン２２ｆが操作されたかどうかを判断する。
【０１１３】
ステップＳ８１で“ＮＯ”であれば、つまりターゲット変更ボタンが押されていなければ、ステップＳ８３で、ボタンフラグ７２ｇをオフし、ステップＳ８５で、継続時間カウンタ７２ｆをリセットして、図１０に示した全体処理にリターンする。一方、ステップＳ８１で“ＹＥＳ”であれば、つまりターゲット変更ボタンが押されていれば、ステップＳ８７で、ボタンフラグ７２ｇがオンであるかどうかを判断する。つまり、ターゲット変更ボタン（Ｘボタン２２ｆ）が押し続けられているかどうかを判断するのである。
【０１１４】
ステップＳ８７で“ＹＥＳ”であれば、ボタンフラグ７２ｊがオンであれば、ターゲット変更ボタンが押し続けられていると判断して、そのままステップＳ９３に進む。一方、ステップＳ８７で“ＮＯ”であれば、つまりボタンフラグ７２ｊがオフであれば、今回ターゲット変更ボタンが押されたと判断して、ステップＳ８９で、ボタンフラグ７２ｊをオンし、ステップＳ９１で、順次切替フラグ７２ｈをオンして、ステップＳ９３に進む。
【０１１５】
ステップＳ９３では、継続時間カウンタ７２ｆをインクリメントする。上述したように、ステップＳ７−Ｓ１５のスキャンタイムは１フレームであるため、ターゲット変更ボタンが押しつづけられている場合には、継続時間カウンタ７２ｆは１フレームずつ加算される。
【０１１６】
続くステップＳ９５では、継続時間カウンタ７２ｆのカウント値が６０フレーム以上であるかどうかを判断する。つまり、ターゲット変更ボタンが一定時間以上押し続けられたかどうかを判断する。ステップＳ９５で“ＮＯ”であれば、つまり継続時間カウンタ７２ｆのカウント値が６０フレーム未満であれば、そのまま全体処理にリターンする。一方、ステップＳ９５で“ＹＥＳ”であれば、つまり継続時間カウンタ７２ｆのカウント値が６０フレーム以上であれば、ステップＳ９７で、最優先フラグ７２ｉをオンし、ステップＳ９９で、順次切替フラグ７２ｈをオフして、全体処理にリターンする。
【０１１７】
図１４および図１５は、図１０に示したステップＳ１１のターゲット切替処理のフロー図である。図１４に示すように、ＣＰＵコア３４はターゲット切替処理を開始すると、ステップＳ１１１で、最優先フラグ７２ｉがオンかどうかを判断する。ステップＳ１１１で“ＹＥＳ”であれば、つまり最優先フラグ７２ｉがオンであれば、最優先切替指示であると判断し、ステップＳ１１３で、最優先フラグ７２ｉをオフし、ステップＳ１１５で、上述した優先順位設定処理を実行し、ステップＳ１１７で、優先順位が１位の敵機をターゲットオブジェクトとして設定し、ステップＳ１１９で、変更間隔カウンタ７２ｅをリセットして、図１０に示した全体処理にリターンする。
【０１１８】
なお、ステップＳ１１７の処理は図１０に示したステップＳ５の処理と同じであるため、重複する説明は省略することにする。
【０１１９】
一方、ステップＳ１１１で“ＮＯ”であれば、つまり最優先フラグ７２ｉがオフであれば、ステップＳ１２１で順次切替フラグ７２ｈがオンであるかどうかを判断する。ステップＳ１２１で“ＮＯ”であれば、つまり順次切替フラグ７２ｈがオフであれば、ターゲット変更操作がされていないと判断して、図１５に示すステップＳ１３１で、現ターゲットの敵機が消滅したかどうかを判断する。つまり、たとえば、ターゲットオブジェクトが、プレイヤオブジェクト１０２の攻撃や自身の移動により３次元ゲーム空間から消滅したかどうかを判断する。
【０１２０】
ステップＳ１３１で“ＮＯ”であれば、つまり現ターゲットの敵機が消滅していなければ、そのまま図１０に示した全体処理にリターンする。一方、ステップＳ１３１で“ＹＥＳ”であれば、つまり現ターゲットの敵機が消滅すれば、図１４に示したステップＳ１１５に進む。つまり、優先順位を設定し、優先順位が１位の敵オブジェクト２０２をターゲットオブジェクトに設定する。
【０１２１】
図１４に戻って、ステップＳ１２１で“ＹＥＳ”であれば、つまり順次切替フラグ７２ｈがオンであれば、順次切替指示であると判断して、ステップＳ１２３で、順次切替フラグ７２ｈをオフした後、ステップＳ１２５で、変更間隔カウンタ７２ｅのカウント値が４０フレーム以上であるかどうかを判断する。ステップＳ１２５で“ＮＯ”であれば、つまり変更間隔カウンタ７２ｅのカウント値が４０フレーム未満である場合には、ステップＳ１２７で、現ターゲットの優先順位が４位であるかどうかを判断する。ここでは、ＣＰＵコア３４は、現ターゲットの敵オブジェクト２０２の敵オブジェクトデータ（９０，９２，…，９ｎ）を参照して、その優先順位が４位であるかどうかを判断するのである。
【０１２２】
ステップＳ１２７で“ＹＥＳ”であれば、つまり現ターゲットの優先順位が４位である場合には、優先順位が１位の敵オブジェクト２０２をターゲットオブジェクトとして選択すべく、ステップＳ１１７に進む。一方、ステップＳ１２７で“ＮＯ”であれば、つまり現ターゲットの優先順位が４位でなければ、ステップＳ１２９で、優先順位が次の順位の敵オブジェクト２０２をターゲットオブジェクトとして選択して、ステップＳ１１９に進む。
【０１２３】
また、ステップＳ１２５で“ＹＥＳ”であれば、つまり変更間隔カウンタ７２ｅのカウント値が４０フレーム以上であれば、優先順位を再設定すると判断して、図１５に示すステップＳ１３３で、上述したターゲット優先順位設定処理を実行する。そして、ステップＳ１３５で、現ターゲットの変更後の優先順位が１位であるかどうかを判断する。ステップＳ１３５で“ＮＯ”であれば、つまり現ターゲットの変更後の順位が１位でなければ、図１４に示したステップＳ１１７に進む。一方、ステップＳ１３５で“ＹＥＳ”であれば、つまり現ターゲットの変更後の順位が１位であれば、ステップＳ１３７で、優先順位が２位の敵オブジェクト２０２をターゲットオブジェクトとして設定して、図１４に示したステップＳ１１９に進む。このように、プレイヤが順次切替指示をしたときには、必ずターゲットが他の敵オブジェクト２０２に切り替えられる。これにより、順次切替指示をしたにも拘わらず、ターゲットが切り替わらないといった不都合を防ぐことができ、操作がゲームに反映されないといったストレスをプレイヤに与えないようにすることができる。
【０１２４】
この実施例によれば、ターゲット変更ボタンを押す毎に、優先順位に従ってターゲットの敵オブジェクトの選択状態を順次変更し、ターゲット変更ボタンを一定時間以上押し続けた場合には、優先順位に従わずに優先順位が１位の敵オブジェクトをターゲットとして選択するので、既に選択し終わった敵オブジェクトや最初の敵オブジェクトを簡単な操作で選択し直すことができる。したがって、ゲームの操作性を損なうことがない。
【０１２５】
なお、この実施例では、１つの操作ボタンを用いて、順次切替指示または最優先切替指示を入力するようにしたが、異なる操作ボタンを用いるようにしてもよい。たとえば、Ｘボタン２２ｆを押す毎にターゲットオブジェクトの選択が順次切り替わり、Ｙボタン２２ｇを一定時間以上押し続けた場合に優先順位が１位の敵オブジェクトをターゲットオブジェクトとして選択するようにしてもよい。このように、一定時間以上押し続けるようにするのは、ボタンの単なる押し間違えにより、優先順位が１位の敵オブジェクトをターゲットオブジェクトとして選択してしまうのを防止するためである。したがって、たとえば、１のボタンを一定時間以上押し続ける操作に代えて、複数のボタンを連続的に操作した場合に、優先順位が１位の敵オブジェクトをターゲットオブジェクトとして選択するようにしてもよい。
【０１２６】
また、操作ボタンに代えて、ゲーム画面２００に、「ターゲット切替ボタン」を表示させ、タッチペン等で「ターゲット切替ボタン」を一定時間以上接触し続けたか否かをタッチパネル２４からの検出信号に基づいて判別してターゲットの順次切替または最優先切替を行うようにしてもよい。
【０１２７】
また、この実施例では、ポインティングデバイスとして、タッチパネルを用いるようにしたが、ペンタブレット、タッチパッド、コンピュータマウスのような他のポインティングデバイスを用いることも可能である。当然のことながら、従来の操作スイッチを用いることも可能である。ただし、他のポインティングデバイスや操作スイッチを用いる場合には、画面上の指示位置を示すためのマウスポインタのような指示画像を表示する必要がある。
【０１２８】
さらに、ゲーム装置の構成は、上述の実施例の構成に限定されるべきでない。たとえば、ＬＣＤは１つでもよく、タッチパネルは２つのＬＣＤのそれぞれに設けるようにしてもよい。
【０１２９】
他の実施例のゲーム装置１０は、順次切替指示がある度に、最新の優先順位に従ってターゲットオブジェクトの選択状態を切り替えるようにした以外は上述の実施例と同じであるため、重複した説明は省略することにする。したがって、上述の実施例において、変更間隔カウンタ７２ｅを省略することができる。
【０１３０】
具体的には、他の実施例のターゲット切替処理は、図１６および図１７のフロー図で示される。この他の実施例のターゲット切替処理は、上述の実施例のターゲット切替処理の一部を変更しただけであるため、同じステップについては同じ参照符号を付けてある。また、同じ処理についての重複した説明は割愛することにする。
【０１３１】
図１６に示すように、この他の実施例のターゲット切替処理では、順次切替フラグ７２ｈがオンである場合、ステップＳ１２１で“ＹＥＳ”となり、ステップＳ１２３で順次切替フラグをオフすると、後述する順次切替処理（図１８−図２０）を実行する。そして、順次切替処理の結果、ステップＳ２０３で、最優先切替フラグがオンであるかどうかを判断する。ここで、最優先切替フラグは、優先順位が１位の敵オブジェクト２０２をターゲットオブジェクトに設定するか否かを判断するためのフラグである。この最優先切替フラグもまた、１ビットのレジスタでデータ記憶領域７２に構成される。最優先切替フラグがオンされると、レジスタにはデータ値「１」が設定され、最優先切替フラグがオフされると、レジスタにはデータ値「０」が設定される。最優先切替フラグがオンである場合には、ステップＳ２０３で“ＹＥＳ”となり、ステップＳ１１７に進む。一方、最優先切替フラグがオフである場合には、優先順位が次の順位の敵オブジェクト２０２をターゲットオブジェクトにするべく、ステップＳ１２９に進む。
【０１３２】
図１８に示すように、ＣＰＵコア３４は順次切替処理を開始すると、ステップＳ１５１で、現在のターゲットの敵オブジェクト２０２の領域の番号を検出する。続くステップＳ１５３では、次のターゲットの敵オブジェクト２０２の候補を検出する。つまり、ステップＳ１５１で検出した領域の番号の次の領域の番号を示すエリア内に存在する敵オブジェクト２０２が検出される。ただし、現在のターゲットの敵オブジェクト２０２の領域の番号の次の領域の番号が示すエリア内に敵オブジェクト２０２が存在しない場合には、さらに次の領域の番号が示すエリア内の敵オブジェクト２０２が検出される。次のターゲットの敵オブジェクト２０２の候補が検出されるまで、同様の処理が繰り返される。
【０１３３】
続いて、ステップＳ１５５では、１番目の敵オブジェクト２０２の領域の番号を検出する。なお、ここでの敵オブジェクト２０２の順番は、全ての敵オブジェクト２０２をサーチして、次のターゲット候補を決定するためのものであり、任意に設定されたり、データ記憶領域７２に記憶されている順番に従って設定されたりするものである。ただし、現在のターゲットの敵オブジェクト２０２と、次のターゲットの候補とを除く、敵オブジェクト２０２についてサーチされる。以下、サーチする敵オブジェクト２０２を当該敵オブジェクト２０２と呼ぶことにする。
【０１３４】
図１９に示すように、次のステップＳ１５７では、当該敵オブジェクト２０２の優先順位が現在のターゲットよりも高いかどうかを判断する。つまり、当該敵オブジェクト２０２の領域の番号が、現在のターゲットの敵オブジェクト２０２の領域の番号よりも小さいかどうかを判断する。ただし、当該敵オブジェクト２０２の領域の番号と、現在のターゲットの敵オブジェクト２０２の領域の番号とが同じ場合には、プレイヤオブジェクト１０２と当該敵オブジェクト２０２との距離（説明の都合上、「第１距離」という。）が、プレイヤオブジェクト１０２と現在のターゲットの敵オブジェクト２０２との距離（説明の都合上、「第２距離」という。）よりも短いかどうかを判断する。なお、この距離の判断は行わないようにしても良い。
【０１３５】
ステップＳ１５７で“ＹＥＳ”であれば、つまり当該敵オブジェクト２０２の優先順位が現在のターゲットよりも高い場合には、図２０に示すステップＳ１７１に進む。一方、ステップＳ１５７で“ＮＯ”であれば、つまり現在のターゲットよりも優先順位が高くない場合には、ステップＳ１５９で、当該敵オブジェクト２０２の優先順位が現在のターゲットと同じであるかどうかを判断する。ここでは、第１距離と第２距離とが一致するかどうかを判断する。
【０１３６】
ステップＳ１５９で“ＹＥＳ”であれば、つまり当該敵オブジェクト２０２の優先順位が現在のターゲットと同じであれば、ステップＳ１６１で、当該敵オブジェクト２０２についての角度の優先度が現在のターゲットよりも高いかどうかを判断する。つまり、プレイヤオブジェクト１０２の進行方向からのずれ（この実施例では、θ＋α）が小さいかどうかを判断する。ステップＳ１６１で“ＹＥＳ”であれば、つまり当該敵オブジェクト２０２についての角度の優先度が現在のターゲットよりも高い場合には、そのままステップＳ１７１に進む。一方、ステップＳ１６１で“ＮＯ”であれば、つまり当該敵オブジェクト２０２についての角度の優先度が現在のターゲットよりも低い場合には、図２０に示すステップＳ１７５にそのまま進む。
【０１３７】
一方、ステップＳ１５９で“ＮＯ”であれば、つまり当該敵オブジェクト２０２の優先順位が現在のターゲットと同じでなければ、当該敵オブジェクト２０２の優先順位が現在のターゲットよりも低いと判断して、ステップＳ１６３で、当該敵オブジェクト２０２の優先順位が次のターゲット候補よりも高いかどうかを判断する。この判断手法は、ステップＳ１５７で説明した場合と同様であるため、重複した説明は省略する。
【０１３８】
ステップＳ１６３で“ＹＥＳ”であれば、つまり当該敵オブジェクト２０２の優先順位が次のターゲット候補よりも高い場合には、そのままステップＳ１６９に進む。一方、ステップＳ１６３で“ＮＯ”であれば、つまり当該敵オブジェクト２０２の優先順位が次のターゲット候補よりも高くない場合には、ステップＳ１６５で、当該敵オブジェクト２０２の優先順位が次のターゲット候補と同じであるかどうかを判断する。
【０１３９】
ステップＳ１６５で“ＮＯ”であれば、つまり当該敵オブジェクト２０２の優先順位が次のターゲット候補と同じでなければ、当該敵オブジェクト２０２の優先順位が次のターゲット候補よりも低いと判断して、そのままステップＳ１７５に進む。一方、ステップＳ１６５で“ＹＥＳ”であれば、つまり当該敵オブジェクト２０２の優先順位が次のターゲット候補と同じであれば、ステップＳ１６７で、当該敵オブジェクト２０２の角度の優先度が次のターゲット候補よりも高いかどうかを判断する。ステップＳ１６７で“ＮＯ”であれば、つまり当該敵オブジェクト２０２の角度の優先度が次のターゲット候補よりも高くなければ、そのままステップＳ１７５に進む。一方、ステップＳ１６７で“ＹＥＳ”であれば、つまり当該敵オブジェクト２０２の角度の優先度が次のターゲット候補よりも高ければ、ステップＳ１６９で、当該敵オブジェクト２０２を次のターゲット候補に更新して、ステップＳ１７５に進む。
【０１４０】
図２０に示すように、ステップＳ１７１では、現在のターゲットの優先順位よりも高い優先順位の敵オブジェクト２０２が３つ以上あるかどうかを判断する。ステップＳ１７１で“ＮＯ”であれば、つまり現在のターゲットの優先順位よりも高い優先順位の敵オブジェクト２０２が３つ未満であれば、ステップＳ１７５に進む。一方、ステップＳ１７１で“ＹＥＳ”であれば、現在のターゲットの優先順位よりも高い優先順位の敵オブジェクト２０２が３つ以上あれば、現在のターゲットの優先順位は４位以下であると判断して、ステップＳ１７３で、最優先切替フラグをオンして、ターゲット切替処理にリターンする。
【０１４１】
また、ステップＳ１７５では、すべての敵オブジェクト２０２についてサーチを終了したかどうかを判断する。ステップＳ１７５で“ＮＯ”であれば、つまりすべての敵オブジェクト２０２についてサーチを終了していなければ、ステップＳ１７７で、次の敵オブジェクト２０２の領域の番号を検出して、図１９に示したステップＳ１５７に戻る。一方、ステップＳ１７５で“ＹＥＳ”であれば、つまりすべての敵オブジェクト２０２についてサーチを終了すれば、ステップＳ１７９で、次のターゲット候補を見つけたかどうかを判断する。つまり、次に選択すべき敵オブジェクト２０２が存在するかどうかを判断する。
【０１４２】
ステップＳ１７９で“ＮＯ”であれば、つまり次のターゲット候補が見つからなければ、そのままステップＳ１７３に進む。一方、ステップＳ１７９で“ＹＥＳ”であれば、つまり次のターゲット候補が見つかれば、ステップＳ１８１で、最優先切替フラグをオフして、ターゲット切替処理にリターンする。
【０１４３】
このようにしても、ターゲットオブジェクトの選択状態を順次切り替えることができるのである。また、このようにすれば、プレイヤからの切替指示がある毎に更新される最新の情報に基づいてターゲットオブジェクトの切替選択を実行することができる。
【０１４４】
他の実施例においても、上述の実施例と同様に、操作性を高くして、ゲームへの興味減退を防止することができる。
【０１４５】
なお、これらの実施例では、プレイヤオブジェクトの現在の位置および進行方向を基準に判定領域を設定し、現時点における敵オブジェクトの優先順位を設定するようにしたが、これに限定されるべきでない。プレイヤオブジェクトのＴ（＞０）秒後の位置および進行方向を予測して、予測結果に応じて判定領域を設定し、同じくＴ秒後の敵オブジェクトの位置および進行方向を予想して、優先順位を設定するようにしてもよい。プレイヤオブジェクトのＴ秒後の位置および進行方向は、プレイヤオブジェクトの動作パラメータを用いた物理計算により簡単に求めることができる。また、敵オブジェクトは、ゲームプログラムに従って移動を制御されるため、Ｔ秒後の位置および進行方向は簡単に予測する（知る）ことができる。
【０１４６】
また、これらの実施例では、判定領域を設定して、敵オブジェクトの優先順位を設定するようにしたが、これに限定される必要はない。上述の実施例のような判定領域は設定せずに、プレイヤオブジェクトの位置および進行方向を基準として、プレイヤオブジェクトと各敵オブジェクトとの距離および進行方向からのずれをそれぞれ算出して、その算出結果に応じて各敵オブジェクトの優先順位を設定するようにしてもよい。
【０１４７】
また、上述の実施例では、３次元ゲームの例を説明したが、２次元ゲームのものに適用してもよい。
【図面の簡単な説明】
【０１４８】
【図１】図１はこの発明のゲーム装置の一実施例を示す図解図である。
【図２】図２は図１に示すゲーム装置の電気的な構成を示すブロック図である。
【図３】図３は図１に示すゲーム装置の第１および第２のＬＣＤに表示されるゲーム画面の一例を示す図解図である。
【図４】図４は３次元ゲーム空間におけるプレイヤオブジェクトを示す図解図である。
【図５】図５はプレイヤオブジェクトのヨー角およびピッチ角を説明するための図解図である。
【図６】図６は敵オブジェクトの優先順位を設定するための判定領域を示す図解図である。
【図７】図７は図６に示す判定領域の一部拡大図および３次元ゲーム空間を横方向から見た図解図である。
【図８】図８は図２に示すＲＡＭのメモリマップの一例を示す図解図である。
【図９】図９は図８に示すデータ記憶領域の具体的な内容を示す図解図である。
【図１０】図１０は図２に示すＣＰＵコアのゲーム全体処理を示すフロー図である。
【図１１】図１１は図２に示すＣＰＵコアの優先順位設定処理の一部を示すフロー図である。
【図１２】図１２は図２に示すＣＰＵコアの優先順位設定処理の他の一部であって、図１１に後続するフロー図である。
【図１３】図１３は図２に示すＣＰＵコアの変更操作判別処理を示すフロー図である。
【図１４】図１４は図２に示すＣＰＵコアのターゲット切替処理の一部を示すフロー図である。
【図１５】図１５は図２に示すＣＰＵコアのターゲット切替処理の他の一部であって、図１４に後続するフロー図である。
【図１６】図１６は他の実施例のＣＰＵコアのターゲット切替処理の一部を示すフロー図である。
【図１７】図１７は他の実施例のＣＰＵコアのターゲット切替処理の他の一部であって、図１６に後続するフロー図である。
【図１８】図１８は他の実施例のＣＰＵコアの順次切替処理の一部を示すフロー図である。
【図１９】図１９は他の実施例のＣＰＵコアの順次切替処理の他の一部であって、図１８に後続するフロー図である。
【図２０】図２０は他の実施例のＣＰＵコアの順次切替処理のその他の一部であって、図１９に後続するフロー図である。
【符号の説明】
【０１４９】
１０  …ゲーム装置
１２，１４  …ＬＣＤ
１６，１６ａ，１６ｂ  …ハウジング
２２  …操作スイッチ
２４  …タッチパネル
２６  …スティック
２８  …メモリカード
２８ａ  …ＲＯＭ
２８ｂ，４２  …ＲＡＭ
３４  …ＣＰＵコア
３６ａ，３６ｂ  …スピーカ
４４，４６  …ＧＰＵ
４８  …Ｉ／Ｆ回路
５０  …ＬＣＤコントローラ
５２，５４  …ＶＲＡＭ
【図１】
2008188322.tif 000003
【図２】
2008188322.tif 000004
【図３】
2008188322.tif 000005
【図４】
2008188322.tif 000006
【図５】
2008188322.tif 000007
【図６】
2008188322.tif 000008
【図７】
2008188322.tif 000009
【図８】
2008188322.tif 000010
【図９】
2008188322.tif 000011
【図１０】
2008188322.tif 000012
【図１１】
2008188322.tif 000013
【図１２】
2008188322.tif 000014
【図１３】
2008188322.tif 000015
【図１４】
2008188322.tif 000016
【図１５】
2008188322.tif 000017
【図１６】
2008188322.tif 000018
【図１７】
2008188322.tif 000019
【図１８】
2008188322.tif 000020
【図１９】
2008188322.tif 000021
【図２０】
2008188322.tif 000022