[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5210547B2 - 移動制御プログラムおよび移動制御装置 - Google Patents

移動制御プログラムおよび移動制御装置 Download PDF

Info

Publication number
JP5210547B2
JP5210547B2 JP2007141392A JP2007141392A JP5210547B2 JP 5210547 B2 JP5210547 B2 JP 5210547B2 JP 2007141392 A JP2007141392 A JP 2007141392A JP 2007141392 A JP2007141392 A JP 2007141392A JP 5210547 B2 JP5210547 B2 JP 5210547B2
Authority
JP
Japan
Prior art keywords
input
distance
movement
ball
moving speed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007141392A
Other languages
English (en)
Other versions
JP2008295483A (ja
Inventor
真理 白川
ゴダード ジャイルズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2007141392A priority Critical patent/JP5210547B2/ja
Priority to US12/076,599 priority patent/US10016678B2/en
Publication of JP2008295483A publication Critical patent/JP2008295483A/ja
Application granted granted Critical
Publication of JP5210547B2 publication Critical patent/JP5210547B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/426Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving on-screen location information, e.g. screen coordinates of an area at which the player is aiming with a light gun
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/214Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
    • A63F13/2145Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads the surface being also a display device, e.g. touch screens
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/812Ball games, e.g. soccer or baseball
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1068Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals being specially adapted to detect the point of contact of the player on a surface, e.g. floor mat, touch pad
    • A63F2300/1075Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals being specially adapted to detect the point of contact of the player on a surface, e.g. floor mat, touch pad using a touch screen
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6045Methods for processing data by generating or executing the game program for mapping control signals received from the input arrangement into game commands
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8011Ball

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Position Input By Displaying (AREA)

Description

この発明は移動制御プログラムおよび移動制御装置に関し、特にたとえばポインティングデバイスからの入力に基づいて画面に表示されたオブジェクトの移動を制御するための移動制御プログラムおよび移動制御装置に関する。
従来、タッチパネル等のポインティングデバイスからの入力に基づいて画面に表示されているオブジェクトの移動を制御するものが知られている。
例えば、特許文献1に記載された技術では、タッチパネルから最初に検出した位置座標が操作オブジェクトの表示領域に含まれるか否かが判断され、最初に検出した位置座標が表示領域に含まれる場合には、その入力に応じて操作オブジェクトが移動される。具体的には、タッチパネルへの連続入力時間が計測され、連続入力時間が短いほど初速度が速くなるようにオブジェクトの移動速度が算出される。また、タッチパネルへの入力開始時点の位置座標のデータ(始点)と、入力終了時点の位置座標のデータ(終点)が検出され、始点と終点の差が算出されて、差が大きいほど初速度が速くなるように(またはその逆にすることも可)オブジェクトの移動速度が算出される。
また、特許文献2に記載された技術では、タッチパネル上の任意の位置でストローク操作(タッチパネル上をなでるような操作)を行うことによって、操作オブジェクトが移動される。具体的には、ストローク操作の長さに基づいてオブジェクトの移動速度が算出される。たとえば、タッチ座標の差分が所定の閾値を超えるか否かが判別され、オブジェクトが停止しているときに、差分が所定の閾値を超える場合には、新速度が一定速度Aに決定され、差分が所定の閾値以下である場合には、新速度は0に決定される。また、オブジェクトが移動中に、差分が所定の閾値以下である場合には、新速度は一定速度Aから一定の減速度Bよりも大きい減速度(B+α)を減算することによって算出され、差分が所定の閾値を越える場合には、新速度が一定速度Aに決定される。
特開2005−193006号公報 特開2006−149662号公報
上記特許文献1および2の技術は、2つの入力座標を結ぶ直線と操作対象となるオブジェクトとの距離に基づいてオブジェクトの移動速度を決定するものではなかった。
また、特許文献1の技術では、オブジェクトをタッチして移動制御のための操作をする必要がある。画面上に多くのオブジェクトを表示する場合、個々のオブジェクトの大きさが小さくなるので、各オブジェクトをポインティングデバイスで指示し難くなり、操作性が良くないという問題がある。
一方、特許文献2の技術では、オブジェクトにタッチすることなく、タッチパネル上の任意の位置でストローク操作をすることによって、オブジェクトを移動させることができる。オブジェクトが1つの場合にはこのような移動制御を適用可能であるが、複数の操作オブジェクトが存在する場合には適用することができない。
それゆえに、この発明の主たる目的は、新規な移動制御プログラムおよび移動制御装置を提供することである。
この発明の他の目的は、オブジェクトの移動を多様に制御することのできる移動制御プログラムおよび移動制御装置を提供することである。
この発明の他の目的は、オブジェクトの移動制御のための操作性が良い移動制御プログラムおよび移動制御装置を提供することである。
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
第1の発明は、少なくともプレイヤによって操作される操作オブジェクトを画面に表示する表示手段と当該表示手段の画面上の位置を指示するためのポインティングデバイスとを備える移動制御装置のコンピュータにおいて実行される移動制御プログラムである。この移動制御プログラムは、入力座標検出ステップ、距離算出ステップ、移動速度算出ステップ、および移動処理ステップをコンピュータに実行させる。入力座標検出ステップは、ポインティングデバイスによって指示される画面上の位置を示す入力座標を所定時間毎に検出する。距離算出ステップは、入力座標検出ステップによって検出された前回の入力座標と今回の入力座標とを結ぶ直線と、操作オブジェクトとの距離を算出する。移動速度算出ステップは、距離算出ステップによって算出された距離に基づいて操作オブジェクトの移動速度を算出する。移動処理ステップは、移動速度算出ステップによって算出された移動速度に基づいて操作オブジェクトを移動させる。
第1の発明では、移動制御装置(10)は、表示手段(12、14)およびポインティングデバイス(24)含む。移動制御プログラムは、移動制御装置のコンピュータ(34)に以下に説明するステップを実行させ、画面に表示された操作オブジェクト(104)の移動をポインティングデバイスの入力によって制御する。入力座標検出ステップ(S9、S43、S45)では、画面上の指示位置を示す入力座標が所定時間ごとに検出される。距離算出ステップ(S53、S55)では、前回検出された入力座標(f0)と今回検出された入力座標(f1)とを結ぶ直線と、操作オブジェクトとの距離(cD)が算出される。たとえば、操作オブジェクトの基準点(中心点B0)から垂下した線と入力座標の直線と交点(c)が算出され、当該交点と基準点との距離が算出されてよい。移動速度算出ステップ(S65)では、算出された距離に基づいて操作オブジェクトの移動速度(v1)が算出される。たとえば、現在の移動速度ベクトル(v0)と、距離に応じた入力ベクトルとを合成することによって、移動速度ベクトルを算出するようにしてよい。移動処理ステップ(S19)では、算出された移動速度に基づいて操作オブジェクトが移動される。
第1の発明によれば、入力座標の直線と操作オブジェクトとの距離に基づいて、移動速度を算出するようにしたので、当該距離に応じて操作オブジェクトの移動速度を変化させることができ、したがって、操作オブジェクトの移動を多様に制御することができる。
第2の発明は、第1の発明に従属する移動制御プログラムであって、移動速度算出ステップは、距離が小さいほど移動速度を大きくする。
第2の発明によれば、入力座標の直線と操作オブジェクトとの距離が小さいほど操作オブジェクトの移動速度を大きくすることができるので、操作オブジェクトの移動制御にリアリティを与えることができる。
第3の発明は、第1の発明に従属する移動制御プログラムであって、最近点算出ステップをさらにコンピュータに実行させる。最近点算出ステップは、直線上の点のうち、操作オブジェクトの基準点に最も近い点を算出する。距離算出ステップは、最近点算出ステップによって算出された最近点と、操作オブジェクトの基準点との距離を算出する。
第3の発明では、最近点算出ステップ(S53)では、入力座標の直線上の点のうち、操作オブジェクトの基準点に最も近い点(c)が算出される。操作オブジェクトの基準点はたとえば中心点や重心点等であり、ゲーム空間において当該基準点の位置に操作オブジェクトは配置される。距離算出ステップでは、最近点と基準点との距離が算出される。
第3の発明によれば、入力座標の直線と操作オブジェクトの基準点との最短距離に基づいて、移動速度を算出することができるので、ポインティングデバイスによって指示される位置が操作オブジェクトをどの程度正確に捉えているかに応じて、操作オブジェクトの移動速度を変化させることができる。
第4の発明は、第3の発明に従属する移動制御プログラムであって、操作オブジェクトは円形のオブジェクトであり、当たり判別ステップをコンピュータにさらに実行させる。当たり判別ステップは、前回の入力座標から今回の入力座標への入力方向と円形のオブジェクトの半径とに基づいて設定される領域と、前回の入力座標と今回の入力座標とを結ぶ入力線分とが交わるか否かを判別する。移動速度算出ステップは、当たり判別ステップによって領域と入力線分とが交わることが判別されたとき、距離に基づいて円形のオブジェクトの移動速度を算出する。
第4の発明では、操作オブジェクトは円形のオブジェクトである。当該円形のオブジェクトには、その半径(r)とプレイヤによる入力方向に基づいて、当たり判定領域が設けられる。具体的には、当たり判定ステップ(S59、S61)では、前回の入力座標から今回の入力座標への入力方向と半径とに基づいて設定される領域と、入力線分とが交わるか否かが判定される。この当たり判定は、入力方向に垂直な方向の当たり判定と、入力方向の当たり判定とに分けて行われるようにしてよい。また、入力方向に垂直な方向の有効領域と入力方向の有効領域の広さが異なるように設定されてもよい。移動速度算出ステップでは、領域と入力線分とが交わるときに、距離に基づいて移動速度が算出される。
第4の発明では、円形オブジェクトの半径とプレイヤによる入力方向に応じて設定される有効領域上の入力が行われたときのみ、当該オブジェクトの移動を操作することができる。
第5の発明は、第1の発明の移動制御プログラムであって、移動速度算出ステップは、入力座標検出ステップによって検出された前回の入力座標と今回の入力座標の差分を算出する差分算出ステップを含んでいて、さらに差分に基づいて操作オブジェクトの移動速度を算出する。
第5の発明では、移動速度を算出する際には、前回の入力座標と今回の入力座標との差分(f1−f0)が算出される。移動速度は、距離と当該差分とに基づいて算出される。
第5の発明によれば、入力座標の直線と操作オブジェクトとの距離に加えて、入力座標の差分に基づいて操作オブジェクトの移動速度を算出するので、操作オブジェクトの移動をより多様に制御することができ、移動のリアリティを増すことができる。
第6の発明は、少なくともプレイヤによって操作される操作オブジェクトを画面に表示する表示手段と当該表示手段の画面上の位置を指示するためのポインティングデバイスとを備え、ポインティングデバイスによる入力によって操作オブジェクトの移動を制御する移動制御装置である。移動制御装置は、入力座標検出手段、距離算出手段、移動速度算出手段、および移動処理手段を備える。入力座標検出手段は、ポインティングデバイスによって指示される画面上の位置を示す入力座標を所定時間毎に検出する。距離算出手段は、入力座標検出手段によって検出された前回の入力座標と今回の入力座標とを結ぶ直線と、操作オブジェクトとの距離を算出する。移動速度算出手段は、距離算出手段によって算出された距離に基づいて操作オブジェクトの移動速度を算出する。移動処理手段は、移動速度算出手段によって算出された移動速度に基づいて操作オブジェクトを移動させる。
第6の発明は、上述の第1の発明の移動制御プログラムに対応する移動制御装置であり、第1の発明と同様な効果を奏する。
この発明によれば、入力座標を結ぶ直線と操作オブジェクトとの距離に基づいて算出される移動速度で操作オブジェクトを移動させることができるので、当該距離に応じて操作オブジェクトの移動速度を変化させることができる。つまり、操作オブジェクトの移動を多様に制御することができる。
また、距離に基づいて移動速度を算出するので、複数の操作オブジェクトが存在する場合であっても、入力座標を結ぶ直線と個々の操作オブジェクトとの距離に基づいて、操作オブジェクトの移動速度を制御することができる。したがって、オブジェクトの移動制御のための操作性が良い。
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
図1を参照して、この発明の実施例である移動制御装置10は、ゲーム装置の形態で実現される。なお、移動制御装置10はパーソナルコンピュータ、携帯情報端末、携帯電話機など他の形態で実現されてもよい。
移動制御装置すなわちゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。LCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも少し大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bの平面形状およびサイズも上側ハウジング16aと同等に選ばれ、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。下側ハウジング16bの右側面には電源スイッチ18が設けられる。
また、上側ハウジング16aには、LCD12を挟んで左右に、スピーカ36aおよび36b(図2)のための音抜き孔20aおよび20bが形成される。
上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
そして、上側ハウジング16aと下側ハウジング16bとの連結部の中央には、マイク(図示せず)のためのマイク孔20cが形成される。マイクから取り込んだ音、音声または息などによる音声信号に基づいてゲーム処理を行うことが可能である。
また、下側ハウジング16bには、操作スイッチ22(22a,22b,22c,22d,22e,22Lおよび22R)が設けられる。
操作スイッチ22は、方向指示スイッチ(十字スイッチ)22a,スタートスイッチ22b、セレクトスイッチ22c、動作スイッチ(Aボタン)22d、動作スイッチ(Bボタン)22e、動作スイッチ(Xボタン)22f、動作スイッチ(Yボタン)22g、動作スイッチ(Lボタン)22Lおよび動作スイッチ(Rボタン)22Rを含む。スイッチ22aは、下側ハウジング16bの一方主面であり、LCD14の左側に配置される。その他のスイッチ22b−22gは、下側ハウジング16bの一方主面であり、LCD14の右側に配置される。さらに、動作スイッチ22Lおよび22Rは、それぞれ下側ハウジング16bの上端面の左右角部に配置される。なお、動作スイッチ22Lおよび22Rは下側ハウジング16bの背面に設けられており、図1のような正面視では連結部の背後に隠れているので破線で示されている。
方向指示スイッチ22aは、ディジタルジョイスティックとして機能し、4つの押圧部の1つを操作することによって、ユーザないしプレイヤによって操作可能なプレイヤオブジェクト(またはプレイヤキャラクタ)の進行方向(移動方向)を指示したり、カーソルの進行方向を指示したりする等に用いられる。また、各押圧部には、特定の役割を割り当てることができ、4つの押圧部の1つを操作することによって、割り当てられた役割を指示(指定)することができる。
スタートスイッチ22bは、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止(Pause)したりする等に用いられる。また、セレクトスイッチ22cは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
動作スイッチ22dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤオブジェクトに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ22eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ22cで選択したゲームモードの変更やAボタン22dで決定したアクションの取り消し等のために用いられる。
動作スイッチ22fすなわちXボタン、および動作スイッチ22gすなわちYボタンは、プッシュボタンで構成され、Aボタン22dとBボタン22eだけでは、ゲーム進行ができないときに、補助的な操作に用いられる。ただし、Xボタン22fおよびYボタン22gは、Aボタン22dおよびBボタン22eと同様の操作に用いることも可能である。もちろん、ゲームプレイにおいてXボタン22fとYボタン22gとを必ずしも使用しなくてよい。
動作スイッチ22L(左押しボタン)および動作スイッチ22R(右押しボタン)は、プッシュボタンで構成され、左押しボタン(Lボタン)22Lおよび右押しボタン(Rボタン)22Rは、Aボタン22dおよびBボタン22eと同様の操作に用いることができ、また、Aボタン22dおよびBボタン22eの補助的な操作に用いることができる。さらに、Lボタン22LおよびRボタン22Rは、方向スイッチ22a、Aボタン22d,Bボタン22e,Xボタン22f,Yボタン22gに割り当てられた役割を、他の役割に変更することができる。
また、LCD14の上面には、タッチパネル24が装着される。タッチパネル24としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル24は、その上面をスティック26ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック26等」という場合がある。)で、押圧したり、撫でたり、触れたりすることにより操作(タッチ入力)すると、スティック26等の操作位置の座標を検出して、当該検出座標に対応する座標データを出力する。
なお、この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotである。タッチパネル24の検出精度も表示画面に対応して256dot×192dotとしてあるが、タッチパネル24の検出精度は表示画面の解像度よりも低くてもよく、高くてもよい。
LCD12およびLCD14には異なるゲーム画面が表示されてもよい。たとえば、レースゲームでは一方のLCDに運転席からの視点による画面を表示し、他方のLCDにレース(コース)全体の画面を表示することができる。また、RPGでは、一方のLCDにマップやプレイヤオブジェクト等のキャラクタを表示し、他方のLCDにプレイヤオブジェクトが所有するアイテムを表示することができる。さらに、一方のLCDにプレイヤオブジェクトやノンプレイヤオブジェクトなどを含むゲーム画面を表示し、他方のLCDに当該プレイヤオブジェクトやノンプレイヤオブジェクトに関する情報を含む他のゲーム画面または当該プレイヤオブジェクトを操作するための操作画面を表示することができる。さらには、2つのLCD12およびLCD14を合わせて1つの画面として用いることにより、プレイヤオブジェクトが倒さなければならない巨大な怪物(敵オブジェクト)を表示することもできる。
したがって、プレイヤはスティック26等でタッチパネル24を操作することにより、LCD14の画面に表示されるプレイヤオブジェクト、敵オブジェクト、アイテムオブジェクト、操作オブジェクトなどの画像を指示(操作)したり、コマンドを選択(入力)したりすることができる。また、仮想ゲーム空間(3次元ゲーム空間)に設けられる仮想カメラ(視点)の方向(視線の向き)を変化させたり、ゲーム画面(マップ)のスクロール(徐々に移動表示)方向を指示したりすることもできる。
なお、ゲームの種類によっては、タッチパネル24を用いることにより、その他の入力指示も可能である。たとえば、LCD14において文字,数字,記号等を手書き入力することができる。
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この実施例では、LCD14)の上面にタッチパネル24が設けられるので、2画面(12,14)と2系統の操作部(22,24)とを有する構成になっている。
なお、この実施例では、第1のLCD12と第2のLCD14とを縦方向に並べて配置するようにしているが、2つのLCDの配置は適宜に変更され得る。他の実施例では、第1のLCD12と第2のLCD14とを横方向に並べて配置するようにしてもよい。
また、この実施例では、2つのLCDを設けるようにしていたが、表示手段としてのLCDの数は適宜変更され得る。他の実施例では、縦長形状の1つのLCDを設けて、表示領域を上下に分けて、2つのゲーム画面をそれぞれの表示領域に表示するようにしてもよいし、あるいは、横長形状の1つのLCDを設けて、表示領域を左右に分割し、2つゲーム画面をそれぞれの表示領域に表示するようにしてもよい。
また、スティック26は、たとえば下側ハウジング16bに設けられる収納部(図示せず)に収納することができ、必要に応じて取り出される。ただし、スティック26を設けない場合には、その収納部も設ける必要はない。
さらに、ゲーム装置10はメモリカード(またはカートリッジ)28を含み、このメモリカード28は着脱自在であり、下側ハウジング16bの上端面に設けられる挿入部30(図1では点線で示す)に挿入される。図1では省略するが、挿入部30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタと接合するためのコネクタ32(図2参照)が設けられており、したがって、メモリカード28が挿入部30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア34(図2参照)がメモリカード28にアクセス可能となる。
なお、図1では表現できないが、上側ハウジング16aの音抜き孔20aおよび20bと対応する位置であり、この上側ハウジング16aの内部にはスピーカ36aおよび36b(図2参照)が設けられる。
また、図1では省略するが、たとえば、下側ハウジング16bにおいて、その裏面には電池収容ボックスが設けられ、下端面(底面)には、音量スイッチおよびイヤフォンジャックなどが設けられ、上端面(天面)には、外部拡張コネクタなどが設けられる。
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板38を含み、この電子回路基板38には上述のCPUコア34等の回路コンポーネントが実装される。CPUコア34は、バス40を介して前述のコネクタ32に接続されるととともに、RAM42、第1のグラフィック処理ユニット(GPU)44、第2のGPU46、入出カインターフエース回路(以下、「I/F回路」という。)48、LCDコントローラ50および無線通信部58に接続される。
コネクタ32には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ32と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア34は、ROM28aおよびRAM28bにアクセスすることができる。
ROM28aは、ゲーム装置10で実行すべきゲームのためのゲームプログラム、画像データ(文字やオブジェクトの画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像など)およびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)28bは、そのゲームの途中データやゲームの結果データなどを記憶(セーブ)する。セーブ用メモリとしてはフラッシュメモリなどが用いられてよい。
RAM42は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア34は、メモリカード28のROM28aに記憶されたプログラム、画像データおよび音データ等をRAM42にロードし、ロードしたプログラムを実行する。また、CPUコア34は、ゲームの進行に応じて一時的に生成するデータ(ゲームデータやフラグデータ)をRAM42に記憶しつつゲーム処理を実行する。
なお、ゲームプログラム、画像データおよび音データ等は、ROM28aから一度に全部、または部分的かつ順次的に読み出され、RAM42に記憶される。
ただし、ゲーム装置10ではゲーム以外の他のアプリケーションが実行されてよく、この場合、メモリカード28のROM28aには、当該アプリケーションについてのプログラムおよび画像データ等の必要なデータが記憶されてよい。また、必要に応じて、音(音楽)データが記憶されてもよい。
GPU44およびGPU46は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア34からのグラフィックスコマンド(作画命令)を受け、そのグラフィックスコマンドに従って画像データを生成する。ただし、CPUコア34は、グラフィックスコマンドに加えて、画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU44およびGPU46のそれぞれに与える。
また、GPU44には、第1のビデオRAM(以下、「VRAM」という。)52が接続され、GPU46には、第2のVRAM54が接続される。GPU44およびGPU46が作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンやテクスチャ等のデータ)は、GPU44およびGPU46が、それぞれ、第1のVRAM52および第2のVRAM54にアクセスして取得する。
なお、CPUコア34は、描画に必要な画像データをGPU44およびGPU46を介して第1のVRAM52および第2のVRAM54に書き込む。GPU44はVRAM52にアクセスして描画のための画像データを作成し、GPU46はVRAM54にアクセスして描画のための画像データを作成する。
VRAM52およびVRAM54は、LCDコントローラ50に接続される。LCDコントローラ50はレジスタ56を含み、レジスタ56はたとえば1ビットで構成され、CPUコア34の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ50は、レジスタ56のデータ値が「0」である場合には、GPU44によって作成された画像データをLCD12に出力し、GPU46によって作成された画像データをLCD14に出力する。また、LCDコントローラ50は、レジスタ56のデータ値が「1」である場合には、GPU44によって作成された画像データをLCD14に出力し、GPU46によって作成された画像データをLCD12に出力する。
なお、LCDコントローラ50は、VRAM52およびVRAM54から直接画像データを読み出したり、GPU44およびGPU46を介してVRAM52およびVRAM54から画像データを読み出したりする。
I/F回路48には、操作スイッチ22,タッチパネル24およびスピーカ36a,36bが接続される。ここで、操作スイッチ22は、上述したスイッチ22a,22b,22c,22d,22e,22g,22Lおよび22Rであり、操作スイッチ22が操作されると、対応する操作信号(操作データ)がI/F回路48を介してCPUコア34に入力される。また、タッチパネル24からの座標データがI/F回路48を介してCPUコア34に入力される。さらに、CPUコア34は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM42から読み出し、I/F回路48を介してスピーカ36a,36bから当該音を出力する。
無線通信部58は他のゲーム装置10や通信機器との間で無線によってデータを送受信するための通信手段である。なお、この実施例で示すゲーム装置10が送受信する微弱電波は、電波法による規制のかからない強度に設定されている。CPUコア34がゲームデータやコマンドなどのデータを無線通信部58に与えると、無線通信部58は、相手方へのデータを無線信号に変調してアンテナから送信する。また、無線通信部58は、相手方からの無線信号を同じアンテナで受信してデータに復調し、当該データをCPUコア34に与える。この無線通信部58を介して、ゲーム装置10は、他のゲーム装置10との間でデータを通信して通信ゲームを実行することが可能である。また、ゲーム装置10は、無線通信部58を介してネットワークに接続することができ、ネットワーク上のサーバからプログラムやデータをダウンロードしたり、ネットワークを介して他のゲーム装置10と通信したりすることが可能である。
このゲーム装置10では、LCD14に表示される操作オブジェクトの移動がタッチパネル24の入力に応じて制御される。具体的には、タッチパネル24の入力座標が所定時間ごとに検出され、前回検出された入力座標と今回検出された入力座標とを結ぶ直線と操作オブジェクトとの距離が算出される。この算出された距離に基づいて操作オブジェクトの移動速度が算出されて、操作オブジェクトの移動が制御される。
このような移動制御は、様々なゲーム、アプリケーションにおいて適用することができる。図3にはこの移動制御が適用されたゲームの画面の一例が示される。このゲームは魚飼育ゲームである。LCD12に表示される上画面は、魚100および藻102などが生息する水中の様子を示す。一方、LCD14に表示される下画面は、プレイヤの入力画面であり、この画面には、ボール104および泡106が表示される。ボール104が操作オブジェクトである。プレイヤには、複数種類のボール104のうち同一種類の所定数のボール104を泡106内に移動させることが要求される。たとえば、色が赤、緑、青の3種類のボール104が準備されている。各ボール104には、位置、移動速度、および移動方向などの初期値が与えられており、それぞれの速度および方向で移動している。
なお、ボール104の反発係数は1に設定されており、ボール104同士の衝突の際に考慮される。また、ゲーム画面として表示される固定領域(表示領域)外にボール104が出た場合、当該ボール104は、表示領域外に設けられている円形の壁で正反射する。この際に移動速度が初期速度にリセットされ、当該ボール104は表示領域に戻ってくるようになっている。
プレイヤは、スティック26等によってタッチパネル24上でボール104を撫でるような操作(スティック26等をタッチパネル24上でスライドさせる操作)をすることによって、ボール104の移動に影響を与えて、泡106内にボール104を移動させる。このボール104の移動が、上述のようなボール104と入力座標の直線との距離に基づいて制御されることになる。
なお、このゲームでは、ボール104が泡106に接触すると、当該ボール104は泡106内に吸い込まれる。プレイヤの入力等によって外部から所定の力が働かない限り、ボール104は泡106内に留まる。泡106に同じ色の所定数(この実施例では3個)のボール104を集めることに成功した場合、当該泡106およびボール104が無数の細かい泡に変化して、これらの細かい泡が上画面に移動し、これによって、LCD12のゲーム画面に対して、ボール104の色に対応する所定の効果が与えられることになる。具体的には、赤のボール104の場合、魚100の色が綺麗になったり、魚100の種類が増えたりする。緑のボール104の場合、藻102の色が綺麗になったり、藻102が大きくなったりする。また、青のボール104の場合、水の色が綺麗になる。
この実施例では、入力をボール104の移動に反映するかどうかを、当たり判定によって判定するようにしている。図4には当たり判定領域が示される。この実施例の操作対象であるボール104は円形のオブジェクトであり、当たり判定領域はオブジェクトの半径rに基づいて設定される。さらに、当たり判定領域は、入力方向、すなわち、前回の入力座標から今回の入力座標への方向にも基づいて設定される。プレイヤは、直感的にボール104を移動させたい方向に向けてスティック26等を移動させるので、当たり判定領域を入力方向に基づいて設定することによって、プレイヤによる入力の有効無効を適切に判断することができるとともに、プレイヤによる入力を移動制御に適切に使用することができる。
具体的には、図4に示すように、入力方向に垂直な方向に関しては、半径rに遊びaが持たせられ、つまり、オブジェクトの中心から両方向に距離r+aまでの範囲が有効にされる。遊びaは定数であり、たとえば0.1r程度に設定されてよい。これによって、オブジェクト上を直接撫でるような入力でなく、オブジェクトをかすめるような入力であっても有効にすることができ、操作を行い易くすることができる。なお、他の実施例では、遊びaを設けないようにしてもよい。
一方、入力方向に関しては、この実施例では、オブジェクトの中心から両方向に距離rまでの範囲が有効にされる。したがって、この実施例の当たり判定領域は、図4に示すような矩形領域となる。
この実施例では、前回の入力座標と今回の入力座標とを結ぶ線分が、この当たり判定領域に交わるとき、当該入力は有効にされる。つまり、タッチパネル24によってボール104上を指示するような操作が行われたときのみ、ボール104の移動を操作することができる。この当たり判定領域は、ボール104よりもやや大きい領域であるので、操作性を向上できる。たとえば、ボール104の表示領域外に相当する矩形領域の角の部分に入力が行われていても、当該入力を有効にして、ボール104の移動を制御することができる。
なお、前回の入力座標と今回の入力座標とを結ぶ線分を「入力線分」と呼び、前回の入力座標と今回の入力座標とを結ぶ直線を「入力直線」と呼ぶものとする。
この実施例では、入力線分が当たり判定領域と交わるか否かの判定は、入力方向に垂直な方向の判定と、入力方向の判定とに分けて行われる。
入力方向に垂直な方向の当たり判定を説明するための図解図が図5に示される。この当たり判定は、ボール104と入力直線との距離に基づいて行われる。点f0は前フレームで検出されたタッチ位置(前回の入力座標)を示し、点f1は現フレームで検出されたタッチ位置(今回の入力座標)を示す。Vfは点f0と点f1を結ぶベクトルを示し、tはベクトルVfを正規化した単位ベクトルである。点B0はボール104の基準点としての中心点の位置を示し、Vpは点f0と点B0とを結ぶベクトルを示す。点cは、f0とf1とを結ぶ直線(入力直線)に対して点B0から下ろした垂線の足であり、つまり、入力直線と点B0を通る垂線との交点であり、点cの座標は、次の数1によって算出される。
[数1]
c=f0+t*(Vp・t)
なお、Vp・tは、ベクトルVpとベクトルtの内積を示す。点cは、入力直線上の点のうち、ボール14の中心点B0との最も近い点である。
ボール14の中心点B0と点cとの距離cDが、入力直線とボール14との距離であり、この距離cDを用いて、入力方向に垂直な方向の当たり判定が行われる。つまり、cD<r+aであるか否かが判定される。
また、入力方向の当たり判定を説明するための図解図が図6に示される。この入力方向の当たり判定は、ベクトルVpとベクトルtの内積を示すLの値に基づいて行われる。入力線分が入力方向において判定領域と交わるためには、図6(A)に示すように、点f0は、ボール104の中心点B0から入力方向に距離rまでの位置に存在する必要がある。このf0の限界のとき、内積L(=Vp・t)の値は−rである。また、図6(B)に示すように、点f1は、ボール104の中心点B0から入力方向の逆方向に距離rまでの位置に存在する必要がある。このf1の限界のとき、内積Lの値は、半径rとベクトルVfの大きさとの和(r+|Vf|)である。したがって、図6(C)に示すように、入力方向の当たり判定では、−r<L<r+|Vf|であるか否かが判定される。
図7に示すように、入力線分が判定領域と交わると判定される場合には、ボール104の移動速度が、入力直線とボール104との距離cDに基づいて算出される。現在のフレームにおけるボール104の移動速度がv0であるとき、次のフレームにおけるボール104の移動速度v1は、次の数2に従って算出される。
[数2]
v1=v0+(f1−f0)*k*((r+a−cD)/(r+a))
ここで、kは定数(0<k<1)であり、適宜な値に設定される。
このように、ボール104と入力直線との距離cDが小さいほど、つまり、プレイヤによる入力がボール104の中心を捉えているほど、入力によって移動速度に与える影響が大きくされる。たとえば、ボール104が移動している方向に入力が行われる場合、距離cDが小さいほど、移動速度v1を大きくすることができる。このように、入力直線とボール104との距離に応じて移動速度を変化させることができ、ボール104の移動を多様に制御することができる。また、距離cDが短いほど、つまり、入力線分がボール104の中心に近いほど、入力の影響を大きくすることができるので、移動制御にリアリティを与えることができる。
また、入力直線上のボール104の中心点B0から最も近い点cが算出され、当該最近点cと中心点B0との距離cDに基づいて、ボール104の移動速度が算出される。つまり、入力直線とボール104の中心点B0との最短距離に基づいて、移動速度を算出することができるので、タッチパネル24を用いて指示される位置がボール104をどの程度正確に捉えているかに応じて、ボール104の移動速度を変化させることができる。
また、移動速度v1は、入力座標の差分(f1−f0)にも基づいて算出される。したがって、入力の方向および入力(スライドさせる操作)の素早さや大きさによって、ボール104の移動を多様に制御することができ、移動のリアリティを増すことができる。
図8にはメモリマップのうちプログラム記憶領域200が示されている。なお、図8にはプログラム記憶領域200の一部が示されており、プログラム記憶領域200には、たとえば音出力プログラムのような処理に必要な他のプログラムも記憶される。
記憶領域202にはゲーム処理プログラムが記憶される。ゲーム処理プログラムは、このゲームのメインルーチンを処理するためのプログラムである。記憶領域204には入力座標検出プログラムが記憶される。入力座標検出プログラムはタッチパネル24を用いてプレイヤに指示された画面上の位置を示す入力座標を検出するためのプログラムである。このプログラムによって、所定時間(たとえば1フレーム)ごとに入力座標が検出される。
記憶領域206には速度変更プログラムが記憶される。速度変更プログラムは入力に応じてオブジェクトの移動速度を変更するためのプログラムである。上述のように、入力線分がオブジェクトの当たり判定領域と交わるか否かが判定され、交わる場合には、入力直線とオブジェクトとの距離に基づいて移動速度が算出される。記憶領域208にはオブジェクト移動処理プログラムが記憶される。このプログラムは、移動速度に基づいてオブジェクトの移動を制御するためのプログラムである。記憶領域210には画像表示プログラムが記憶される。このプログラムは、図3に示すようなゲーム画面を生成して表示するためのプログラムである。
記憶領域212には得点処理プログラムが記憶される。得点処理プログラムは、プレイヤの得点を算出するためのプログラムである。この実施例では、泡106に同一種類の所定数のボール104が集められたとき、当該ボール104の色の得点が算出される。そして、当該色の点数に応じて、ゲーム画面に変化が与えられる。具体的には、赤色の点数に基づいて、魚100の色が綺麗にされたり、魚100の種類が増やされたりする。緑色の点数に基づいて、藻102の色が綺麗にされたり、藻102が大きくされたりする。また、青色の点数に基づいて、水の色が綺麗にされる。なお、他の実施例では、単に各色の点数を画面上に表示するようにしてもよい。
図9にはメモリマップのうちデータ記憶領域220が示されている。なお、図9にはデータ記憶領域220の一部が示されており、データ記憶領域220には処理に必要な他のデータも記憶される。
記憶領域222は入力座標記憶領域であり、入力座標検出プログラムによって検出された入力座標が記憶される。具体的には、現在のフレームで検出された位置を示す点f1の座標(今回の入力座標)、および前のフレームで検出された位置を示す点f0の座標(前回の入力座標)などが記憶される。
記憶領域224にはタッチオンフラグが記憶される。タッチオンフラグはタッチパネル24で入力が行われているか否かを示すフラグである。タッチオンフラグは、入力座標が検出されるとき、オンに設定され、入力座標が検出されていないとき、オフに設定される。
記憶領域226はオブジェクトデータ記憶領域であり、ボールオブジェクト104、泡オブジェクト106、魚オブジェクト100、藻オブジェクト102のような各種オブジェクトに関するデータが記憶される。
具体的には、ゲーム空間に存在する複数個のボールオブジェクト104のオブジェクトデータが記憶されている。ボールオブジェクト104のオブジェクトデータは、速度、位置、画像指定、および半径等に関するデータを含む。速度データは当該ボール104の移動速度を示す。移動速度には所定の初期値が設定される。速度変更プログラムに従って、入力に応じて移動速度が算出されたときには、当該算出された速度に更新される。位置データはゲーム空間における当該ボール104の位置を示す。この実施例では、中心点B0の座標が記憶される。オブジェクト移動処理プログラムに従って移動されたときには、移動後の位置に更新される。画像指定データは、当該ボール104の表示に使用する画像データを指定するためのデータである。この実施例では、赤、緑、青色の3種類のボール104が準備されるので、3種類のいずれかを示すデータが記憶される。したがって、この実施例の画像指定データは当該ボール104の属性ないし種類を示す属性データでもある。半径データは当該ボール104の半径rを示す。
また、ゲーム空間に存在する複数個の泡オブジェクト106のオブジェクトデータが記憶されている。泡オブジェクト106のオブジェクトデータは、位置、半径、および所有ボール等に関するデータを含む。位置データはゲーム空間における当該泡106の位置を示す。この実施例では、図3に示すように、泡104は円形のオブジェクトであり、その中心点の座標が記憶される。半径データは当該泡106の半径を示す。所有ボールデータは、当該泡106内に含まれているボール104に関する情報であり、たとえば、泡106内のボール104の個数および識別情報などが記憶される。
なお、魚オブジェクト100および藻オブジェクト102などのような他のオブジェクトについても、図示は省略されるが、オブジェクトデータとして、位置、色、種類などの必要な情報が記憶される。
記憶領域228には得点データが記憶される。得点処理プログラムに従って赤、緑、青の得点が算出されてこの記憶領域228に記憶される。記憶領域230には画像データが記憶される。各種オブジェクトの画像データ、背景の画像データなどが記憶される。
図10にはゲーム装置10の動作の一例が示される。処理を開始すると、ステップS1で、CPUコア34は初期設定を実行する。これによって、各種変数やフラグなどに初期値が設定される。
次に、ステップS3で、CPUコア34は入力座標が検出されたか否かをタッチパネル24からのデータに基づいて判定する。ステップS3で“YES”であれば、ステップS5で、CPUコア34は記憶領域224のタッチオンフラグをオンにする。一方、ステップS3で“NO”であれば、CPUコア34はステップS7で記憶領域224のタッチオンフラグをオフにする。
続くステップS9で、CPUコア34は記憶領域222に入力座標を記憶する。具体的には、記憶領域222の現在のフレームの位置として記憶されている情報が前のフレームの位置として記憶される。さらに、入力座標が検出された場合、入力座標が現在のフレームの位置として記憶される。入力座標が検出されていない場合、入力無しを示す情報が現在のフレームの位置として記憶される。
ステップS11で、CPUコア34は記憶領域224のタッチオンフラグがオンである否かを判断する。“YES”の場合、ステップS13で、CPUコア34は前回の入力座標が存在するか否かを記憶領域222の入力座標データに基づいて判断する。ステップS13で“YES”の場合、プレイヤによって移動のための操作が行われたものとみなして、CPUコア34はステップS15でオブジェクト速度変更処理を実行する。このオブジェクト速度変更処理の動作は、後述される図11に詳細に示される。
ステップS15を終了し、またはステップS11もしくはS13で“NO”の場合には、CPUコア34は、ステップS17でゲーム画像表示処理を実行する。これによって、図3に示すようなゲーム画面がGPU44および46等を用いて生成されて、LCD12および14に表示される。
ステップS19では、CPUコア34はオブジェクト移動処理を実行する。これによって、各オブジェクトが移動される。各ボールオブジェクト104の位置は、記憶領域226に記憶された現在の位置と移動速度とに基づいて算出されて、更新される。プレイヤが移動のための操作をしている場合には、ステップS15のオブジェクト速度変更処理によって変更された移動速度に基づいて、ボールオブジェクト104が移動制御される。したがって、次のフレームのステップS17の処理によって、ボールオブジェクト104がプレイヤの操作を反映した位置に移動されたゲーム画面が表示されることとなる。
続くステップS21では、CPUコア34は泡106内にボール104が存在するか否を判断する。具体的には、各泡106の位置および半径、各ボール104の位置および半径などの情報に基づいて、各泡106と各ボール104との当たり判定が行われる。なお、泡106と当たったボール104の位置は、当該泡106内の位置に変更され、また、当該ボール104の移動速度はゼロに変更される。さらに、当該ボール104と当たった泡106の所有ボールとして、当該ボール104の識別情報が記憶される。
ステップS21で“YES”の場合、CPUコア34はステップS23で泡106内のボール104の属性がすべて同一であるか否かを判断する。具体的には、各泡106の所有ボールとして記憶された識別情報に対応するボール104の画像指定データを参照して、すべて同じ画像指定であるか否かを判断する。
ステップS23で“YES”の場合、CPUコア34はステップS25で当該泡106内のボール104の数が所定個数であるか否かを判断する。具体的には、各泡106の所有ボールデータに記憶された識別情報の数が所定個数であるか否かを判断する。
ステップS25で“YES”の場合、CPUコア34はステップS27で得点加算処理を実行する。具体的には、当該泡106内に集められたボール104の属性(色)ごとの得点を算出し、記憶領域228に記憶する。なお、このフロー図では省略されるが、各オブジェクトには、得点処理に応じた変更が行われる。たとえば、泡106内に集められた所定個数の同一属性のボール104は消滅されるので、それらのオブジェクトデータは記憶領域226から削除される。また、赤色の得点が加算された場合、当該赤色の得点に基づいて、魚オブジェクト100の色が変更されたり、種類が増やされたりする。緑色の得点が加算された場合、当該緑色の得点に基づいて、藻オブジェクト102の色が変更されたり、サイズが変更されたりする。また、青色の得点が加算された場合、当該青色の得点に基づいて、水の色が変更される。
ステップS21、S23もしくはS25で“NO”の場合、またはステップS27を終了すると、CPUコア34はステップS29で、ゲーム終了であるか否かを判断する。ゲーム終了条件は、たとえば、所定の操作スイッチ22の操作によって、または下画面に表示される終了アイコンがタッチされることによって、プレイヤがゲーム終了を指示したことや、ゲーム開始から所定時間経過したこと等であってよい。
ステップS29で“NO”の場合、処理はステップS3に戻る。したがって、次のフレームで、ステップS3からの処理が繰返される。一方、ステップS29で“YES”の場合、このゲーム処理が終了される。
図11には、図10のステップS15のオブジェクト速度変更処理の動作の一例が示される。この処理を開始すると、ステップS41で、CPUコア34は、ボールオブジェクト104を指定するための変数iに初期値1を設定する。この変数iの値に対応するボールオブジェクト104に対して、続くステップS43からS65までの速度変更のための処理が実行される。
ステップS43では、CPUコア34は、前フレームのタッチ位置を示す点f0の座標を入力座標記憶領域222から読み出す。ステップS45では、CPUコア34は現フレームのタッチ位置を示す点f1の座標を入力座標記憶領域222から読み出す。そして、ステップS47で、CPUコア34は前フレームのタッチ位置f0と現フレームのタッチ位置f1とを結ぶベクトルVfを算出する。また、ステップS49で、CPUコア34は、ベクトルVfを正規化してその単位ベクトルtを算出する。
続いて、ステップS51で、CPUコア34は、点f0から現在のボール104の中心B0へのベクトルVpを算出する。なお、ボール104の中心B0は、変数iに対応するボール104の位置であり、記憶領域226から読み出される。
ステップS53では、CPUコア34は点f0と点f1とを結ぶ直線f1−f0と、点B0との最も近い点cを算出する。点cの座標は上述の数1に従って算出される。そして、ステップS55で、CPUコア34は点B0と点cとの距離cDを算出する。また、ステップS57で、CPUコア34はベクトルVpと単位ベクトルtとの内積Lを算出する。
続くステップS59およびS61で、変数iに対応するボール104に設定される当たり判定領域とプレイヤによる入力線分(点f0と点f1を結ぶ線分)との交わりが判定される。具体的には、ステップS59で、CPUコア34は、入力方向に垂直な方向の当たり判定を実行し、つまり、cD<r+aが成立するか否かを判断する。rは変数iに対応するボール104の半径であり、記憶領域226から読み出される。aは遊び領域の長さであり、この実施例では半径rの10%であり、半径rに基づいて算出される。
ステップS59で“YES”の場合、CPUコア34は、ステップS61で入力方向の当たり判定を実行し、つまり、−r<L<r+|Vf|が成立するか否かを判断する。ステップS61で“YES”の場合、入力方向と半径rとに基づいて設定される当たり判定領域と、入力線分とが交わるので、当該入力に応じて当該ボール104の移動速度を変更する。
具体的には、まずステップS63で、CPUコア34は現在のボール104の速度v0を、つまり、変数iに対応するボール104の速度を記憶領域226から読み出す。そして、ステップS65で、CPUコア34は次のフレームの速度v1を算出する。速度v1は、上述の数2に従って算出され、記憶領域226に記憶される。
ステップS65を終了し、または、ステップS59もしくはS61で“NO”の場合、CPUコア34はステップS67で変数iをインクリメントする。これによって、速度変更の対象を別のボール104に変更する。そして、ステップS69で、CPUコア34は変数iが所定値imaxに等しいか否かを判断する。所定値imaxは、ゲーム空間または表示領域内に現在存在しているボール104の総数より1だけ大きい値である。ステップS69で“NO”の場合には、処理はステップS43に戻り、更新された変数iに対応するボール104に対しての、速度変更のための処理を実行する。一方、ステップS69で“YES”の場合、つまり、全てのボール104を対象に、速度変更のための処理を実行し終わった場合には、このオブジェクト速度変更処理を終了し、処理は図10のステップS17に戻る。
この実施例によれば、入力座標を結ぶ直線とボールオブジェクト104との距離cDに基づいて算出される移動速度v1で、ボールオブジェクト104を移動させることができる。このように、ボールオブジェクト104と入力直線との距離cDに応じてボールオブジェクト104の移動速度を変化させることができ、したがって、ボールオブジェクト104の移動を多様に制御することができる。
また、距離cDに基づいて移動速度v1を算出するので、複数のボールオブジェクト104が存在する場合であっても、入力直線と個々のボールオブジェクト104との距離cDに基づいて、各ボールオブジェクト104の移動速度を制御することができる。したがって、ボールオブジェクト104の移動制御のための操作性が良い。
なお、上述の実施例では、図6に示すように、入力方向の当たり判定領域として、ボールオブジェクト104の中心B0から両側に半径rまでの範囲を設定するようにしていた。しかし、他の実施例では、入力方向の当たり判定領域をより広い範囲に設定するようにしてもよい。たとえば、図12に示すように、ボール104の中心B0から両側に2rの範囲を有効領域とするようにしてもよい。この場合、入力方向の当たり判定では、−2r<L<2r+|Vf|が成立するか否かが判断される。プレイヤがボール104を移動させようと入力を行う場合、ボール104の表示領域に比べてより広い範囲をスティック26等でなでる傾向があることが考えられる。したがって、入力方向の当たり判定領域を広く設定することによって、より多くの入力を有効なものにすることができ、操作性をより向上することができる。なお、入力方向の限界を設けないようにすることも考えられ、このような場合、ボールオブジェクト104から離れた位置の入力であっても、入力方向の垂直な方向の判定領域内の入力であれば(つまり、入力直線が判定領域に交われば)、当該入力に応じてボールオブジェクト104の移動を制御することができ、操作がより簡単になる。
また、上述の各実施例では、入力線分または入力直線が当たり判定領域と交わることが条件であった。しかし、他の実施例では、当たり判定を行わず、つまり、入力線分(または入力直線)と判定領域との交わりを条件とせずに、単に入力直線とボールオブジェクト104との距離に基づいて、ボールオブジェクト104の移動速度を算出するようにしてもよい。このような場合の速度算出の一例が図13に示される。図13では点f0と点f1を結ぶ入力線分は、ボールオブジェクト104の表示領域、図4または図12に示すような当たり判定領域などと交わらない位置に存在している。このような場合であっても、ボール104の中心点B0と入力直線との距離cDを算出し、当該距離cDに基づいて、ボール104の移動速度を算出する。ボール104の次フレームの速度v1は、たとえば次の数3に従って算出される。
[数3]
v1=v0+(f1−f0)*k*(1/cD)
なお、定数kは数2における値と異なる値に設定されてよい。
距離cDが小さいほど、つまり、入力がボール104の中心に近い場所で行われるほど、ボール104の移動に、より大きな影響を与えることができる。また、ボール104と入力の交わりが必要とされないので、複数のボール104の移動を一度に操作することも可能になる。各ボール104の速度は、各ボール104と入力直線との各距離に基づいて算出されるので、複数のボール104のそれぞれの移動速度を1度の入力で様々に変化させることができる。このように、ボール104の移動を多様に制御することができる。
また、上述の図13実施例では、入力直線とボール104の中心点B0との距離cDに基づいて、つまり、入力方向に垂直な方向における距離に基づいて、移動速度を算出するようにしていた。しかし、他の実施例では、入力方向における入力線分とボール104の中心点B0との距離をさらに考慮するようにしてもよい。たとえば、中心点B0から入力線分に垂下した線が、入力線分に交わらないとき、入力方向における入力線分と中心点B0との距離にさらに基づいて、移動速度を算出してよい。
具体的には、図14(A)に示すように、点f0が中心点B0よりも入力方向側に存在するとき(つまり、内積L<0のとき)、次のフレームの速度v1は、たとえば数4に従って算出される。一方、点f1が中心点B0よりも入力方向の反対側に存在するとき(つまり、内積L>|Vf|のとき)、次のフレームの速度v1は、たとえば数5に従って算出される。
[数4]
v1=v0+(f1−f0)*k*(1/cD)*(1/|L|)
[数5]
v1=v0+(f1−f0)*k*(1/cD)*(1/(L−|Vf|))
いずれの場合も、入力線分が入力方向において中心点B0から離れるほど、ボール104の移動に与える影響を小さくすることができる。
なお、上述の各実施例では、操作対象は、円形のオブジェクトであったが、オブジェクトの形状は円形に限られず、適宜変更され得る。たとえば、四角形、三角形のような多角形やその他の形状であってよい。入力直線とオブジェクトとの距離の算出の基準点となる位置は、操作オブジェクトの中心点B0に限られず、任意の位置に設定されてよく、たとえば重心であってよい。また、当たり判定領域を規定する距離rの値などは、基準点の位置、オブジェクトの形状およびサイズ等を考慮して適宜に設定される。
また、上述の各実施例では、プレイヤが画面上の任意の位置を指示するためのポインティングデバイスとしてタッチパネル24を用いたが、他の実施例では、ペンタブレット、タッチパッド、コンピュータマウスのような他のポインティングデバイスを用いることも可能である。ただし、画面上の指示位置を示すためのマウスポインタのような指示画像を表示する必要がある。
図1はこの発明の移動制御装置の一実施例を示す図解図である。 図2は図1に示す移動制御装置の電気的な構成を示すブロック図である。 図3はゲーム画面の一例を示す図解図である。 図4はオブジェクトに設定される当たり判定領域の一例を示す図解図である。 図5は入力方向に垂直な方向の当たり判定を説明するための図解図である。 図6は入力方向の当たり判定を説明するための図解図である。 図7は移動速度の算出を説明するための図解図である。 図8はメモリマップのうちプログラム記憶領域を示す図解図である。 図9はメモリマップのうちデータ記憶領域を示す図解図である。 図10は移動制御装置の動作の一例を示すフロー図である。 図11は図10に示すオブジェクト速度変更処理の一例を示すフロー図である。 図12は入力方向の当たり判定の変形例を示す図解図である。 図13は他の実施例の移動速度の算出を説明するための図解図である。 図14は他の実施例の移動速度の算出を説明するための図解図である。
符号の説明
10 …移動制御装置
12,14 …LCD
16,16a,16b …ハウジング
22 …操作スイッチ
24 …タッチパネル
26 …スティック
28 …メモリカード
28a …ROM
28b,42 …RAM
34 …CPUコア
36a,36b …スピーカ
44,46 …GPU
48 …I/F回路
50 …LCDコントローラ
52,54 …VRAM
104 …操作オブジェクト

Claims (6)

  1. 少なくともプレイヤによって操作される操作オブジェクトを画面に表示する表示手段と当該表示手段の画面上の位置を指示するためのポインティングデバイスとを備える移動制御装置のコンピュータにおいて実行される移動制御プログラムであって、
    前記ポインティングデバイスによって指示される前記画面上の位置を示す入力座標を所定時間毎に検出する入力座標検出ステップ、
    前記入力座標検出ステップによって検出された前回の入力座標と今回の入力座標とを結ぶ直線と、前記操作オブジェクトとの距離を算出する距離算出ステップ、
    前記距離算出ステップによって算出された距離に基づいて前記操作オブジェクトの移動速度を算出する移動速度算出ステップ、および
    前記移動速度算出ステップによって算出された移動速度に基づいて前記操作オブジェクトを移動させる移動処理ステップを前記コンピュータに実行させる、移動制御プログラム。
  2. 前記移動速度算出ステップは、前記距離が小さいほど前記移動速度を大きくする、請求項1記載の移動制御プログラム。
  3. 前記直線上の点のうち、前記操作オブジェクトの基準点に最も近い点を算出する最近点算出ステップをさらに前記コンピュータに実行させ、
    前記距離算出ステップは、前記最近点算出ステップによって算出された最近点と、前記操作オブジェクトの基準点との距離を算出する、請求項1記載の移動制御プログラム。
  4. 前記操作オブジェクトは円形のオブジェクトであり、
    前記前回の入力座標から前記今回の入力座標への入力方向と前記円形のオブジェクトの半径とに基づいて設定される領域と、前記前回の入力座標と前記今回の入力座標とを結ぶ入力線分とが交わるか否かを判別する当たり判別ステップを前記コンピュータにさらに実行させ、
    前記移動速度算出ステップは、前記当たり判別ステップによって前記領域と前記入力線分とが交わることが判別されたとき、前記距離に基づいて前記円形のオブジェクトの移動速度を算出する、請求項3記載の移動制御プログラム。
  5. 前記移動速度算出ステップは、前記入力座標検出ステップによって検出された前回の入力座標と今回の入力座標の差分を算出する差分算出ステップを含んでいて、さらに前記差分に基づいて前記操作オブジェクトの移動速度を算出する、請求項1記載の移動制御プログラム。
  6. 少なくともプレイヤによって操作される操作オブジェクトを画面に表示する表示手段と当該表示手段の画面上の位置を指示するためのポインティングデバイスとを備え、前記ポインティングデバイスによる入力によって前記操作オブジェクトの移動を制御する移動制御装置であって、
    前記ポインティングデバイスによって指示される前記画面上の位置を示す入力座標を所定時間毎に検出する入力座標検出手段、
    前記入力座標検出手段によって検出された前回の入力座標と今回の入力座標とを結ぶ直線と、前記操作オブジェクトとの距離を算出する距離算出手段、
    前記距離算出手段によって算出された距離に基づいて前記操作オブジェクトの移動速度を算出する移動速度算出手段、および
    前記移動速度算出手段によって算出された移動速度に基づいて前記操作オブジェクトを移動させる移動処理手段を備える、移動制御装置。
JP2007141392A 2007-05-29 2007-05-29 移動制御プログラムおよび移動制御装置 Active JP5210547B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007141392A JP5210547B2 (ja) 2007-05-29 2007-05-29 移動制御プログラムおよび移動制御装置
US12/076,599 US10016678B2 (en) 2007-05-29 2008-03-20 Storage medium storing movement controlling program and movement controlling apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007141392A JP5210547B2 (ja) 2007-05-29 2007-05-29 移動制御プログラムおよび移動制御装置

Publications (2)

Publication Number Publication Date
JP2008295483A JP2008295483A (ja) 2008-12-11
JP5210547B2 true JP5210547B2 (ja) 2013-06-12

Family

ID=40087597

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007141392A Active JP5210547B2 (ja) 2007-05-29 2007-05-29 移動制御プログラムおよび移動制御装置

Country Status (2)

Country Link
US (1) US10016678B2 (ja)
JP (1) JP5210547B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5210547B2 (ja) * 2007-05-29 2013-06-12 任天堂株式会社 移動制御プログラムおよび移動制御装置
JP5806799B2 (ja) * 2009-01-26 2015-11-10 任天堂株式会社 情報処理装置、情報処理プログラム、情報処理システムおよび情報処理方法
JP5433375B2 (ja) * 2009-10-23 2014-03-05 楽天株式会社 端末装置、機能実行方法、機能実行プログラム及び情報処理システム
JP5377709B2 (ja) * 2012-05-23 2013-12-25 株式会社スクウェア・エニックス 情報処理装置,情報処理方法,及びゲーム装置
US9285981B1 (en) * 2012-07-16 2016-03-15 Wickr Inc. Discouraging screen capture
JP6418299B1 (ja) * 2017-09-15 2018-11-07 株式会社セガゲームス 情報処理装置及びプログラム
TWD192680S (zh) * 2017-12-07 2018-09-01 旺矽科技股份有限公司 顯示螢幕之圖形化使用者介面
JP7266112B2 (ja) * 2019-10-08 2023-04-27 株式会社スクウェア・エニックス ビデオゲーム処理プログラム及びゲームシステム
CN111589114B (zh) * 2020-05-12 2023-03-10 腾讯科技(深圳)有限公司 虚拟对象的选择方法、装置、终端及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515489A (en) * 1991-12-31 1996-05-07 Apple Computer, Inc. Collision detector utilizing collision contours
JP3138423B2 (ja) * 1996-02-20 2001-02-26 株式会社ナムコ シミュレーション装置
JP4030209B2 (ja) * 1998-12-09 2008-01-09 株式会社バンダイナムコゲームス ゲーム装置および情報記憶媒体
US6722987B2 (en) * 2002-04-16 2004-04-20 Microsoft Corporation Processing collisions between digitally represented mobile objects and free form dynamically created electronic ink
JP2005192986A (ja) * 2003-12-10 2005-07-21 Nintendo Co Ltd ゲームプログラムおよびゲーム装置
JP4726469B2 (ja) * 2003-12-10 2011-07-20 任天堂株式会社 ゲームプログラム
JP4420730B2 (ja) * 2004-05-10 2010-02-24 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及び電子機器
JP3770499B1 (ja) * 2004-11-02 2006-04-26 任天堂株式会社 ゲーム装置及びゲームプログラム
JP4555667B2 (ja) 2004-11-29 2010-10-06 任天堂株式会社 ゲームプログラムおよびゲーム装置
JP2006192246A (ja) * 2004-12-13 2006-07-27 Nintendo Co Ltd ゲーム装置およびゲームプログラム
US7619616B2 (en) * 2004-12-21 2009-11-17 Microsoft Corporation Pressure sensitive controls
JP4740644B2 (ja) * 2005-05-11 2011-08-03 任天堂株式会社 画像処理プログラムおよび画像処理装置
JP4819467B2 (ja) * 2005-10-04 2011-11-24 任天堂株式会社 オブジェクト移動制御プログラムおよび情報処理装置
JP5210547B2 (ja) * 2007-05-29 2013-06-12 任天堂株式会社 移動制御プログラムおよび移動制御装置

Also Published As

Publication number Publication date
JP2008295483A (ja) 2008-12-11
US20080297492A1 (en) 2008-12-04
US10016678B2 (en) 2018-07-10

Similar Documents

Publication Publication Date Title
US9427663B2 (en) Touch-controlled game character motion providing dynamically-positioned virtual control pad
US7762893B2 (en) Storage medium having game program stored thereon and game apparatus
US8146018B2 (en) Gesture-based control of multiple game characters and other animated objects
JP5210547B2 (ja) 移動制御プログラムおよび移動制御装置
JP4457051B2 (ja) オブジェクト移動制御プログラムおよび情報処理装置
US8723867B2 (en) Game apparatus, storage medium storing a game program, and game controlling method
US8207970B2 (en) Storage medium storing object control program and information processing apparatus
US7922588B2 (en) Storage medium having game program stored thereon and game apparatus
US7775867B2 (en) Storage medium storing a game program, game apparatus, and game control method
US20050176486A1 (en) Game apparatus and storage medium having game program stored therein
US7927215B2 (en) Storage medium storing a game program, game apparatus and game controlling method
US20100304871A1 (en) Game program and game apparatus
EP1854520B1 (en) Game program and game apparatus
JP4913178B2 (ja) オブジェクト移動制御プログラムおよび情報処理装置
JP4287764B2 (ja) 競争ゲーム装置および競争ゲームプログラム
JP6301813B2 (ja) ゲームプログラムおよびゲーム装置
JP4782167B2 (ja) 競争ゲーム装置および競争ゲームプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100506

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130225

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160301

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5210547

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160301

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250