説明

画像処理装置、画像処理プログラム、ゲーム装置およびゲームプログラム

【課題】簡単かつ素早い操作でオブジェクトの回転を行うことが可能な画像処理プログラム、ゲームプログラム、画像処理装置およびゲーム装置を提供すること。
【解決手段】ポインティングデバイスを用いて、画面に表示される操作対象オブジェクトを操作するに際して、ポインティングデバイスで指定される画面上の位置を示す第1の入力座標と、当該第1の入力座標とは不連続に検出され且つ当該第1の入力座標よりも前に検出された第2の入力座標を検出する。当該第1の入力座標と第2の入力座標とを結ぶ方向を算出して、その方向に応じて回転方向を決定する。そして、当該回転方向に操作対象オブジェクトを回転させる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、画像処理装置、画像処理プログラム、ゲーム装置およびゲームプログラムに関し、より特定的には、ポインティングデバイスを操作することによって画面に表示されているオブジェクトの表示状態を制御する画像処理装置、画像処理プログラム、ゲーム装置およびゲームプログラムに関する。
【背景技術】
【0002】
従来、操作パネルに直接触れることにより(タッチ入力操作)、オブジェクトを操作する技術として、タッチパネルに指又はペン等を接触させたまま移動(ドラッグ)操作したときの移動方向に応じてオブジェクトを回転させること技術がある(例えば、特許文献1および2)。具体的には、右方向にドラッグ操作するとオブジェクトを右方向へ回転し、左方向にドラッグ操作するとオブジェクトを左方向へ回転させる。
【特許文献1】特開平5−100809号公報
【特許文献2】特開平9−134269号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
上述したような技術では、ドラッグ操作によってオブジェクトを回転させるものであるが、ある程度連続して座標入力を行う必要があるので、操作手数が多くなるとともに操作に要する時間もかかり、簡単でかつ素早い操作によってオブジェクトを回転させることが難しいという問題がある。また、オブジェクトの回転をドラッグ操作によって実現しているので、オブジェクトの回転と移動とを独立して操作することが難しいという問題がある。すなわち、オブジェクトの移動はドラッグ操作によって行われるのが一般的なので、上述の手法を用いてオブジェクトの移動も行おうとすると、例えば、ドラッグ操作によってオブジェクトの移動と回転を連動して行わざるを得ない。
【0004】
それゆえに、本発明の目的は、簡単かつ素早い操作でオブジェクトの回転を行うことが可能な画像処理プログラム、ゲームプログラム、画像処理装置およびゲーム装置を提供することである。また、本発明の他の目的は、オブジェクトの回転操作と移動操作とを独立しておこなうことが可能な画像処理プログラム、ゲームプログラム、画像処理装置およびゲーム装置を提供することである。
【課題を解決するための手段】
【0005】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0006】
第1の発明は、表示装置(12)とポインティングデバイス(16、17)とを備える画像処理装置のコンピュータに実行させる画像処理プログラムであって、入力座標検出ステップ(S5)と、方向算出ステップ(S6、S28、S29)と、回転ステップ(S31)とをコンピュータに実行させる画像処理プログラムである。表示装置は、仮想空間内の操作対象オブジェクトを画面に表示する。ポインティングデバイスは、画面上の位置を指定する。入力座標検出ステップは、ポインティングデバイスによって指定される画面上の位置を示す入力座標を所定の単位時間毎に検出する。方向算出ステップは、入力座標検出ステップにおいて検出された第1の入力座標に関して、当該第1の入力座標とは不連続に検出され且つ当該第1の入力座標よりも前に検出された第2の入力座標が存在するか否かを判定し、存在する場合、当該第1の入力座標と当該第2の入力座標とに基づいて変化方向を算出する。回転ステップは、算出された方向に応じた回転方向に、操作対象オブジェクトを回転させる。なお、ここでいうポインティングデバイスには、タッチパネル等の絶対座標入力が可能なデバイスとマウス等の相対座標入力が可能なデバイスとの双方が含まれる。
【0007】
第2の発明は、第1の発明において、回転ステップにおいては、第1あるいは第2の入力座標の何れかが操作対象オブジェクトの占める画面上の領域内に含まれているとき、当該第1あるいは第2の入力座標が含まれている操作対象オブジェクトを回転させる。
【0008】
第3の発明は、第1の発明において、画像処理プログラムは、第2の入力座標が検出されてから所定時間内に第1の入力座標が検出されたかを判定する時間判定ステップ(S22、S29)を更にコンピュータに実行させ、回転ステップは、時間判定ステップによって第1の入力座標が所定時間内に検出されたと判定されたときにのみ、回転方向に操作対象オブジェクトを回転させる。
【0009】
第4の発明は、第1の発明において、画像処理プログラムは、第2の入力座標から第1の入力座標までの距離を算出する距離算出ステップ(S28)を更に実行する。また、回転ステップは、操作対象オブジェクトを回転させる角度を算出された距離に応じて変化させる。
【0010】
第5の発明は、第1の発明において、画像処理プログラムは、重複チェックステップ(S49)と回転キャンセルステップ(S49、S17)とを更にコンピュータに実行させる。重複チェックステップは、回転ステップによって回転させた操作対象オブジェクトと他の操作対象オブジェクトとの画面上の表示位置が重複するか否かを判定する。回転キャンセルステップは、重複チェックステップにおいて重複していると判定されたときは、操作対象オブジェクトが回転する動作を表示した後、回転する前の位置に戻る動作を画面上に表示する。
【0011】
第6の発明は、第1の発明において、画像処理プログラムは、連続方向算出ステップ(S28)と移動ステップ(S30)とを更にコンピュータに実行させる。連続方向算出ステップは、入力座標検出ステップによって連続して検出された少なくとも2つ以上の入力座標に基づいて変化方向を算出する。移動ステップは、連続方向算出ステップによって算出された方向に応じた移動方向に操作対象オブジェクトを移動させる。
【0012】
第7の発明は、第6の発明において、画像処理プログラムは、入力座標検出ステップによって連続して検出された2つ以上の入力座標の何れかが操作対象オブジェクトの占める画面上の領域内に含まれているかを判定する指示判定ステップ(S10、S26)を更に含む。また、移動ステップにおいては、指示判定ステップにおいて何れかの入力座標が操作対象オブジェクトの占める画面上の領域内に含まれていると判定されたとき、当該入力座標が含まれている操作対象オブジェクトを移動させる。
【0013】
第8の発明は、第7の発明において、指示判定ステップにおいては、連続して検出された2つ以上の入力座標のうち最初に検出された入力座標が操作対象オブジェクトの占める画面上の領域内に含まれているかを判定し、移動ステップにおいては、指示判定ステップによって判定された最初に検出された入力座標が含まれている操作対象オブジェクトを移動させる。
【0014】
第9の発明は、仮想空間内の操作対象オブジェクトを画面に表示する表示装置と、画面上の位置を指定するためのポインティングデバイスとを備えるゲーム装置のコンピュータに実行させるゲームプログラムであって、入力座標検出ステップ(S5)と、判定ステップ(S6、S29)と、方向算出ステップ(S28)と、回転ステップ(S31)と、連続方向算出ステップ(S28)と、移動ステップ(S30)とを実行させるゲームプログラムである。入力座標検出ステップは、前記ポインティングデバイスによって指定される画面上の位置を示す入力座標を所定の単位時間毎に検出する。判定ステップは、入力座標検出ステップにおいて検出された第1の入力座標に関して、当該第1の入力座標とは不連続に検出され且つ当該第1の入力座標よりも前に検出された第2の入力座標が存在するか否か、および、当該第1の入力座標とは連続して検出され且つ当該第1の入力座標よりも前に検出された入力座標の少なくとも2つ以上の入力座標が存在するか否かを判定する。方向算出ステップは、判定ステップにおいて第2の入力座標が存在すると判定されたときは、第2の入力座標と第1の入力座標とに基づいて変化方向を算出する。回転ステップは、算出された方向に応じた回転方向に、操作対象オブジェクトを回転させる。連続方向算出ステップは、判定ステップにおいて連続して検出された2つ以上の入力座標が存在すると判定されたときは、入力座標検出ステップによって連続して検出された少なくとも2つ以上の入力座標を結ぶ方向を算出する。移動ステップは、連続方向算出ステップによって算出された方向に応じた移動方向に操作対象オブジェクトを移動させる。
【0015】
第10の発明は、表示装置(12)とポインティングデバイス(16、17)とを備える画像処理装置であって、入力座標検出部(16、31)と、方向算出部(31)と、回転部(31)とを備える。表示装置は、仮想空間内の操作対象オブジェクトを画面に表示する。ポインティングデバイスは、画面上の位置を指定する。入力座標検出部は、ポインティングデバイスによって指定される画面上の位置を示す入力座標を所定の単位時間毎に検出する。方向算出部は、入力座標検出部において検出された第1の入力座標に関して、当該第1の入力座標とは不連続に検出され且つ当該第1の入力座標よりも前に検出された第2の入力座標が存在するか否かを判定し、存在する場合、当該第1の入力座標と当該第2の入力座標とに基づいて変化方向を算出する。回転部は、算出された方向に応じた回転方向に、操作対象オブジェクトを回転させる。
【0016】
第11の発明は、仮想空間内の操作対象オブジェクトを画面に表示する表示装置と、画面上の位置を指定するためのポインティングデバイスとを備えるゲーム装置であって、入力座標検出部(16、31)と、判定部(31)と、方向算出部(31)と、回転部(31)と、連続方向算出ステップ(31)と、移動ステップ(31)とを備える。入力座標検出部は、ポインティングデバイスによって指定される画面上の位置を示す入力座標を所定の単位時間毎に検出する。判定部は、入力座標検出部において検出された第1の入力座標に関して、当該第1の入力座標とは不連続に検出され且つ当該第1の入力座標よりも前に検出された第2の入力座標が存在するか否か、および、当該第1の入力座標とは連続して検出され且つ当該第1の入力座標よりも前に検出された入力座標の少なくとも2つ以上の入力座標が存在するか否かを判定する。方向算出部は、判定部において第2の入力座標が存在すると判定されたときは、第2の入力座標と第1の入力座標とに基づいて変化方向を算出する。回転部は、算出された方向に応じた回転方向に、操作対象オブジェクトを回転させる。連続方向算出部は、判定部において連続して検出された2つ以上の入力座標が存在すると判定されたときは、入力座標検出部によって連続して検出された少なくとも2つ以上の入力座標を結ぶ方向を算出する。移動部は、連続方向算出部によって算出された方向に応じた移動方向に操作対象オブジェクトを移動させる。
【発明の効果】
【0017】
上記第1の発明によれば、簡単でかつ素早い操作で操作対象オブジェクトの回転を行うことが可能となる。
【0018】
上記第2の発明によれば、直感的で且つ簡単な操作で、操作対象オブジェクトの回転を行うことが可能となる。
【0019】
上記第3の発明によれば、所定時間内に第1及び第2の入力座標が取得できたときのみ操作対象オブジェクトを回転させるため、素早い操作をユーザに要求することができる。これにより、ゆっくりとした入力によるユーザの意図しない回転操作を防ぐことが可能となる。
【0020】
上記第4の発明によれば、第1の入力座標から第2の入力座標までの距離に応じて操作対象オブジェクトを回転させる量を変えることができる。これにより、ユーザは直感的に回転量を調節することができ、単純な操作ながら奥の深い回転操作を行うことができる。
【0021】
上記第5の発明によれば、操作対象オブジェクトが一度回転しても、回転後の状態で他の操作対象オブジェクトとぶつかるようなときは、元の状態に戻すような表示を行う。そのため、操作対象オブジェクトが回転できないことをユーザに理解しやすく表現することができる。
【0022】
上記第6の発明によれば、簡単でかつ素早い操作で、操作対象オブジェクトの回転操作と移動操作とを独立して行うことが可能となる。
【0023】
上記第7乃至第8の発明によれば、直感的な操作で操作対象オブジェクトを移動することが可能となる。
【0024】
上記第9の発明によれば、上記第1の発明および第6の発明と同様の効果を得ることができる。
【0025】
上記第10の発明によれば、上記第1の発明と同様の効果を得ることができる。
【0026】
上記第11の発明によれば、上記第9の発明と同様の効果を得ることができる。
【発明を実施するための最良の形態】
【0027】
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
【0028】
(第1の実施形態)
図1は、この発明の一実施例である携帯ゲーム装置10の外観図である。図1において、この実施例の携帯ゲーム装置10は、2つの液晶表示器(LCD)11及び12を所定の配置位置となるように、ハウジング13に収納して構成される。具体的には、第1の液晶表示器(以下、「LCD」という)11と第2のLCD12を上下に配置して収納する場合は、ハウジング13が上部ハウジング13aと下部ハウジング13bから構成され、上部ハウジング13aが下部ハウジング13bの上辺の一部で回動自在に支持される。上部ハウジング13aは、第1のLCD11の平面形状よりも少し大きな平面形状を有し、一方主面からLCD11の表示面を露出するように開口部が形成される。下部ハウジング13bは、その平面形状が上部ハウジング13aよりも横長に選ばれ、横方向の略中央部にLCD12の表示面を露出する開口部が形成され、LCD12を挟む何れか一方に音抜き孔14aが形成されるとともに、LCD12を挟む左右に操作スイッチ部15が装着される。
【0029】
操作スイッチ部15は、LCD12の左横における下部ハウジング13bの一方主面に装着される方向指示スイッチ15a、スタートスイッチ15b、セレクトスイッチ15cと、LCD12の右横における下部ハウジング13bの一方主面に装着される装着される動作スイッチ15d、15eを含む。方向指示スイッチ15aは、プレイヤによって操作可能なプレイヤオブジェクト(又はプレイヤキャラクタ)の移動方向を指示したり、カーソルの移動方向の指示等に用いられる。動作スイッチ15d、15eは、方向指示以外の動作、例えばアクションゲームにおいてはジャンプ、パンチ、武器を動かす等の指示、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいてはアイテムの取得,武器又はコマンドの選択決定等の指示入力に使用される。また、必要に応じて、動作スイッチをさらに追加したり、下部ハウジング13bにおける操作スイッチ15の装着領域の上部面(上部側面)に側面スイッチ15L、15Rを設けてもよい。
【0030】
LCD12の上面には、タッチパネル16が装着される。タッチパネル16は、例えば、抵抗膜方式、光学式(赤外線方式),静電容量結合式の何れの種類でもよく、その上面をスティック17(又は指でも可)で押圧操作又は移動操作若しくは撫でる操作をしたとき、スティック17の座標位置を検出して座標データを出力するものである。
【0031】
上部ハウジング13aの側面近傍には、必要に応じてタッチパネル16を操作するスティック17を収納するための収納孔14bが形成される。この収納孔14bには、スティック17が収納される。下部ハウジング13bの側面の一部には、ゲームプログラムを記憶したメモリ(例えば、ROM)を内蔵したメモリカード18を着脱自在に装着するためのカートリッジ挿入部(図示せず)が形成される。カートリッジ挿入部の内部には、メモリカード18と電気的に接続するためのコネクタ(図示せず)が内蔵される。さらに、下部ハウジング13b(又は上部ハウジング13aでも可)には、CPU等の各種電子部品を実装した電子回路基板(後述の図2に示す30)が収納される。なお、ゲームプログラムを記憶する情報記憶媒体としては、ROM又はフラッシュメモリのような不揮発性半導体メモリに限らず、CD−ROMやDVD若しくはそれに類する光学式ディスク状記憶媒体でもよい。
【0032】
図2は、携帯ゲーム装置10のブロック図である。図2において、ハウジング13に収納される電子回路基板30には、CPUコア31が実装される。CPUコア31には、バス32を介して、コネクタ33が接続されるととともに、入出力インターフェース(I/F)回路34、第1のグラフィック処理ユニット(第1GPU)35、第2のグラフィック処理ユニット(第2GPU)36、RAM37およびLCDコントローラ40が接続される。コネクタ33には、メモリカード18が着脱自在に接続される。メモリカード18は、ゲームプログラムを格納するための記憶媒体であり、具体的には、ゲームプログラムを記憶するROM180とバックアップデータを書き換え可能に記憶するRAM185とを搭載する。メモリカード18のROM180に記憶されたゲームプログラムはRAM37にロードされ、RAM37にロードされたゲームプログラムがCPUコア31によって実行される。CPUコア31がゲームプログラムを実行して得られる一時的なデータや画像を生成するためのデータがRAM37に記憶される。I/F回路34には、操作スイッチ部15及びタッチパネル16が接続されるとともに、スピーカ19が接続される。スピーカ19は、音抜き孔14aの内側位置に配置される。
【0033】
第1GPU35には、第1のビデオRAM(以下「VRAM」)38が接続され、第2GPU36には、第2のビデオRAM(以下「VRAM」)39が接続される。第1GPU35は、CPUコア31からの指示に応じて、RAM37に記憶される画像を生成するためのデータに基づいて第1のゲーム画像を生成し、第1VRAM38に描画する。第2GPU36は、CPUコア31からの指示に応じて、RAM37に記憶される画像を生成するためのデータに基づいて第2のゲーム画像を生成し、第2VRAM39に描画する。第1VRAM38および第2VRAM39はLCDコントローラ40に接続される。
【0034】
LCDコントローラ40はレジスタ41を含む。レジスタ41はCPUコア31からの指示に応じて0または1の値を記憶する。LCDコントローラ40は、レジスタ41の値が0の場合は、第1VRAM38に描画されたゲーム画像をLCD11に出力し、第2VRAM39に描画されたゲーム画像をLCD12に出力する。また、レジスタ41の値が1の場合は、第1VRAM38に描画されたゲーム画像をLCD12に出力し、第2VRAM39に描画されたゲーム画像をLCD11に出力する。
【0035】
I/F回路34は、操作スイッチ部15、タッチパネル16、およびスピーカ19などの外部入出力装置とCPUコア31との間のデータの受け渡しを行う回路である。タッチパネル16(タッチパネル用のデバイスドライバを含む)は、スティック17によって入力(指示)された位置に対応する位置座標のデータを出力するものである。なお、本実施例では、表示画面の解像度は256dot×192dotであり、タッチパネル16の検出精度も表示画面に対応した256dot×192dotとして説明するが、タッチパネル16の検出精度は表示画面の解像度よりも低いものであってもよいし、高いものであってもよい。
【0036】
次に、図3を用いて、本実施形態が想定しているゲームの概要について説明する。図3は、本実施形態が想定するゲームの画面の一例である。図3において、LCD12には、正方形のオブジェクト(以下、正方形オブジェクト)が複数表示されている。この正方形オブジェクトは、4個で1組の操作対象オブジェクト51(以下、ブロック51と呼ぶ)を構成する。ブロック51の形状には7種類あり、それぞれが不作為に積み上げられた状態でLCD12に表示されている。本実施形態が想定するゲームでは、後述するような操作で上記各ブロック51を移動あるいは回転させることで上記正方形オブジェクトを横一列に揃える。正方形オブジェクトが横一列に揃えば、その列は消滅する。このとき、消した列の上に乗っていたブロック51が下に落ちてくる。このように、ブロック51を移動・回転させることで正方形オブジェクトを横一列に揃えて消滅させていき、最終的には、上方にある所定の正方形オブジェクト(最初はLCD12に表示されておらず、正方形オブジェクトを消していくことで、段々と降りてくる)を消滅させればクリアとなるゲームである。
【0037】
次に、図4〜図7を用いて、本実施形態が想定するゲームにおけるブロックの操作について説明する。本操作の種類には大きく2種類あり、1つはブロックの左右方向への移動操作であり、もう1つは、ブロックの回転操作である。まず、ブロックの移動は、スティック17等を用いて、移動させたいブロックをドラッグ操作(入力座標が連続して検出される操作)することで移動することができる。図4を用いて説明すると、まず、移動させたいブロック上の任意の位置をスティック17で押圧する(タップ操作)。そして、スティック17をタッチパネル16から離さずに、そのまま右方向に移動させることで、図5に示すように、ブロック51を右方向に移動することができる。なお、ブロック51を左方向に移動させたいときは、スティック17をタッチパネル16に押圧したまま左方向に移動させればよい。
【0038】
次に、ブロック51の回転操作について説明する。本ゲームでは、ブロックの回転は、ダブルタップ操作(タップを続けて2回行なう操作。すなわち、入力座標が不連続に検出される操作。マウスにおけるダブルクリックに相当する)で行うことができる。例えば、あるブロックを右方向に回転させたい場合、まず、上述の図4に示したように、回転させたいブロック51上の任意の位置(図4ではブロックの左下)をスティック17で押圧する。次に、一旦スティック17を離し、所定の時間内にスティック17で再度同じブロックを押圧する。このとき、当該ブロックを回転させたい方向に合わせて、押圧する位置を移動させる。図6を例に説明すると、ブロックを右方向に回転させるために、最初に押圧した点よりも右側の位置を押圧する(図6)。すると、当該ブロックが右に90度回転する(図7)。このように、ダブルタップ操作における1度目の押圧位置と2度目の押圧位置との位置関係に応じてブロック51を回転させる。換言すると、ダブルタップ操作における2度目のタップ位置が1度目のタップ位置よりも右側であれば、ブロックを右に回転させることができ、2度目のタップ位置が1度目のタップ位置よりも左側であれば、ブロックを左に回転させることができる。なお、本ゲームにおいては、回転方向については、右か左かの何れかだけであるものとする。
【0039】
次に、本実施形態で用いられる各種データについて説明する。図8は、RAM37のメモリ空間を図解的に示したメモリマップである。図8に示すように、RAM37は、記憶領域として、ゲームプログラム記憶領域21と、画像データ記憶領域22と、第1座標記憶領域23と、第2座標記憶領域24と、ブロックテーブル記憶領域25と、入力フラグ記憶領域26と、入力継続フレーム数記憶領域27と、ダブルタップ継続フレーム数記憶領域28と、指示ブロックID記憶領域29と、その他の記憶領域30とを含む。
【0040】
ゲームプログラム記憶領域21には、ゲーム等の画像処理を行うために必要なプログラムや、ゲーム内容に応じたゲームデータ等が格納される。より具体的には、ゲームプログラム記憶領域21には、CPUコア31の動作プログラム(後述の図10に示すフローチャートに対応する動作を実行させるためのプログラム)である、プログラム21a〜21fが格納される。
【0041】
入力座標取得プログラム21aは、ユーザが押圧したタッチパネル16上の座標に対応するLCD12上の座標値を取得するプログラムである。
【0042】
操作対象オブジェクト判定プログラム21bは、上記入力座標取得プログラム21aによって取得された入力座標値が、LCD12に表示されているブロック51の何れかの領域内に含まれているか否かを判定するためのプログラムである。換言すれば、ユーザがブロック51をスティック17等で指示したか否かを判定する。
【0043】
操作種別判定プログラム21cは、ユーザによる入力操作が、ドラッグ操作であるかダブルタップ操作であるのか等の、入力操作の種別を判定するためのプログラムである。
【0044】
変化方向判定プログラム21dは、上記操作種別がダブルタップ操作であるときに、当該ダブルタップ操作における1度目の入力座標と2度目の入力座標との位置関係を判定するためのプログラムである。
【0045】
オブジェクト回転プログラム21eは、上記変化方向判定プログラム21dによって判定された位置関係に応じて、ブロック51を回転させるためのプログラムである。
【0046】
その他のプログラム21fは、効果音や音楽を発生するためのサウンド制御処理やゲームオーバーになった場合の処理(例えば、ゲームオーバー状態の検出処理や、ゲームオーバーに達したときにそれまでのゲーム状態のバックアップデータを保存する処理)のためのプログラムである。
【0047】
画像データ記憶領域22には、LCD11および12に表示される画像のデータ22a〜bが格納される。操作対象オブジェクト画像22aは、LCD12に表示され、プレイヤの操作対象となるブロック51の画像データである。また、その他のオブジェクト画像22bは、複数の背景(または静止)オブジェクト等の画像データである。
【0048】
第1座標記憶領域23には、上記ダブルタップ操作における1度目の入力座標が格納される。第2座標記憶領域24には、上記ダブルタップ操作における2度目の入力座標値が格納される。
【0049】
ブロックテーブル記憶領域25には、LCD12に表示される各ブロック51が当該LCD12上に占める領域の座標範囲と、各ブロックを識別するため設けられているブロックIDとを関連付けたブロックテーブルを記憶するための領域である。図9は、当該ブロックテーブルの一例を模式的に示す図である。図9は、図3に示したゲーム画面に対応している。すなわち、LCD12の領域を上記正方形オブジェクトと同じ大きさのマス目で方眼紙状に分割し、どのブロックがどのマスに表示されているかを識別するために、各マス目毎に上記ブロックIDを関連付けている。例えば、ID4のブロックは、4つの正方形オブジェクトが横一列に並んだ構成とされ、LCD12の右下端(図9に示すブロックテーブルにおいて最下段のマスの右端から4つ分のマス)に表示されている。なお、ブロックIDが0であるマス目は、ブロックがそこには存在しないことを示す。
【0050】
入力フラグ記憶領域26には、タッチパネル16がユーザに押圧されている状態か否かを区別するためのフラグである入力フラグが格納される。ここでは、入力フラグがオフであれば、タッチパネル16は押圧されておらず、入力フラグがオンであれば、タッチパネル16が押圧されている状態を示すものとする。
【0051】
入力継続フレーム数記憶領域27には、タッチパネル16への押圧状態が継続している時間を示すための入力継続フレーム数が記憶される。例えば、1フレームを1/30秒とする場合、1秒間タッチパネル16を押圧し続けた場合は、入力継続フレーム数は30となる。
【0052】
ダブルタップ継続フレーム数記憶領域28には、ダブルタップ操作における、1度目の入力完了から2度目の入力開始までの間の時間を示すためのフレーム数が記憶される。
【0053】
指示ブロックID記憶領域29には、ユーザが押圧したブロック、すなわち、ユーザが操作しようとしているブロックのブロックIDを示す指示ブロックIDが格納される。
【0054】
その他の記憶領域30には、プログラム実行中のデータや上記入力フラグ以外の各種フラグ等が格納される。
【0055】
次に、図10〜図13を参照して、携帯ゲーム装置10によって実行されるゲーム処理について説明する。なお、図10〜図12は携帯ゲーム装置10によって実行されるゲーム処理の全体処理を示すフローチャートである。また、図13は、図10のブロック回転処理の詳細な動作を示すサブルーチンである。なお、図10に示すゲーム処理のスキャンタイムは1フレームであるとする。
【0056】
図10において、まず、ゲーム開始に伴う準備処理が行われる(ステップS1)。このステップS1の処理をより具体的に説明すると、まず、CPUコア31は、画面に表示すべきブロックを生成し、一意となるような上記ブロックIDを各ブロックに割り振る。次に、当該ブロック51を不作為に画面表示領域に配置し、画面上の領域とブロックIDとを関連付けることで、上述したようなブロックテーブル(図9参照)を作る。続いて、LCD12の画像描画処理が行われる。この処理は、操作対象オブジェクトであるブロック51と、その他のオブジェクト(例えば背景画像)をRAM37の画像データ記憶領域22から読出し、LCD12に表示することによって行われる。また、このとき、各種フラグを初期化する。当該準備処理の結果、上述の図3に示すようにLCD12に不作為に積み上げられているブロック51が表示される。
【0057】
次に、後述するようなブロックの回転をキャンセルする表示を行うか否かを示すためのフラグである戻りフラグがオンか否かが判定される(ステップS2)。当該判定の結果、オフであれば(ステップS2でNO)、処理を次のステップS3へ進める。一方、オンのときは(ステップS2でYES)、回転キャンセル表示処理を行う(ステップS17)。ステップS17の処理については、後述する。
【0058】
次に、ユーザによるタッチパネル16への入力があったか否かが判定される(ステップS3)。その結果、タッチパネル16への入力がないときは(ステップS3でNO)、入力フラグをオフにする(図11のステップS18)。次に、第1座標記憶領域23に座標値が記憶されているか否かが判定される(ステップS19)。すなわち、ダブルタップ操作の一度目のタップ操作が行われているか否かを判定する。換言すれば、当該第1座標記憶領域23に何らかの座標が記憶されていれば、ダブルタップ操作中(一度目のタップ操作がされた後の状態)であり、何も記憶されていないときは、ダブルタップ操作中ではない(タッチパネル16への入力操作が全くない状態、または一度目のタップ操作完了から40フレーム以上経過した状態)ことになる。つまり、過去にタッチパネル16への入力によって検出された入力座標が存在するか否かを判定することになる。当該判定の結果、何も記憶されていないときは(ステップS19でNO)、そのまま処理を、後述のステップS14へ進める。一方、何らかの座標が記憶されていれば(ステップS19でYES)、上記入力継続フレーム数が10以上か否かを判定する(ステップS20)。これは、ダブルタップ操作として有効な入力操作(一度目のタップ操作)であるか否かを判定するためのものである。すなわち、タッチパネル16を10フレーム以上押圧し続けている場合等、入力継続フレーム数が10以上であれば(ステップS20でYES)、ダブルタップ操作として有効な入力操作ではないと判定し、10フレーム以上でないときは(ステップS20でNO)、ダブルタップ操作として有効な一度目の入力が完了したと判定するものである。そして、入力継続フレーム数が10以上ではないときは、ダブルタップ継続フレーム数に1を加算する(ステップS21)。続いて、当該ダブルタップ継続フレーム数が40フレーム以上であるか否かを判定する(ステップS22)。これは、ダブルタップ操作が成立するか否かを判定するためのものである。すなわち、本実施形態では、例え2回タップ操作したとしても、1度目のタップ操作の入力完了から2度目のタップ操作の入力開始までの期間が40フレーム以内でないときは、ダブルタップ操作とは認識しない。当該判定の結果、40フレーム以上であれば(ステップS22でYES)、ダブルタップ操作は不成立として、第1座標記憶領域23をクリアする(ステップS23)。続いて、入力継続フレーム数をリセット、すなわち0にする(ステップS24)。一方、40フレーム以上でなければ(ステップS22でNO)、そのまま処理をステップS24に進める。
【0059】
図10に戻り、ステップS3の判定の結果、タッチパネル16への入力があれば(ステップS3でYES)、入力が継続している時間を測るための、入力時間カウント処理が行われる(ステップS4)。具体的には、上記入力継続フレーム数に1が加算される。
【0060】
次に、入力座標取得処理が行われる(ステップS5)。本処理では、タッチパネル16で押圧された点に対応するLCD12上の座標値(以下、入力座標値と呼ぶ)が取得される。
【0061】
次に、第1座標記憶領域23に座標値が記憶されているか否かが判定される(ステップS6)。本ステップにおける処理は、上述したステップS19と同様である。当該判定の結果、第1座標記憶領域23に座標値が記憶されていないときは(ステップS6でNO)、続いて、入力フラグがオフか否かが判定される(ステップS7)。すなわち、新たにタッチパネルへの入力があったのか、タッチパネル16への入力が継続している状態(タッチパネル16を押圧し続けている状態)であるのかが判定される。入力フラグがオンであれば(ステップS7でNO)、処理を後述するステップS13に進める。
【0062】
一方、入力フラグがオフであれば(ステップS7でYES)、新たにタッチパネル16への入力があったということであるため、入力フラグがオンに設定される(ステップS8)。
【0063】
次に、上記入力座標値が、LCD12に表示されている何れかのブロック51の領域に含まれるか否かが判定される(ステップS10)。具体的には、上記ブロックテーブル(図9参照)を参照し、入力座標値に対応する画面領域上の座標値のブロックIDが0か否かが判定される。その結果、0であれば(ステップS10でNO)、何れのブロック51をも押圧していないため、そのまま処理をステップS13に進める。一方、0でなければ(ステップS10でYES)、入力座標値に対応する画面領域上の座標値のブロックIDが指示ブロックID27に格納される(ステップS11)。続いて、上記入力座標値が第1座標記憶領域23に格納される(ステップS12)。
【0064】
ステップS12の処理の次に、上記ダブルタップ継続フレーム数がリセットされる(ステップS13)。すなわち、ダブルタップ継続フレーム数が0に設定される。続いて、ステップS14において、消去判定処理が行われる。本処理では、横一列に揃ったブロック51(正方形オブジェクト)の有無の判定、横一列に揃ったブロック51の正方形オブジェクトの消去、および、ブロックの消去や移動、回転の結果を反映するための上記ブロックテーブルの更新処理が行われる。その後、ゲーム画像の表示処理が行われる(ステップS15)。具体的には、ブロックの消去や移動の表示、後述するブロック回転処理で決定された角度に沿ってブロックが回転するアニメーション表示等が行われる。ステップS15の後、ステップS16において、ゲーム終了か否かが判断され、YESの場合、ゲーム処理を終了し、NOの場合、ステップS2に戻って、ゲーム処理を繰り返す。
【0065】
次に、上記ステップS6の判定の結果、第1座標記憶領域23に座標値が記憶されているときの処理(ステップS6でYES)について、図12を用いて説明する。図12において、まず、入力座標値が第1座標記憶領域23に記憶されている座標値と異なるか否かが判定される(ステップS25)。すなわち、同じ位置を継続して押圧しているか、または同じ位置をダブルタップしたか否かが判定されることになる。当該判定の結果、同じ座標値であれば(ステップS25でNO)、そのまま処理をステップS13に進める。一方、座標値が異なっていれば(ステップS25でYES)、入力座標値が、上記ステップS10で記憶した指示ブロックIDで示されるブロック(以下、指定ブロックと呼ぶ)に含まれるか否かが判定される(ステップS26)。すなわち、同じブロック51内でダブルタップ操作を行ったか否かが判定される。具体的には、入力座標値が含まれる画面上の領域のブロックID(図9参照)が指示ブロックIDと一致するか否かが判定される。当該判定の結果、入力座標値が指定ブロックの領域に含まれるとき、つまり、指定ブロックをダブルタップしたときは(ステップS26でYES)、入力座標値を第2座標記憶領域24に格納する(ステップS27)。
【0066】
次に、第1座標記憶領域23と第2座標記憶領域24とに格納されている座標値に基づいて、これらの変化方向と変化量(座標間の距離)を検出する(ステップS28)。具体的には、LCD12の横方向の座標値(X座標)のうち、LCD12の左端を0とし、右方向に行くに従って値が増加していき、LCD12の右端を最大値とした場合の、第1座標記憶領域23に格納されている座標値(以下、第1座標値)のX座標と、第2座標記憶領域24に格納されている座標値(以下、第2座標値)のX座標とを比較する。そして、第1座標のX座標<第2座標のX座標、という関係であれば、変化方向を「右」と判定する。また、第1座標のX座標>第2座標のX座標、という関係であれば、変化方向を「左」と判定する。そして、その差分を変化量とする。例えば、LCD12の左上端の座標を(0,0)とした場合、第1座標値が(10,20)であり、第2座標値が(20,20)であれば、変化方向は「右」であり、変化量は「10」となる。なお、上述したように、本ゲームにおいてはブロック51の回転方向は右および左の何れか一方のみであるため、ここでは、Y座標については考慮せずにX座標にのみ着目して判定している。
【0067】
ステップS28における処理の次に、ダブルタップ継続フレーム数が0であるか否かが判定される(ステップS29)。つまり、ダブルタップ操作(タッチパネル16を一度押圧し、一旦離して再度押圧した)であるか、ドラッグ操作(タッチパネル16を押圧し続けたままで移動操作した)であるかの判定が行われる。当該判定の結果、ダブルタップ継続フレーム数が0であるとき(ステップS29でYES)は、ドラッグ操作であるため、上記ステップS28で検出された変化方向及び変化量に基づいて、指定ブロックを移動させる(ステップS30)。すなわち、連続して検出された少なくとも2つ以上の入力座標を結ぶ方向と量に応じて指定ブロックを移動させる。
【0068】
一方、ダブルタップ継続フレーム数が0でないとき(ステップS29でNO)は、ダブルタップ操作であるため、指定ブロックを回転させる処理を行う(ステップS31)。図13は、当該ステップS31で示した回転処理の詳細を示すフローチャートである。図13において、まず、変化方向が「右」であるか否かが判定される(ステップS41)。当該判定の結果、変化方向が「右」であれば(ステップS41でYES)、次に、変化量が1〜10の範囲内であるか否かを判定する(ステップS42)。これは、当該変化量に応じて、回転する角度を異なるものとするためである。当該判定の結果、変化量が1〜10の範囲内であれば(ステップS42でYES)、指定ブロックを時計回りに90°回転させる(ステップS43)。一方、変化量が1〜10の範囲内でないとき(すなわち、11以上)は、指定ブロックを時計回りに180°回転させる(ステップS44)。換言すれば、ダブルタップ操作において、一度目のタップ位置と2度目のタップ位置が近ければ、90°しか回転せず、遠ければ、180°と大きく回転させることになる。
【0069】
ステップS41の判定の結果、変化方向が「右」でないときは(ステップS41でNO)、続いて、変化方向が「左」であるか否かを判定する(ステップS45)。その結果、変化方向が「左」であれば、ステップS42と同様に変化量が1〜10の範囲内であるかを判定する(ステップS46)。当該判定の結果、変化量が1〜10の範囲内であれば(ステップS46でYES)、指定ブロックを反時計回りに90°回転させる(ステップS47)。一方、変化量が1〜10の範囲内でないとき(すなわち、11以上)は、指定ブロックを反時計回りに180°回転させる(ステップS48)。一方、ステップS45の判定の結果、変化方向が「左」でないときは、そのままブロック回転処理を終了する。
【0070】
次に、ブロックを回転させた結果、他のブロックと衝突していないかをチェックする処理が行われる(ステップS49)。このステップS49の処理をより具体的に説明すると、まず、回転後の指定ブロックの位置が、その一部についてでも他のブロックの位置と重複していないかを判定する。当該判定の結果、重複していなければ、そのままブロック回転処理を終了する。一方、他のブロックと位置が重複しているときは、戻りフラグをオンに設定する。以上で、ステップS29にかかるブロック回転処理は終了する。
【0071】
図12に戻り、ステップS30あるいはS31の処理が終われば、第1座標記憶領域23および第2座標記憶領域24をクリアする(ステップS32)。つまり、指定ブロックの移動あるいは回転処理が終わったため、ダブルタップの判定に用いる情報をクリアするものである。その後、処理を上述したステップS13に進める。
【0072】
次に、上記ステップS26の判定の結果、入力座標値が指定ブロックの領域に含まれないとき(ステップS26でNO)の処理について説明する。このときは、入力座標値が他のブロック51の領域に含まれているか否かを判定する(ステップS33)。具体的には、上記ブロックテーブルを参照して、入力座標値に該当する画面上の領域のブロックIDが0であるか否かが判定される。当該判定の結果、ブロックIDが0であれば、そこにはブロックが存在しないことになるため(ステップS33でNO)、処理を上記ステップS32に進める。一方、ブロックIDが0でないときは(ステップS33でYES)、ダブルタップ操作における一度目の操作で押圧したブロック51とは異なるブロック51を押圧したことになる。そのため、上述したステップS11に処理を進め、新たに押圧されたブロックを指定ブロックとする処理を行い、その後の処理を続ける。
【0073】
次に、図10に戻り、上記ステップS2の判定の結果、上記戻りフラグがオンのとき(ステップS2でYES)の処理について説明する。この場合は、回転キャンセル表示処理(ステップS17)が行われる。このステップS17の処理では、例えば、指示ブロックを時計回りに90°回転させた結果、他のブロックと位置が重なるときは(つまり、回転しきれないとき)、当該指示ブロックを、回転させる前の位置に戻す表示をする処理が行われる。具体的には、当該指示ブロックを一旦回転させ、他のブロックと衝突したら、回転させた方向と反対の方向に回転させるアニメーション表示が行われる。そして、指示ブロックが、回転する前の位置に戻れば、上記戻りフラグをオフに設定する。
【0074】
以上で、本実施形態にかかるゲーム処理は終了する。
【0075】
このように、第1の実施形態では、ダブルタップ操作における入力座標の変化に基づいて回転方向を決定している。そのため、簡単かつ素早い操作でブロック51の回転を行うことができ、操作性の良いゲームを提供することができる。また、ドラッグ操作のときには、ブロック51を移動させるため、操作対象オブジェクトの移動操作と回転操作を独立して行うことができる。これにより、直感的な操作で操作対象オブジェクトを移動させることが可能となる。また、上記変化量に応じてブロック51を回転させる角度を変えるため、ユーザは直感的に回転量を調節することができ、単純な操作ながら奥の深いブロック51の操作を行うことができる。
【0076】
なお、上述の実施形態では、ダブルタップ操作における1度目のタップ位置と2度目のタップ位置が同じブロック51内で行われなければ、ブロックの回転は行われなかった。しかし、これに限らず、2度目のタップ位置は、同じブロック51の範囲の外であっても回転するようにしてもよい。すなわち、上述した図12におけるステップS26やS33の処理を行わないようにしてもよい。これにより、プレイヤに回転操作を行いやすくすることができる。また、上述の実施例では、ダブルタップ操作における1度目のタップ位置と2度目のタップ位置が同じ場合(上述した図12におけるステップS25でNO)、または1度目のタップ位置のX座標と2度目のタップ位置のX座標が同じ場合(上述した図13におけるステップS45でNO)は、回転操作を行わないようにしたが、予め決められた方向(例えば右方向)に回転するようにしてもよい。
【0077】
また、回転する量についても、上述の実施形態では90°単位でブロックを回転していたが、これに限らず、上記変化量に応じて、更に細かい単位で回転するようにしてもよい。
【0078】
また、ブロックの移動についても、一連のドラッグ操作において最初からブロックを指定していない場合であっても、その途中でブロックが指示されれば、当該ブロックを移動するようにしてもよい。例えば、最初はブロックの存在しない場所をスティック17で押圧し、スティック17をタッチパネル16に接触させたまま、あるブロックを横切るようにスティック17を移動させる。このときに、当該横切ったブロックを移動させるようにしてもよい。
【0079】
(変形例)
また、上述した実施形態では、回転方向の判定では入力座標のY座標は考慮していなかったが、Y座標も考慮して回転処理を行うようにしても良い。これは、特に3D画像で表示されるゲーム等に有効である。以下、Y座標を考慮した回転処理について説明する。
【0080】
図14〜図21は、3D画像で表示されているサイコロ(操作対象オブジェクト)を回転させる操作の概要を模式的に示す図である。例えば、当該サイコロを右方向に回転させたい場合、図14に示すように、サイコロの正面をスティック17で押圧する。次に、一旦スティック17をタッチパネル16から離し、所定の時間内に、最初に押圧した点よりも右側の位置をスティック17で押圧する(図15)。すると、当該サイコロが右に回転する(図16、図17)。同様に、当該サイコロを上に回転させたい場合は、図18に示すように、サイコロの正面をスティック17で押圧する。次に、一旦スティック17をタッチパネル16から離し、所定の時間内に、最初に押圧した点よりも上側の位置をスティック17で押圧する(図19)。すると、当該サイコロが上に回転する(図20、図21)。
【0081】
次に、上述した回転処理の詳細な処理について説明する。基本的な処理の流れは図10〜図12を用いて説明した処理と同様であるが(但し、説明の便宜上、ブロック51の代りにサイコロを用いて説明する。)、図13を用いて説明したブロック回転処理が、以下に図22を用いて説明するオブジェクト回転処理に置き換わる。
【0082】
図22は、Y座標も考慮したオブジェクト回転処理の詳細を示すフローチャートである。まず、図22に示す処理の前提として、上記ステップS26における変化方向の検出で、左右方向に加え、Y座標を比較することで、「上」あるいは「下」の変化方向も検出しておく。例えば、LCD12の縦方向の座標値(Y座標)のうち、LCD12の上端を0とし、下方向に行くに従って値が増加していき、LCD12の下端を最大値とした場合、第1座標のY座標<第2座標のY座標、という関係であれば、変化方向を「下」と判定する。また、第1座標のY座標>第2座標のY座標、という関係であれば、変化方向を「上」と判定する。また、このとき、X座標・Y座標ともに変化している場合は、変化量の大きいほうを優先して用いる。例えば、第1座標が(10,10)であり、第2座標が(20,15)のときは、変化方向は「右」でかつ「下」でもある。また、X座標の変化量は10であり、Y座標の変化量は5である。従って、この場合の変化方向については、「右」と決定する。なお、上述のように、変化方向が「右」でかつ「下」である場合、その両方を変化方向と決定するようにしてもよい。
【0083】
上述のように変化方向を検出したうえで、図22において、まず、変化方向が「右」であるか否かが判定される(ステップS51)。当該判定の結果、「右」であれば(ステップS51でYES)、サイコロ(操作対象オブジェクト)を右方向に90°回転させる。一方、変化方向が「右」でないときは(ステップS21でNO)、変化方向が「左」であるか否かが判定される(ステップS53)。当該判定の結果、「左」であれば(ステップS53でYES)、サイコロを左方向に90°回転させ(ステップS54)、「左」でなければ(ステップS53でNO)、次に、変化方向が「上」であるか否かを判定する(ステップS55。)当該判定の結果、「上」であれば(ステップS55でYES)、サイコロを上方向に90°回転させ(ステップS56)、「上」でなければ(ステップS55でNO)、次に、変化方向が「下」であるか否かを判定する(ステップS57)。当該判定の結果、「下」であれば(ステップS57でYES)、サイコロを下方向に90°回転させ(ステップS58)、「下」でなければ(ステップS57でNO)、当該オブジェクト回転処理を終了する。
【0084】
このように、Y座標を考慮した回転処理を行うことで、操作対象オブジェクトに多様な変化を行わせることができ、例えば、3D空間を用いたゲーム等で多彩な遊び方を提供することが可能となる。
【0085】
更に、回転する方向について、上述した実施形態では、右方向にダブルタップすれば右回転、というように、ダブルタップの移動方向に沿う形で回転方向を決めていた。これに限らず、ダブルタップの方向と回転方向とを異なる方向にしてもよい。例えば、右方向にダブルタップを行ったときは、上方向にオブジェクトを回転したり、上方向にダブルタップを行ったときは、右方向にオブジェクトを回転する等、必ずしも、ダブルタップの方向と回転方向を合わせないようにしてもよい。これにより、ダブルタップという単純な操作であっても、その変化方向に応じて様々な方向にオブジェクトを回転させることができ、オブジェクトを回転させることを利用するゲーム等において、より多彩な遊び方を提供することができる。また、上述した実施形態では、ダブルタップ操作における1度目のタップ位置と2度目のタップ位置の少なくとも何れか一方が操作対象オブジェクトの表示領域内に含まれているとき、その操作対象オブジェクトを回転させるようにしていたが、これに限らなくてもよい。例えば、操作対象オブジェクトが1つしかない場合であれば、ダブルタップ操作における1度目のタップ位置と2度目のタップ位置の両方ともが操作対象オブジェクトの表示領域内に含まれていなくても操作対象オブジェクトを回転させるようにしてもよい。また、LCD12の任意の領域に図3に示すようなゲーム画面領域とは別に操作領域を設け、操作領域内でダブルタップ操作することによって操作対象オブジェクトを回転させてもよい。
【0086】
なお、上記実施例では、表示画面上の位置を指定するポインティングデバイスとしてタッチパネルを用いたが、他のポインティングデバイスを用いてもかまわない。ここで、ポインティングデバイスは、表示画面上での入力位置や座標を指定する入力装置であり、例えば、マウス、トラックパッド、トラックボールなどを入力装置として使用し、入力装置から出力される出力値から計算された画面座標系の情報を用いれば、本発明を同様に実現することができる。なお、マウス等のポインティングデバイスの場合、タッチ状態と非タッチ状態とをクリックボタンのオンオフに対応させ、マウス等から出力される出力値から座標を計算する処理をゲーム装置等で行えばよい。
【図面の簡単な説明】
【0087】
【図1】本発明の一実施形態に係る携帯ゲーム装置10の外観図
【図2】本発明の一実施形態に係る携帯ゲーム装置10のブロック図
【図3】本実施形態が想定するゲームの画面の一例
【図4】ドラッグ操作を説明するための図
【図5】ドラッグ操作を説明するための図
【図6】回転操作を説明するための図
【図7】回転操作を説明するための図
【図8】図2のRAM37のメモリ空間を図解的に示したメモリマップ
【図9】ブロックテーブルの一例を模式的に示す図
【図10】本発明の一実施形態に係る携帯ゲーム装置10の全体的な動作を示すメインルーチンのフローチャート
【図11】本発明の一実施形態に係る携帯ゲーム装置10の全体的な動作を示すメインルーチンのフローチャート
【図12】本発明の一実施形態に係る携帯ゲーム装置10の全体的な動作を示すメインルーチンのフローチャート
【図13】図12のステップS31で示したブロック回転処理の詳細を示したフローチャート
【図14】回転操作を説明するための図
【図15】回転操作を説明するための図
【図16】回転操作を説明するための図
【図17】回転操作を説明するための図
【図18】回転操作を説明するための図
【図19】回転操作を説明するための図
【図20】回転操作を説明するための図
【図21】回転操作を説明するための図
【図22】オブジェクト回転処理の詳細を示したフローチャート
【符号の説明】
【0088】
10 携帯ゲーム装置
11 第1LCD
12 第2LCD
13 ハウジング
14a 音抜き孔
14b 収納孔
15 操作スイッチ部
16 タッチパネル
17 スティック
18 メモリカード
19 スピーカ
30 電子回路基板
31 CPUコア
32 バス
33 コネクタ
34 インターフェース回路
35 第1GPU
36 第2GPU
37 RAM
38 第1VRAM
39 第2VRAM
40 LCDコントローラ
41 レジスタ
51 ブロック
180 ROM
185 RAM

【特許請求の範囲】
【請求項1】
仮想空間内の操作対象オブジェクトを画面に表示する表示装置と、前記画面上の位置を指定するためのポインティングデバイスとを備える画像処理装置のコンピュータに実行させる画像処理プログラムであって、
前記ポインティングデバイスによって指定される前記画面上の位置を示す入力座標を所定の単位時間毎に検出する入力座標検出ステップと、
前記入力座標検出ステップにおいて検出された第1の入力座標に関して、当該第1の入力座標とは不連続に検出され且つ当該第1の入力座標よりも前に検出された第2の入力座標が存在するか否かを判定し、存在する場合、当該第1の入力座標と当該第2の入力座標とに基づいて変化方向を算出する方向算出ステップと、
前記算出された方向に応じた回転方向に前記操作対象オブジェクトを回転させる回転ステップと前記コンピュータに実行させる、画像処理プログラム。
【請求項2】
前記回転ステップにおいては、前記第1あるいは第2の入力座標の何れかが前記操作対象オブジェクトの占める画面上の領域内に含まれているとき、当該第1あるいは第2の入力座標が含まれている操作対象オブジェクトを回転させる、請求項1に記載の画像処理プログラム。
【請求項3】
前記画像処理プログラムは、前記第2の入力座標が検出されてから所定時間内に前記第1の入力座標が検出されたかを判定する時間判定ステップを更に前記コンピュータに実行させ、
前記回転ステップは、前記時間判定ステップによって前記第1の入力座標が所定時間内に検出されたと判定されたときにのみ、前記回転方向に前記操作対象オブジェクトを回転させる、請求項1に記載の画像処理プログラム。
【請求項4】
前記画像処理プログラムは、前記第2の入力座標から前記第1の入力座標までの距離を算出する距離算出ステップを更に実行させ、
前記回転ステップは、前記操作対象オブジェクトを回転させる角度を前記算出された距離に応じて変化させる、請求項1に記載の画像処理プログラム。
【請求項5】
前記画像処理プログラムは、
前記回転ステップによって回転させた前記操作対象オブジェクトと他の操作対象オブジェクトとの前記画面上の表示位置が重複するか否かを判定する重複チェックステップと、
前記重複チェックステップにおいて重複していると判定されたときは、前記操作対象オブジェクトが回転する動作を表示した後、回転する前の位置に戻る動作を前記画面上に表示する回転キャンセルステップを更に前記コンピュータに実行させる、請求項1に記載の画像処理プログラム。
【請求項6】
前記画像処理プログラムは、
前記入力座標検出ステップによって連続して検出された少なくとも2つ以上の入力座標に基づいて変化方向を算出する連続方向算出ステップと、
前記連続方向算出ステップによって算出された方向に応じた移動方向に前記操作対象オブジェクトを移動させる移動ステップとを更に前記コンピュータに実行させる、請求項1に記載の画像処理プログラム。
【請求項7】
前記画像処理プログラムは、前記入力座標検出ステップによって連続して検出された前記2つ以上の入力座標の何れかが前記操作対象オブジェクトの占める画面上の領域内に含まれているかを判定する指示判定ステップを更に含み、
前記移動ステップにおいては、前記指示判定ステップにおいて前記何れかの入力座標が前記操作対象オブジェクトの占める画面上の領域内に含まれていると判定されたとき、当該入力座標が含まれている操作対象オブジェクトを移動させる、請求項6に記載の画像処理プログラム。
【請求項8】
前記指示判定ステップにおいては、前記連続して検出された前記2つ以上の入力座標のうち最初に検出された入力座標が前記操作対象オブジェクトの占める画面上の領域内に含まれているかを判定し、
前記移動ステップにおいては、前記指示判定ステップによって判定された前記最初に検出された入力座標が含まれている操作対象オブジェクトを移動させる、請求項7に記載の画像処理プログラム。
【請求項9】
仮想空間内の操作対象オブジェクトを画面に表示する表示装置と、前記画面上の位置を指定するためのポインティングデバイスとを備えるゲーム装置のコンピュータに実行させるゲームプログラムであって、
前記ポインティングデバイスによって指定される前記画面上の位置を示す入力座標を所定の単位時間毎に検出する入力座標検出ステップと、
前記入力座標検出ステップにおいて検出された第1の入力座標に関して、当該第1の入力座標とは不連続に検出され且つ当該第1の入力座標よりも前に検出された第2の入力座標が存在するか否か、および、当該第1の入力座標とは連続して検出され且つ当該第1の入力座標よりも前に検出された入力座標の少なくとも2つ以上の入力座標が存在するか否かを判定する判定ステップと、
前記判定ステップにおいて前記第2の入力座標が存在すると判定されたときは、前記第2の入力座標と前記第1の入力座標とに基づいて変化方向を算出する方向算出ステップと、
前記算出された方向に応じた回転方向に、前記操作対象オブジェクトを回転させる回転ステップと、
前記判定ステップにおいて連続して検出された2つ以上の入力座標が存在すると判定されたときは、前記入力座標検出ステップによって連続して検出された少なくとも2つ以上の入力座標を結ぶ方向を算出する連続方向算出ステップと、
前記連続方向算出ステップによって算出された方向に応じた移動方向に前記操作対象オブジェクトを移動させる移動ステップとを前記コンピュータに実行させるゲームプログラム。
【請求項10】
仮想空間内の操作対象オブジェクトを画面に表示する表示装置と前記画面上の位置を指定するためのポインティングデバイスとを備える画像処理装置であって、
前記ポインティングデバイスによって指定される前記画面上の位置を示す入力座標を所定の単位時間毎に検出する入力座標検出部と、
前記入力座標検出部において検出された第1の入力座標に関して、当該第1の入力座標とは不連続に検出され且つ当該第1の入力座標よりも前に検出された第2の入力座標が存在するか否かを判定し、存在する場合、当該第1の入力座標と当該第2の入力座標とに基づいて変化方向を算出する方向算出部と、
前記算出された方向に応じた回転方向に、前記操作対象オブジェクトを回転させる回転部とを備える、画像処理装置。
【請求項11】
仮想空間内の操作対象オブジェクトを画面に表示する表示装置と、前記画面上の位置を指定するためのポインティングデバイスとを備えるゲーム装置であって、
前記ポインティングデバイスによって指定される前記画面上の位置を示す入力座標を所定の単位時間毎に検出する入力座標検出部と、
前記入力座標検出部において検出された第1の入力座標に関して、当該第1の入力座標とは不連続に検出され且つ当該第1の入力座標よりも前に検出された第2の入力座標が存在するか否か、および、当該第1の入力座標とは連続して検出され且つ当該第1の入力座標よりも前に検出された入力座標の少なくとも2つ以上の入力座標が存在するか否かを判定する判定部と、
前記判定部において前記第2の入力座標が存在すると判定されたときは、前記第2の入力座標と前記第1の入力座標とに基づいて変化方向を算出する方向算出部と、
前記算出された方向に応じた回転方向に、前記操作対象オブジェクトを回転させる回転部と、
前記判定部において連続して検出された2つ以上の入力座標が存在すると判定されたときは、前記入力座標検出部によって連続して検出された少なくとも2つ以上の入力座標を結ぶ方向を算出する連続方向算出部と、
前記連続方向算出部によって算出された方向に応じた移動方向に前記操作対象オブジェクトを移動させる移動部とを備えるゲーム装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2007−102495(P2007−102495A)
【公開日】平成19年4月19日(2007.4.19)
【国際特許分類】
【出願番号】特願2005−291638(P2005−291638)
【出願日】平成17年10月4日(2005.10.4)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】