ゲーム装置およびゲームプログラム
【課題】
タッチパネルを使ってアミダ線を描くことにより、オブジェクトを正しくゴールに導くゲームを提供する。
【解決手段】
プレイヤはタッチパネル15を介してアミダ線の横線39bを入力する。そして正しく横線を追加し、オブジェクトを正しいゴールに導く。このときタッチ操作の内容を判定し、判定内容に応じて正しくアミダ線の横線が追加されるように処理する。タッチ操作の軌跡が、縦線と交差しなかったときには描画開始点と終了点に基づいて横線を追加する。1つの縦線と交差したときは交点と判定点に基づいて横線を追加する。2つ以上の縦線と交差したときには最初の二つの交点に基づいて横線を追加する。
タッチパネルを使ってアミダ線を描くことにより、オブジェクトを正しくゴールに導くゲームを提供する。
【解決手段】
プレイヤはタッチパネル15を介してアミダ線の横線39bを入力する。そして正しく横線を追加し、オブジェクトを正しいゴールに導く。このときタッチ操作の内容を判定し、判定内容に応じて正しくアミダ線の横線が追加されるように処理する。タッチ操作の軌跡が、縦線と交差しなかったときには描画開始点と終了点に基づいて横線を追加する。1つの縦線と交差したときは交点と判定点に基づいて横線を追加する。2つ以上の縦線と交差したときには最初の二つの交点に基づいて横線を追加する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明はゲーム装置およびゲームプログラムに関し、特に例えば、タッチパネルのタッチ操作に基づいて、オブジェクトの移動経路を追加し、オブジェクトを所望の位置に導くようなパズルゲームをプレイするゲーム装置およびゲームプログラムに関する。
【背景技術】
【0002】
古くから、アミダくじを引く遊びが知られている。アミダくじでは、複数の縦線がまず紙の上などに平行に描かれ、一方の端部にはあたりやはずれなど、何らかの特典にかかる記号や情報を記載し、この記載が見えないように隠しておく。そして、平行する複数の縦線の隣合う2本の直線に端部が接するように、横線を無秩序に複数描いた上で、特典が記載された端部とは反対側の端部において、いずれかの縦線をくじの参加者に選ばせる。このとき横線を無秩序に描いたことにより、横線を描いた人間や特典を記載した人間ですら、どの縦線の端部が特典に結びつくか予測することができないので、公平なくじを引くことができる。
【0003】
特許文献1に記載の技術では、このようなアミダくじの原理をビデオゲームに応用した技術を開示している。アミダくじの線を、水滴がたどる経路に設定し、複数の縦経路の上方端部からは水滴が注入され、下方端部には種子が表示されている。プレイヤは横線にあたる経路を、縦線に適宜追加或いは削除し、水滴が種子にうまく落下するように、経路を作っていく。このとき、下方端部には複数の種子が表示され、一方上方端部においては、水滴はどの経路に注入されるかが分からないので、上手く経路を設定しないと、ゲームクリアができないように配慮されている。
【0004】
【特許文献1】特開1201−739
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の技術では、アミダくじのような経路を通過してきた水滴が、種子に落下した回数と、この回数に応じた種子の変化、すなわち発芽して成長することが重視されており、アミダくじの本来の楽しみである、横線の追加と、予測の困難性をより楽しむことについては、配慮されていなかった。また、横線の追加については、カーソルを操作部によって動かし、経路の追加箇所に持っていくよう構成されており、本来のアミダくじのように、横線を描くことそれ自体の楽しみが再現されていなかった。すなわち、一般的なパソコンにおける入力と同じ操作を強いられるので、プレイヤはゲーム本来の楽しみを阻害される恐れがあった。
【0006】
それ故にこの発明の主たる目的は、アミダくじの興趣性を採り入れ、かつタッチパネル操作を組み合わせた、新しいゲームを提供することである。
この発明のその他の目的は、タッチパネル操作を上手く行うことができるように、タッチパネル操作特有の操作誤差を吸収した、新しいゲームを提供することである。
【課題を解決するための手段】
【0007】
請求項1の発明は、表示手段(図1および図2の11,12:実施例で相当する参照番号。以下同様)を備え、表示手段に重ねて形成されたタッチパネル(15)を操作してプレイするゲーム装置(10)であって、線データ記憶手段(24)と、線描画手段(21,26,27)と、線データ入力手段(15,21)と、線データ判定追加手段(21,24)と、オブジェクト移動表示手段(21,24,26,27,28,29,31,32)と、ゴール判定手段(21,24)とを備える。
【0008】
線データ記憶手段は、複数の相互に交わらない関係にある第1の線と、これら第1の線の内、隣合う線同志を結び、かつその交点を端部とした複数の第2の線から成るアミダ線状の線データを記憶している。線描画手段は、表示手段に、線データ記憶手段に基づいて、アミダ線状の線画像を表示する。線データ入力手段は、タッチパネルを連続的にタッチした軌跡に基づいて、手書き線データを入力する。線データ判定追加手段は、入力された手書き線データとアミダ線状の線データとの関係を判定し、判定に応じた線データを線データ記憶手段に追加記憶する。オブジェクト移動表示手段は、少なくとも一つのオブジェクトを、線データに基づいて、一方通行で表示手段上を移動表示させる。そして、ゴール判定手段は、オブジェクト移動表示手段に応じて、オブジェクトが、所定の表示位置に到達したかどうかを判定する。
【0009】
請求項2の発明は、請求項1に従属し、線データ判定追加手段は、手書き線データの開始位置と終了位置とが、隣り合う2つの第1の線の中間線をまたぐ位置関係でないときには、手書き線データの入力が無いと判定し、線データを追加記憶しない。
【0010】
請求項3の発明は、請求項1に従属し、線データ判定追加手段は、手書き線データの開始位置と終了位置とが、第1の線のいずれか1本と交差している位置関係であるときには、交点を、追加する線データの一方の端部とし、開始位置と終了位置のいずれか一方であって、該交点から遠い側の位置に最も近い第1の線上の位置を、他方の端部とする。
【0011】
請求項4の発明は、請求項1に従属し、線データ判定追加手段は、手書き線データの開始位置と終了位置とが、第1の線の2本以上と交差する位置関係であるとき、開始位置からみて、一つ目の交点を、追加する線データの一方端部とし、二つ目の交点を、多方端部とする。
【0012】
請求項5の発明は、表示手段と、表示手段に重ねて形成されたタッチパネルと、線データ記憶手段とを備えたゲーム装置であって、線データ記憶手段は、複数の相互に交わらない関係にある第1の線とこれら第1の線の内隣合う線同志を結び、かつその交点を端部とした複数の第2の線から成るアミダ線状の線データを記憶したゲーム装置を、タッチパネルを操作してプレイするゲーム装置として機能させるゲームプログラムであって、ゲーム装置のコンピュータに、線描画ステップ(33f,34c,S12)と、線データ入力ステップ(33c,34a,34b,S13)と、線データ判定追加ステップ(33d,33e,34c,S13)と、オブジェクト移動表示ステップ(33g,34d,S14)と、ゴール判定ステップ(33h,34e,34d,S15,S16)とを実行させる。
【0013】
線描画ステップは、表示手段に、線データ記憶手段に基づいて、アミダ線状の線画像を表示する。線データ入力ステップは、タッチパネルを連続的にタッチした軌跡に基づいて、手書き線データを入力する。線データ判定追加ステップは、入力された手書き線データとアミダ線状の線データとの関係を判定し、判定に応じた線データを線データ記憶手段に追加記憶する。オブジェクト移動表示ステップは、少なくとも一つのオブジェクトを、線データに基づいて、一方通行で表示手段上を移動表示させる。ゴール判定ステップは、オブジェクト移動表示手段に応じて、オブジェクトが、所定の表示位置に到達したかどうかを判定する。
【0014】
請求項6の発明は、請求項5に従属し、線データ判定追加ステップは、手書き線データの開始位置と終了位置とが、隣り合う2つの第1の線の中間線をまたぐ位置関係でないときには、手書き線データの入力が無いと判定し、線データを追加記憶しない。
【0015】
請求項7の発明は、請求項5に従属し、線データ判定追加ステップは、手書き線データの開始位置と終了位置とが、第1の線のいずれか1本と交差している位置関係であるときには、交点を、追加する線データの一方の端部とし、開始位置と終了位置のいずれか一方であって該交点から遠い側の位置に最も近い第1の線上の位置を、他方の端部とする。
【0016】
請求項8の発明は、請求項5に従属し、線データ判定追加ステップは、手書き線データの開始位置と終了位置とが、第1の線の2本以上と交差する位置関係であるとき、開始位置からみて、一つ目の交点を、追加する線データの一方端部とし、二つ目の交点を多方端部とする。
【発明の効果】
【0017】
請求項1に記載の発明によれば、表示画面上で実際に描くように横線を追加でき、さもアミダくじを描いているような楽しみをユーザに提供できる。また、手書きされた線と縦線との関係に応じて、最終的に追加される横線が描画されるので、タッチパネルの操作特有の操作感とのずれを吸収でき、描画の操作感を向上できる。さらに、アミダの線上をオブジェクトが移動しており、このオブジェクトを正しくゴールに導くように横線を追加しなければならないので、アミダの作画にオブジェクトの移動を加味した新しいゲームを提供することができる。
【0018】
請求項2に記載の発明によれば、請求項1の発明に加えて、誤入力と考え得るような、非常に短い線の入力があったとき、これが実際に描画されることが無いので、タッチパネルの操作感をより向上することができる。
請求項3に記載の発明によれば、請求項1の発明に加えて、必ずしも正確に縦線と交わるように横線を描画することなく、効率的に横線を追加することができるので、さらにタッチパネルの操作感を向上することができる。
請求項4に記載の発明によれば、請求項1の発明に加えて、縦線2本に交差するようタッチ操作を行ったつもりが、タッチ入力を急いで行うなど、3本以上の縦線と交差してしまう誤操作を行っても、縦線2本に対して横線が追加されるので、さらにタッチパネルの操作感を向上することができる。
【0019】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0020】
図1を参照して、この発明の一実施例であるゲーム装置10は、第1の液晶表示器(LCD)11および第2のLCD12を含む。このLCD11およびLCD12は、所定の配置位置となるようにハウジング13に収納される。この実施例では、ハウジング13は、上側ハウジング13aと下側ハウジング13bとによって構成され、LCD11は上側ハウジング13aに収納され、LCD12は下側ハウジング13bに収納される。したがって、LCD11とLCD12とは縦(上下)に並ぶように近接して配置される。
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイなどを用いるようにしてもよい。
【0021】
図1からも分かるように、上側ハウジング13aは、LCD11の平面形状よりも大きな平面形状を有し、一方主面からLCD11の表示面を露出するように開口部が形成される。一方、下側ハウジング13bは、その平面形状が上側ハウジング13aと同程度に形成され、横方向の略中央部にLCD12の表示面を露出するように開口部が形成される。また、上側ハウジング13aには、音抜き孔18が形成される。音抜き穴18は上側ハウジングに形成されたLCD11を挟むように、右側に音抜き穴18aと左側に音抜き穴18bが対称に形成される。またハウジング13には操作スイッチ14(14a,14b,14c,14d,14e,14fおよび14g,14L,14R)および電源スイッチ21が配置される。
【0022】
また、上側ハウジング13aと下側ハウジング13bとは、上側ハウジング13aの下辺(下端)と下側ハウジング13bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD11の表示面とLCD12の表示面とが対面するように、上側ハウジング13aを回動させて折りたたんでおけば、LCD11の表示面およびLCD12の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング13aと下側ハウジング13bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング13を形成するようにしてもよい。
【0023】
操作スイッチ14は、方向指示スイッチ(十字スイッチ)14a,スタートスイッチ14b、セレクトスイッチ14c、動作スイッチ(Aボタン)14d、動作スイッチ(Bボタン)14e、動作スイッチ(Xボタン)14f、動作スイッチ(Yボタン)14g、動作スイッチ(Lボタン)14Lおよび動作スイッチ(Rボタン)14Rを含む。スイッチ14aは、下側ハウジング13bの一方主面において、LCD12の左側に配置される。また、スイッチ14bないし14gは、下側ハウジング13bの一方主面において、LCD12の右側に配置される。さらに、スイッチ14Lおよびスイッチ14Rは、それぞれ、下側ハウジング13bの上端(天面)の一部において、上側ハウジング13aとの連結部以外に当該連結部を挟むように、左右に配置される。
【0024】
方向指示スイッチ14aは、ディジタルジョイスティックとして機能し、4つの押圧部の1つを操作することによって、プレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。スタートスイッチ14bは、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止(Pause)したりする等に用いられる。セレクトスイッチ14cは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【0025】
動作スイッチ14dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器またはコマンドの選択および決定等を指示することができる。動作スイッチ14eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ14cで選択したゲームモードの変更やAボタン14dで決定したアクションの取り消し等のために用いられる。
【0026】
動作スイッチ14eすなわちXボタン、および動作スイッチ14fすなわちYボタンは、プッシュボタンで構成され、プッシュボタンAとプッシュボタンBだけでは、ゲーム進行ができないときに、補助的な操作ボタンとして用いられる。もちろん、ゲームプレイにおいてXボタンとYボタンを必ずしも使用しなくてよい。
【0027】
動作スイッチ14L(左押しボタン)および動作スイッチ14R(右押しボタン)は、プッシュボタンで構成され、左押しボタン(Lボタン)14Lおよび右押しボタン(Rボタン)14Rは、Aボタン14dおよびBボタン14eと同様の操作に用いることができ、また、Aボタン14dおよびBボタン14eの補助的な操作に用いることができる。
【0028】
また、このゲーム装置10はタッチパネルを用いたゲーム装置であり、LCD12の上面には、タッチパネル15が装着される。タッチパネル15としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル15は、その上面をスティック16ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック16等」という場合がある。)で、押圧したり撫でたり(触れたり)することにより操作すると、スティック16等の座標位置を検出して座標データを出力する。
【0029】
なお、この実施例では、LCD12(LCD11も同じ、または略同じ。)の表示面の解像度は228dot×192dotであり、タッチパネル15の検出精度も表示画面に対応して228dot×192dotとしてあるが、タッチパネル15の検出精度は表示画面の解像度よりも低くてもよく、高くてもよい。
【0030】
この実施例では、たとえばタッチパネル15の設けられるLCD12には、プレイヤに見せかつ操作させるためのゲーム画面が表示され、LCD11にはプレイヤに見せるためのゲーム画面が表示される。具体的には、LCD11には横線と縦線で形成されたアミダくじのような軌道上をオブジェクトが移動してくる画像が表示される。LCD12に表示されるゲーム画面には、未完成のアミダくじのように、縦線のみが表示されており、プレイヤはLCD12に表示された縦線に対して、スティック16等で直接触れるようにしてタッチパネル15上に横線を描くような操作をする。こうして、LCD11に表示される軌道の続きをLCD12に描いて、移動してくるオブジェクトを所定位置に導くための軌道を作るのである。なお、LCD12は、ゲームの種類に応じてその他各種の入力指示を行うようにしてもよく、たとえばLCD12の表示画面に文字情報やアイコン等を表示してコマンドを選択させたりすることができる。
【0031】
このように、ゲーム装置10は、2画面分の表示部となるLCD11およびLCD12を有し、いずれか一方(この実施例では、LCD12)の表示画面上にタッチパネル15が設けられるので、2画面(LCD11,12)と2系統の操作部(14,15)を有する構成となるのである。
【0032】
また、この実施例では、スティック16は、たとえば上側ハウジング13aの中央より側面寄(右寄)に設けられる収納部(収納穴)(図示せず)に収納することができ、必要に応じて取り出される。ただし、スティック16を設けない場合には、収納部を設ける必要もない。
【0033】
さらに、ゲーム装置10はメモリカード(またはゲームカートリッジ)17を含み、このメモリカード17は着脱自在であり、下側ハウジング13bの裏面ないしは上端(側面)に設けられる挿入口(図示せず)から挿入される。図1では省略するが、挿入口の奥部には、メモリカード17の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ23(図2参照)が設けられており、したがって、メモリカード17が挿入口に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア21(図2参照)がメモリカード17にアクセス可能となる。
【0034】
なお、図1では表現できないが、下側ハウジング13bの内部において、この下側ハウジング13bの音抜き孔18aと対応する位置には、右スピーカ30aおよび音抜き孔18bと対応する位置には、左スピーカ30b(図2参照)が設けられる。
【0035】
また、図1では省略するが、たとえば、下側ハウジング13bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング13bの底面側には、音量調節つまみ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【0036】
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板20を含み、この電子回路基板20にはCPUコア21等の回路コンポーネントが実装される。CPUコア21は、バス22を介してコネクタ23に接続されるととともに、RAM24、第1のグラフィック処理ユニット(GPU)26、第2のGPU27、入出カインターフエース回路(以下、「I/F回路」という。)25およびLCDコントローラ31が接続される。
【0037】
コネクタ23には、上述したように、メモリカード17が着脱自在に接続される。メモリカード17は、ROM17aおよびRAM17bを含み、図示は省略するが、ROM17aおよびRAM17bは、互いにバスで接続され、さらに、コネクタ23と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア21は、ROM17aおよびRAM17bにアクセスすることができるのである。
【0038】
ROM17aは、ゲーム装置10で実行すべきゲーム(仮想ゲーム)のためのゲームプログラム、画像(キャラクタ画像、背景画像、アイテム画像、メッセージ画像など)データおよびゲームに必要な音ないし音楽のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)17bは、そのゲームの途中データやゲームの結果データを記憶(セーブ)する。
【0039】
RAM24は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア21は、メモリカード17のROM17aに記憶されたゲームプログラム、および画像データ、音データ等のデータをRAM24にロードし、ロードしたゲームプログラムを実行する。また、CPUコア21は、ゲームの進行に応じて一時的に発生するデータ(ゲームデータやフラグデータ)をRAM24に記憶しつつゲーム処理を実行する。
【0040】
なお、ゲームプログラム、画像データおよび音データ等は、ROM17aから一度に全部、または必要に応じて部分的かつ順次的に読み出され、RAM24に記憶される。また、ROM17aが直接CPU21と接続可能であれば、メモリ空間をRAM24と重ならないように設定することができる。この場合は、ROM17aの内容はRAM24に読み出されずに、直接CPU21が読み出して処理することができる。
【0041】
GPU26およびGPU27は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア21からのグラフィックスコマンド(graphics command :作画命令)を受け、そのグラフィックスコマンドに従ってゲーム画像データを生成する。ただし、CPUコア21は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU26およびGPU27のそれぞれに送る。
【0042】
なお、GPU26およびGPU27が作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンやテクスチャ等のデータ)は、GPU26およびGPU27がそれぞれ、RAM24にアクセスして取得する。
【0043】
また、GPU26には、第1のビデオRAM(以下、「VRAM」という。)28が接続され、GPU27には、第2のVRAM29が接続される。GPU26は作成したゲーム画像データをVRAM28に描画し、GPU27は作成したゲーム画像データをVRAM29に描画する。
【0044】
VRAM28およびVRAM29は、LCDコントローラ31に接続される。LCDコントローラ31はレジスタ32を含み、レジスタ32はたとえば1ビットで構成され、CPUコア21の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ31は、レジスタ32のデータ値が「0」である場合には、VRAM28に描画されたゲーム画像データをLCD11に出力し、VRAM29に描画されたゲーム画像データをLCD12に出力する。また、LCDコントローラ31は、レジスタ32のデータ値が「1」である場合には、VRAM28に描画されたゲーム画像データをLCD12に出力し、VRAM29に描画されたゲーム画像データをLCD11に出力する。
【0045】
I/F回路25には、操作スイッチ14,タッチパネル15およびスピーカ30が接続される。ここで、操作スイッチ14は、上述したスイッチ14a,14b,14c,14d,14e,14f,14g14Lおよび14Rであり、操作スイッチ14が操作されると、対応する操作信号(操作データ)がI/F回路25を介してCPUコア21に入力される。また、タッチパネル15からの座標データがI/F回路25を介してCPUコア21に入力される。さらに、CPUコア21は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM24から読み出し、I/F回路25を介してスピーカ30から出力する。
【0046】
図3はゲーム装置10でこの発明にかかるゲームプログラムが動作しているときのRAM24のメモリマップである。メモリマップは大きく分けて、プログラム記憶領域33とデータ記憶領域34とに分かれる。そしてCPUコア21が、データ記憶領域34に記憶されたデータに基づいて、プログラム記憶領域33に記憶されたプログラムを処理することによりゲーム装置が機能する。
【0047】
プログラム記憶領域33は更に、ゲーム処理プログラム記憶領域33a,初期設定プログラム記憶領域33b,タッチパネル操作プログラム記憶領域33c,手書き入力判定プログラム記憶領域33d,手書き線データ生成プログラム記憶領域33e,アミダ線描画プログラム記憶領域33f,オブジェクト移動描画プログラム記憶領域33g,ゲームクリア判定プログラム記憶領域33hを含む。
【0048】
ゲーム処理プログラム記憶領域33aは、図4に示すような、タッチパネルで横線を描画することによって、移動オブジェクト36が移動するアミダ線状の軌道を追加してプレイするようなゲームを処理するプログラムを記憶した領域である。具体的には、ゲームスタートの処理、ゲームオーバの処理、ゲームの進行に伴うサウンドの処理や、メッセージの表示の処理などを含む。
【0049】
初期設定プログラム記憶領域33bは、図4に示すゲームをスタートさせたとき、ゲーム処理に伴うパラメータなどを初期設定するためのプログラムを記憶した領域である。例えば、図4に示すようなアミダ線状の軌道を描画するための、アミダ線のデータを初期状態に設定したり、ゲーム処理に使用されるフラグ情報の初期化などの処理を行う。
【0050】
タッチパネル操作プログラム記憶領域33cは、タッチパネル15のタッチがなされている(タッチオン)かどうかを判定し、そのタッチ位置を検出する処理を行うプログラムを記憶した領域である。具体的には、ゲームのプレイヤがタッチパネル15を指でタッチしたり、スティック16などでタッチしたとき、そのタッチ座標を2次元の座標データとして検出し、ゲームのコントロールデータとして使用することができるように処理する。このとき、タッチがなされていない(タッチオフ)との判定がされるまでは、タッチ座標は順次後述するタッチ座標バッファ34bに記憶される。
【0051】
手書き入力判定プログラム記憶領域33dは、図7ないし図9で詳述するように、タッチパネル15における描画操作がどのような操作内容であったかを判定するプログラムを記憶した領域である。手書き線データ生成プログラム記憶領域33eは、タッチパネル15の操作に応じて、描画操作の内容に基づいて、アミダ線上の軌道に追加されるべき線のデータを生成するプログラムである。アミダ線描画プログラム記憶領域33fは、移動オブジェクト36の軌道となるアミダ線のデータについて、最初から用意されていたデータと、描画操作に基づいて生成されたデータとから、LCD11およびLCD12にアミダ線を描画するプログラムを記憶した領域である。具体的には後述するアミダ線データバッファ領域34cに記憶されているデータに基づいてリアルタイムにアミダ線を描画するプログラムである。
【0052】
オブジェクト移動描画プログラム記憶領域33gは、図4に示すような移動オブジェクト36をアミダ線の軌道に沿って移動表示するプログラムを記憶した領域である。具体的には、後述するアミダ線データバッファ34cに記憶されている、アミダ線状の軌道のデータに基づいて、対応するLCD11とLCD12とで構成されるゲーム画面上の位置に、移動オブジェクトを表示するプログラムである。この処理は、ゲーム処理がLCD11とLCD12の表示にともない、所定周期(例えば1/60秒)で繰り返し処理が行われている(すなわち、表示にともなうVブランクの周期を基準にした処理の周期)ことに基づく。すなわち、オブジェクト移動描画処理が所定周期毎に繰り返し行われるので、アミダ線状の軌道のデータの読み出し位置を所定周期毎に更新することにより、移動オブジェクトが移動しているかのようにLCD11やLCD12上に表示される。
【0053】
ゲームクリア判定プログラム記憶領域33hは、移動オブジェクトがアミダ線状の軌道に沿って、正しい場所に移動したかどうかに応じて、ゲームがクリアされたかどうかを判定するプログラムを記憶した領域である。具体的には、LCD11とLCD12で構成されるゲーム画面上に予め決められているゴール位置と、アミダ線状の軌道に沿って移動してきた移動オブジェクトの位置とが一致したかどうかに応じてゲームクリアを判定する。
【0054】
データ記憶領域34は、タッチ操作フラグ領域34a,タッチ座標バッファ34b,アミダ線データバッファ34c,移動オブジェクトデータ記憶領域34d,ゴール位置データ記憶領域34eを含む。
【0055】
タッチ操作フラグ領域34aは、ゲームのプレイヤがスティック15や指でタッチパネルをタッチして、アミダ線状の軌道を描画する状態であるかどうかを示すフラグを記憶する領域である。フラグが立っていれば描画すべき状態であり、そうでなければタッチパネルで線の描画を行っていない状態であることを示す。
【0056】
タッチ座標バッファ34bは、所定周期でタッチ座標を記憶しておく領域である。すなわちゲーム処理の処理周期毎にタッチパネル操作に応じたタッチ座標を検出して記憶しておくので、複数周期に渡ってタッチ座標を記憶することにより、ゲームのプレイヤがどのような軌跡でタッチ操作を行ったのかを知ることが可能になる。
【0057】
移動オブジェクトデータ記憶領域34dは、位置データ記憶領域34daとオブジェクト画像データ記憶領域34dbとを更に含む。位置データ記憶領域34daは、移動オブジェクトが表示されるべき位置のデータを記憶した領域である。オブジェクト移動描画プログラム記憶領域33gに記憶されたプログラムは、アミダ線データバッファ領域34cに記憶された、アミダ線状の軌道に沿って移動処理されるが、そのときLCD11とLCD12とで構成されるゲーム画面のどの位置に移動オブジェクトが表示されているのかをリアルタイムに(所定周期毎に)記憶する。オブジェクト画像データ記憶領域34dbは、移動オブジェクトが表示されるべき位置に表示される、オブジェクト画像のデータを記憶した領域である。すなわち、第1GPU26および第2GPU27は、このオブジェクト画像のデータに基づいて、オブジェクトが表示されるべき位置にオブジェクトを描画するのである。
【0058】
ゴール位置データ記憶領域34eは、図4に示す移動オブジェクト36がアミダ線状の軌道に沿って最終的にたどり着くべきゲーム画面上の位置を記憶したデータである。ゲームクリア判定プログラム記憶領域33hに記憶されたプログラムは、このゴール位置に関するデータと、移動オブジェクトの位置とから、ゲームクリアを判定する。
【0059】
図4は、アミダ線を利用したゲームの概要を説明した図である。ゲームプレイヤがゲームを開始したときのゲーム画面は図4aのようになっている。LCD11には上ゲーム画面35aが表示され、予め縦線38aと横線39aによってアミダ状の軌道が描かれている。LCD12には下ゲーム画面35bが表示され、予め縦線38bは表示されているが、横線は表示されていない。また、LCD12上にはタッチパネル15が形成されている。移動オブジェクト36は、図4aに示すように、右から2本目の縦線をスタート位置として、アミダ状の軌道に沿って、上ゲーム画面35a内を一方通行で移動開始する。また下ゲーム画面35bにおいて、いずれかの縦線38bの下端部にゴール37が設定される。プレイヤは移動オブジェクト36がゴール37に移動するように、タッチパネル15を介して下ゲーム画面35bに上手く線を追加してゲームをプレイする。
【0060】
図4bでは、ゲームの進行中におけるゲーム画面35の状況を説明している。移動オブジェクトはアミダ線に沿って、図中破線矢印のように移動する。上ゲーム画面35aのアミダ線に沿った場合、移動オブジェクト36は、上ゲーム画面35a内では縦線38aの最も左端の線に移動して、下ゲーム画面35bの縦線38bの最も左端の線に移動してくる事が予測される。このため、プレイヤはスティック16などでタッチパネル15をタッチ操作し、下ゲーム画面35bにおける縦線38b同志を、横線39bを追加することによってつなぐ。こうして上手く移動オブジェクト36がゴール37の位置に到達するアミダ線状の軌道を作る。
【0061】
図4cでは、移動オブジェクト36が無事にゴール37に到達してゲームクリアとなった状況を示している。このとき、下ゲーム画面35bにはゲームクリアに関するメッセージ表示40が表示される。無事に移動オブジェクト36がゴールに到達し、ゲームクリアとなった後は、別のゲーム画面において、同様のゲームをプレイすればよい。
【0062】
あるいは、現在のアミダ状の軌道を全て残したまま、移動オブジェクト36を再び上ゲーム画面35a上の縦線38aにおいて、先のスタート位置とは別の位置から移動を開始するように設定してもよい。また、ゴール37も別の位置に設定する。こうすることで、先のゲームで追加された下ゲーム画面35bの横線39bも考慮して、プレイヤは横線をさらに追加しなければならない。こうしてゲームの難易度が上がっていき、その興趣性も向上する。先のゲームで追加されたアミダ線を残したままゲームクリアを繰り返すと、下ゲーム画面35bには多数の横線が描画されることとなるので、繰り返しの回数とゲームクリアの回数とが多ければ多いほど高得点となるようにゲームを構成すれば、よりゲームへの挑戦に対する興味が増すことになる。
【0063】
図4dでは、移動オブジェクト36が無事にゴール37に到達できなかった状態の一例を示す。このとき、ゲームクリアできなかったことを示す表示41が下ゲーム画面35bに表示される。図4bでは、下ゲーム画面35bにおいて、横線が不適切に追加されたため、移動オブジェクト36が、縦線38bの右端の下端に到達してしまった状態を示している。
【0064】
図5は、図4aに示すゲーム開始時における、アミダ線データバッファ34cの初期状態を図式化したものである。42aで示す範囲が図4における上ゲーム画面35aに対応し、42bで示す範囲が図4における下ゲーム画面35bに対応する。図5に示すデータをもとに、アミダ線描画プログラム33fが、初期画面として図4aのようなゲーム画面のアミダ線を描画する。タッチパネルが形成されない上ゲーム画面35aに対応する領域42aには、横線39aのデータがあらかじめ用意されている。
【0065】
図6は、図4bのように、ゲームプレイ中における、アミダ線データバッファ34cの状態を図式化したものである。ゲームプレイ中においては、下ゲーム画面35bにもともと用意されていたアミダ線状の軌跡に横線が追加されていくので、図5の領域42bに対応する領域42b’では、横線のデータが追加されている。
【0066】
そして、オブジェクト移動描画プログラム記憶領域33gは図5または図6に図式化されたデータに基づいて、移動オブジェクト36を移動させるのである。
【0067】
図7ないし図9は、プレイヤがタッチパネル15をタッチ操作したとき、その状況に合わせてどのように横線39bを追加描画していくかを状況別に分けて解説した図である。以下はそれぞれの条件に対応した、具体的な処理の一例である。
【0068】
図7は、タッチパネル15を操作したとき、図7aに示すように、タッチオンしてからタッチオフするまでのタッチ座標が、その軌跡50aのように、隣り合う縦線38bに対して、どちらの縦線にも交差せず、その中間点をまたいでいるときの処理について解説した図である。なお下記の解説において、LCD11または12の表示において、その横方向をX軸、縦方向をY軸と定義する。
【0069】
タッチオンがあった点、すなわち描画開始点51の座標を(Xs,Ys)とし、その描画終了点52の座標を(Xt,Yt)とする。このとき、所定の隣接する縦線、例えば縦線1(X座標:X1)と縦線2(X座標:X2)の間に、描画開始点51と描画終了点52とが両方含まれているかどうかを判定する。
【0070】
次に、
Xt−Xs>(X2−X1)/2 (数1)
を満たすかどうかを判定する。以上の条件を満たせば、隣り合う縦線38bに対して、どちらの縦線にも交差せず、その中間点をまたいでいることが判定される。なお、数1以外にも中間点をまたいでいるかどうかを判定する方法が考え得るが、自明の事柄であるので、ここでは説明しない。数1を満たさないときには、タッチパネルの横線描画操作が短すぎるとして、何も横線が入力されない。
【0071】
軌跡50aが隣り合う縦線のいずれとも交差しないが、その中間点をまたいでいるときは、追加する横線の端点(始点と終点)を図7bのように定義する。すなわち、描画開始点51と描画終了52のそれぞれに最も近い縦線上に、追加する横線の端点をそれぞれ定義する。具体的には、一方の端点(始点)51’は、
(X1,Ys) (数2)
とされ、もう一方の端点(終点)52’は、
(X2,Yt) (数3)
とされる。そして数2と数3で定義される直線がアミダ線の横線として図7cに示すように追加される。
【0072】
実際には、数1を含む上述の判定は、手書き入力判定プログラム記憶領域33dに記憶されたプログラムによって処理される。そして数2の始点の情報と、数3の終点の情報とに基づき、アミダ線描画プログラム記憶領域33fに記憶されたプログラムが、アミダ線データバッファ34cに追加の横線39bを描画する。
【0073】
図8は、タッチパネル15を操作したとき、図8aに示すように、タッチオンしてからタッチオフするまでのタッチ座標が、その軌跡50bのように、縦線38bのいずれか1本と交差したときの処理について解説した図である。
【0074】
まず、所定の隣接する縦線、例えば縦線1(X座標:X1)と縦線2(X座標:X2)の間に、描画開始点51と描画終了点52とが両方含まれているかどうかについての、図7の場合と同様の条件判定を行う。そこで含まれていないと判断されたとき、軌跡50bは、いずれかの縦線と交差したことになる。次に、描画開始点51と描画終了点52との間に縦線が1本だけ挟まれているかどうかを判定する。
【0075】
描画開始点51と描画終了点52との間に縦線が1本だけ挟まれていると判定されたことに続いて、軌跡50bと交差する縦線(図8の場合では縦線2)との交点53の座標を求める。交点は、描画開始点51と描画終了点52とを結ぶ直線において、交差する縦線のX座標(図8においては、X2)と、このX座標に対応するY座標を算出すればよい。算出されたY座標をY2としたとき、交点53の座標は、
(X2,Y2) (数4)
と表すことができる。
【0076】
次に、判定点54(図8bを参照)を求める。判定点54は、描画開始点51と描画終了点52のうち、交差する縦線(図8では縦線2)に対して遠い方とする。図8においては、描画開始点51の方が描画終了点52よりも、縦線2から遠いので、描画開始点51が判定点54(Xd,Yd)として選択される。
【0077】
そして、判定点54と交点53とを結ぶ直線が、図7の判定条件と同様に、となり合う縦線の中間点をまたいでいるかどうかを判定する。図8bの場合では、
X2−Xd>(X2−X1)/2 (数5)
を満たすかどうかを判定すればよい。これを満たさなければ、横線は入力されない。
【0078】
図8に示すような、タッチオンしてからタッチオフするまでの軌跡50bが、縦線38bのいずれか1本と交差したときには、追加される横線の端点は、図8bのように定義される。すなわち、追加される端点の一方は、交点53であり、一方は、判定点54に最も近い縦線上に選ばれる。図8bにおいては、交点53は数4で定義されており、これが一方の端点(終点)となる。もう一方の端点(始点)54’は、判定点54が描画開始点51であることから、
(X1,Yd) (数6)
となる。そして数4と数6で定義される直線がアミダ線の横線として図8cに示すように追加される。なお、数6において、もし描画終了点52が判定点であれば、交点53に対するもう一方の端点は、(X2,Yd)と定義される。
【0079】
図9は、タッチパネル15を操作したとき、図9aに示すように、タッチオンしてからタッチオフするまでのタッチ座標が、その軌跡50cように、縦線38bのいずれか2本以上と交差したときの処理について解説した図である。すなわち、描画開始点51と描画開始点52との間に、2本以上の縦線が存在していることが検出されれば、図9の状態である事を示す。
【0080】
この場合は、縦線との交点のうち、描画開始点51に近いものから2つを選んで、それぞれを横線の端点とする。例えば、図9では、描画した軌跡50cは、交点55で縦線1と、交点56で縦線2と、そして交点57で縦線3と交差している。この場合は、描画開始点51と描画終了点52とを結ぶ直線と縦線1との交点55を横線の始点とし、縦線2との交点56を横線の終点とする。
【0081】
以上は、縦線と描画した軌跡50との関係の判定と、その処理方法の一例に過ぎず、他にも縦線と描画した軌跡との関係を調べる方法は考え得るので、この判定方法に限定されるべきものではない。
【0082】
図10は、タッチパネル上にアミダ線上の軌道に横線を追加し、オブジェクトをゴールに導く、図4に示すようなゲームについての、メインのゲーム処理に関するフローチャートである。ステップ10において、まず図4に示すゲームをスタートさせたとき、ゲーム処理に伴うパラメータなどを初期設定する。具体的には、ゲーム処理プログラム記憶領域33aに記憶されたプログラムに基づいて、図4に示すようなアミダ線状の軌道を描画するための、アミダ線のデータを初期状態に設定したり、プレイするゲームのステージを選択したり、タッチパネルの初期化などの処理を行う。
【0083】
次にステップ11に進み、初期設定プログラム記憶領域33bに記憶されたプログラムに基づいて、選択したステージに対応したデータの初期設定を行う。すなわち、選択されたゲームに関して、アミダ線データを描画用データにコピーしたり、タッチ中フラグをオフしたり、横移動中フラグをオフしたりする。具体的には、メモリカード17にもともと用意されていたアミダ線のデータを、アミダ線データバッファ34cにコピーする。そして、選択されたステージに応じたゲーム処理を行うためのフラグをオフにしておく。
【0084】
アミダ線データが描画用データにコピー、すなわちアミダ線データバッファ34cにコピーされたことに基づいて、ステップ12において、LCD11およびLCD12にアミダ線を描画する。具体的には、アミダ線データバッファ領域34bに記憶されたデータに基づいて、アミダ線描画プログラム記憶領域33fに記憶されたプログラムが、アミダ線を描画処理する。そしてステップ13に進み、描画されたアミダ線に対して、プレイヤのタッチパネル操作に基づいて、横線を追加していく処理を行う。この処理は図11において詳述される。
【0085】
続いて、アミダ線状の軌道に沿って、ステップ14において、オブジェクトを移動表示処理していく。この処理は図13において詳述される。そしてステップ15において、オブジェクトがゴール位置に到達したかどうかを判断する。すなわち、図4において、下ゲーム画面35bのアミダ線の縦線が尽きるところまでオブジェクトが移動したかどうかを判定する。
【0086】
ステップ15でNoと判定されるとステップ12に戻るので、、ステップ12からステップ15までの処理は、繰り返し順番に行われる。すなわち、リアルタイムに手書き入力を行いながら、オブジェクトがアミダ線の軌道上を移動するようにゲームを処理することができる。一方、ステップ15において、オブジェクトがゴール位置まで移動したと判定されると、続くステップ16において、そのゴール位置が正しいかどうかを判定する。具体的にはゲームクリア判定プログラム記憶領域33hに記憶されたプログラムに基づき、ゴール位置データ記憶領域34eに記憶されたデータを参照して処理される。ステップ16でゴール位置が正しくないと判定されたときには、ステップ17に進み、ゲームを終了するかどうかを判定する。
【0087】
ステップ17において、ゲームを終了すると判定されたときにはこのままゲームを終了する。そうでなければステップ10に戻り、新たにゲームのプレイをやり直すべく、ゲーム処理の初期設定を行い、別のゲームをプレイする。
【0088】
ステップ16において、ゴール位置が正しいと判定されたときには、勿論このままゲームクリアと判定しても良い。しかしながら、一つのオブジェクトについて、横線を追加したことにより、アミダ線の描画用データは複雑化しているので、このデータを基にさらに移動オブジェクトをゴールに誘導すれば、よりゲームのプレイ自体も複雑化して面白い。それ故、ゴール位置が正しいと判定されたときには、再びステップ11に戻る。ステップ10のように完全に初期化されるステップには戻らず、今までプレイしたアミダ線の描画データを利用して、再びゲーム処理を行うのである。
【0089】
図11は、図10におけるステップ13をより詳しく説明したフローチャートである。まずステップ21において、タッチパネル入力があるかどうかを検出する。具体的にはタッチパネル操作プログラム記憶領域33cに記憶されたプログラムに基づいて、タッチ入力が検出される。ここでタッチ入力があると判定されたときには、ステップ22において、現在タッチ中フラグがオンであるかを確認する。すなわち、タッチ操作フラグ記憶領域34aにおいて、タッチ中フラグが立っているかどうかを確認する。もし立っていなければ、ステップ23において、タッチ中フラグをオンにする。言い換えればタッチ操作フラグ記憶領域34aにタッチ中であることを示す情報を書き込むのである。そしてステップ24に進む。
【0090】
一方、ステップ22において、タッチ中フラグがオンであれば、そのままステップ24に進む。ステップ24では、タッチ位置に基づいて、描画用データに手書き線を追加する。すなわち、タッチ操作フラグ記憶領域34aにおいてタッチ中フラグがオンであることは、アミダ線状の軌道を描画する状態であるかどうかを示すフラグがオンであるので、タッチパネル操作プログラム記憶領域33cに記憶されたプログラムに基づいて、手書き線、つまり描画の軌跡50が入力される。
【0091】
図10の処理で、ステップ12ないしステップ15が繰り返し処理されるので、ステップ24が実行されれば、図10のステップ14の処理に進む。一方ステップ21でタッチ入力が無いと判定されれば、ステップ24の処理が終了したか、あるいは未だタッチ入力を行っていない事が分かる。そこでステップ25に進み、タッチ中フラグがオンかどうかを判定する。
【0092】
ステップ25でタッチ中フラグがオンであることは、未だアミダ線状の軌道を描画する状態であることを示すので、ステップ26に進みタッチ中フラグをオフにする。すなわち、タッチ操作フラグ記憶領域34aに、タッチ中でないことを示す情報を書き込む。一方、ステップ25でタッチ中フラグがオンでないと判定されれば、これは未だタッチ入力を行っていない状況であるので、ステップ14に進み、ゲーム処理が実行される。
【0093】
ステップ26において、タッチ中フラグがオフされると、タッチパネルを介したアミダ線の描画操作が終わったことが分かるので、ステップ27の判定処理に進む。ステップ27は図12において詳述される。
【0094】
図12は、図11のステップ27を更に詳しく説明したフローチャートである。タッチパネル操作によって軌跡が入力されると、まずステップ31に進み、手書き線と縦線とが1本も交差していないのかどうかを判定する。すなわち、図7で解説された条件に該当する。ここで、手書き線と縦線とが1本も交差していないと判定されれば、ステップ32に進み、手書き線の始点と終点とを結ぶ線分が縦線の中間点をまたいでいるかどうかを判定する。ここで、中間点をまたいでいると判定されれば、ステップ33に進み、手書き線の始点と終点とをそれぞれ一番近い縦線上まで移動させ、移動後の線上値を結ぶ線分を追加アミダ線とする。なお、ステップ32で中間点をまたいでいないと判定されたときには、入力ミスとして横線は追加されず、ステップ39に進む。
【0095】
一方、ステップ31において、Noすなわち、縦線と手書き線とが交差していると判定されれば、ステップ34に進み、手書き線と縦線が1本だけ交差しているかどうかをさらに判定する。すなわち図8で解説された条件に該当する。ここで、1本だけ交差していると判定されれば、ステップ35に進み、判定点と交点とを結ぶ線分が、縦線の中間点をまたいでいるかどうかを判定する。ここでまたいでいると判定されれば、ステップ36に進み、判定点を一番近い縦線上まで移動させた点と交点とを結ぶ線分を追加アミダ線とする。なお、ステップ35で中間点をまたいでいないと判定されたときには、入力ミスとして横線は追加されず、ステップ39に進む。
【0096】
ステップ34において、手書き線と縦線が1本だけ交差しているかどうかの判定でNo、すなわち手書き線と縦線が複数交差していると判定されれば、ステップ37に進み、手書き線と縦線の交点のうち、最初に交差した2つの交点を結ぶ線分を追加アミダ線とする。
【0097】
これら一連の処理は、具体的には、手書き入力判定プログラム記憶領域33dに記憶されたプログラムが、図7ないし図9で解説した内容を処理することによって行われている。
【0098】
こうして、ステップ33、ステップ36およびステップ37でそれぞれの判定条件に基づいて定義された追加アミダ線は、ステップ38で、アミダ線データに追加される。具体的には手書き線データ生成プログラム記憶領域33eに記憶されたプログラムに基づいて、追加すべき横線が実際にアミダ線として追加更新される。
【0099】
続いて、判定処理に基づいて新たに更新されたアミダ線データは、ステップ39において描画用データにコピーされる。すなわち、アミダ線データバッファ領域34cに描画データとして記憶される。
【0100】
次に図10のステップ14について詳述する。図13において、まず、現在オブジェクトが縦線沿いか横線沿いか、どちらに沿って移動中であるかを確認するため、ステップ41において、横移動中フラグがオンであるかどうかを確認する。ここで横移動中で無ければ、ステップ42に進み、縦線上を下方向に移動する。
【0101】
次にステップ43に進み、移動した位置が、横線が伸びる位置であるかどうかを判定する。ここでYesであれば、ステップ44に進み、横移動中フラグをオンにする。そして図10のメインフローに戻り、ステップ15に進む。もしステップ43でNoと判定されれば、次回の処理周期では縦線上の移動処理をそのまま続けるので、直接図10のメインフローに戻る。
【0102】
ステップ41で横移動中フラグがオンであると判定されれば、ステップ45に進み、横線上を移動する。次にステップ46に進み、移動したところが縦線上かどうかを判定する。ここでYesであれば、ステップ47に進み、横移動中フラグをオフにする。そして図10のメインフローに戻りステップ15に進む。もしステップ46でNoと判定されれば、次回の処理周期では横線上の移動処理をそのまま続けるので、直接図10のメインフローに戻る。
【0103】
なお、図10のフローでは、ステップ11からステップ15の処理を繰り返し処理するようになっているので、オブジェクトがLCD11やLCD12を移動表示しながら、一方で横線を追加描画していくゲームが実現できる。この場合、迫り来るオブジェクトに焦燥感を感じながら、横線を追加描画するので、興趣性の高いゲームを提供できる。
【0104】
しかしながら、例えば、全ての横線を描画し終わってから、オブジェクト移動処理を開始してもよい。このような変形例として、図14では別のゲームの例を説明している。図14aは、ゲーム開始直後のゲーム画面の例である。上ゲーム画面35aには複数の移動オブジェクト61,62が、別々の縦線38a上端部に配置されている。また同じく上ゲーム画面35aには予め横線39aが描かれている。
【0105】
一方下ゲーム画面35bには、横線が全く描かれておらず、縦線38bのみが表示されている。また、その下端部にはゴールとして61’と62’が用意される。このゲームでは複数のオブジェクト61,62はそれぞれ同じ画像のゴール61’,62’にゴールしなければならないので、図14aの状態では、ゲームをクリアすることができない。
【0106】
そこでまず、図14bのように、横線39bを下ゲーム画面35bに描画して、複数のオブジェクト61,62が対応するゴールに移動できるようなアミダ線状の軌道を作成する。作成し終わったら、オブジェクトの移動を開始させる。図14cはその途中経過の図である。アミダくじのルールに従えば、図14cの軌道であれば、無事に移動オブジェクトそれぞれのゴールに到達できることが分かる。そして図14dのように、ゴールすればゲームクリアとなる。
【0107】
図4のゲームと同様に、無事にクリアしたあと、描画した軌道をそのままにしておいて、別のオブジェクトを配置位置を変えて準備すると、このゲームは極端に難易度が高くなる。そのためより興趣性の高いゲームを提供できるようになる。
【0108】
図15は図14のゲーム処理に関するフローチャートである。まず、ステップ60で図4に解説したゲームのメインフローと同様に、初期設定を行う。続いて、ステップ61において、複数のオブジェクトを上ゲーム画面35a上の縦線上端部に配置するとともに、下ゲーム画面35bの縦線下端部に、複数のオブジェクトそれぞれに対応するゴールを配置する。
【0109】
その後、ステップ62に進みアミダ画面を表示する。続いてステップ63においてアミダ線追加処理を行う。この内容は図11で詳述したものと同じであるため、説明は省略する。このステップ62とステップ63の処理は続くステップ64において、アミダ線の描画が終わったと判断されるまでは繰り返し行われるので、表示されるアミダ線を見ながら、下ゲーム画面35b上に横線を追加することができる。
【0110】
ステップ64において、アミダ線の描画が終了したと判断されれば(例えば、図示しないアイコンなどをタッチして、描画処理が終了したことをプレイヤが入力するなどに基づいて判断)、ステップ65に進み、上ゲーム画面35aに複数配置されたオブジェクトそれぞれについて、オブジェクトの移動処理を行う。ここのオブジェクトについて行われる移動処理は、図13で詳述したものと同じであるため、説明を省略する。
【0111】
ステップ65の移動処理は、続くステップ66において、全てのオブジェクトがゴール位置(下ゲーム画面35bの縦線下端部)まで到達したと判断されるまで、繰り返し行われる。そしてステップ67に進み、全てのオブジェクトが、正しいゴール位置に到達したかどうかを判定する。ここで正しいと判定されれば、今まで描画されたアミダ線をそのまま残して、新しくゲームをスタートするべく、ステップ61に戻る。
【0112】
一つでもオブジェクトのゴール位置が誤っていた場合には、ゲームがクリアできなかったと判断され、ステップ68に進み、ゲームを終了させるかどうかを判断する。ここでゲーム終了であると判断されればゲームプレイが終了し、そうでなければ、ステップ60に戻り、新しくゲームプレイをやり直す。
【図面の簡単な説明】
【0113】
【図1】この発明のゲーム装置の一例を示す外観図である。
【図2】図1のゲーム装置の電気的な構成を示す内部ブロック図である。
【図3】図2に示すRAMのメモリマップである。
【図4】この発明にかかるゲームの一例を示す図である。
【図5】図2に示すRAMに記憶されるゲーム開始時点のアミダ線データの図である。
【図6】図5のアミダ線データの状態からある程度ゲームが進んだ状態の、アミダ線データの図である。
【図7】図5のアミダ線データに横線を追加するときの条件の一つに関する概念図である。
【図8】図7とは別の条件に関する概念図である。
【図9】図7とはさらに別の条件に関する概念図である。
【図10】図4で説明されたゲームのメインフローチャートである。
【図11】図10のアミダ線追加処理に関するフローチャートである。
【図12】図10の判定処理に関するフローチャートである。
【図13】図10のオブジェクト移動処理に関するフローチャートである。
【図14】この発明にかかる別のゲームの例を示す図である。
【図15】図14で説明されたゲームのメインフローチャートである。
【符号の説明】
【0114】
10 …ゲーム装置
11 …LCD11(上画面)
12 …LCD12(下画面)
15 …タッチパネル
17 …メモリカード
21 …CPU
24 …RAM
【技術分野】
【0001】
この発明はゲーム装置およびゲームプログラムに関し、特に例えば、タッチパネルのタッチ操作に基づいて、オブジェクトの移動経路を追加し、オブジェクトを所望の位置に導くようなパズルゲームをプレイするゲーム装置およびゲームプログラムに関する。
【背景技術】
【0002】
古くから、アミダくじを引く遊びが知られている。アミダくじでは、複数の縦線がまず紙の上などに平行に描かれ、一方の端部にはあたりやはずれなど、何らかの特典にかかる記号や情報を記載し、この記載が見えないように隠しておく。そして、平行する複数の縦線の隣合う2本の直線に端部が接するように、横線を無秩序に複数描いた上で、特典が記載された端部とは反対側の端部において、いずれかの縦線をくじの参加者に選ばせる。このとき横線を無秩序に描いたことにより、横線を描いた人間や特典を記載した人間ですら、どの縦線の端部が特典に結びつくか予測することができないので、公平なくじを引くことができる。
【0003】
特許文献1に記載の技術では、このようなアミダくじの原理をビデオゲームに応用した技術を開示している。アミダくじの線を、水滴がたどる経路に設定し、複数の縦経路の上方端部からは水滴が注入され、下方端部には種子が表示されている。プレイヤは横線にあたる経路を、縦線に適宜追加或いは削除し、水滴が種子にうまく落下するように、経路を作っていく。このとき、下方端部には複数の種子が表示され、一方上方端部においては、水滴はどの経路に注入されるかが分からないので、上手く経路を設定しないと、ゲームクリアができないように配慮されている。
【0004】
【特許文献1】特開1201−739
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の技術では、アミダくじのような経路を通過してきた水滴が、種子に落下した回数と、この回数に応じた種子の変化、すなわち発芽して成長することが重視されており、アミダくじの本来の楽しみである、横線の追加と、予測の困難性をより楽しむことについては、配慮されていなかった。また、横線の追加については、カーソルを操作部によって動かし、経路の追加箇所に持っていくよう構成されており、本来のアミダくじのように、横線を描くことそれ自体の楽しみが再現されていなかった。すなわち、一般的なパソコンにおける入力と同じ操作を強いられるので、プレイヤはゲーム本来の楽しみを阻害される恐れがあった。
【0006】
それ故にこの発明の主たる目的は、アミダくじの興趣性を採り入れ、かつタッチパネル操作を組み合わせた、新しいゲームを提供することである。
この発明のその他の目的は、タッチパネル操作を上手く行うことができるように、タッチパネル操作特有の操作誤差を吸収した、新しいゲームを提供することである。
【課題を解決するための手段】
【0007】
請求項1の発明は、表示手段(図1および図2の11,12:実施例で相当する参照番号。以下同様)を備え、表示手段に重ねて形成されたタッチパネル(15)を操作してプレイするゲーム装置(10)であって、線データ記憶手段(24)と、線描画手段(21,26,27)と、線データ入力手段(15,21)と、線データ判定追加手段(21,24)と、オブジェクト移動表示手段(21,24,26,27,28,29,31,32)と、ゴール判定手段(21,24)とを備える。
【0008】
線データ記憶手段は、複数の相互に交わらない関係にある第1の線と、これら第1の線の内、隣合う線同志を結び、かつその交点を端部とした複数の第2の線から成るアミダ線状の線データを記憶している。線描画手段は、表示手段に、線データ記憶手段に基づいて、アミダ線状の線画像を表示する。線データ入力手段は、タッチパネルを連続的にタッチした軌跡に基づいて、手書き線データを入力する。線データ判定追加手段は、入力された手書き線データとアミダ線状の線データとの関係を判定し、判定に応じた線データを線データ記憶手段に追加記憶する。オブジェクト移動表示手段は、少なくとも一つのオブジェクトを、線データに基づいて、一方通行で表示手段上を移動表示させる。そして、ゴール判定手段は、オブジェクト移動表示手段に応じて、オブジェクトが、所定の表示位置に到達したかどうかを判定する。
【0009】
請求項2の発明は、請求項1に従属し、線データ判定追加手段は、手書き線データの開始位置と終了位置とが、隣り合う2つの第1の線の中間線をまたぐ位置関係でないときには、手書き線データの入力が無いと判定し、線データを追加記憶しない。
【0010】
請求項3の発明は、請求項1に従属し、線データ判定追加手段は、手書き線データの開始位置と終了位置とが、第1の線のいずれか1本と交差している位置関係であるときには、交点を、追加する線データの一方の端部とし、開始位置と終了位置のいずれか一方であって、該交点から遠い側の位置に最も近い第1の線上の位置を、他方の端部とする。
【0011】
請求項4の発明は、請求項1に従属し、線データ判定追加手段は、手書き線データの開始位置と終了位置とが、第1の線の2本以上と交差する位置関係であるとき、開始位置からみて、一つ目の交点を、追加する線データの一方端部とし、二つ目の交点を、多方端部とする。
【0012】
請求項5の発明は、表示手段と、表示手段に重ねて形成されたタッチパネルと、線データ記憶手段とを備えたゲーム装置であって、線データ記憶手段は、複数の相互に交わらない関係にある第1の線とこれら第1の線の内隣合う線同志を結び、かつその交点を端部とした複数の第2の線から成るアミダ線状の線データを記憶したゲーム装置を、タッチパネルを操作してプレイするゲーム装置として機能させるゲームプログラムであって、ゲーム装置のコンピュータに、線描画ステップ(33f,34c,S12)と、線データ入力ステップ(33c,34a,34b,S13)と、線データ判定追加ステップ(33d,33e,34c,S13)と、オブジェクト移動表示ステップ(33g,34d,S14)と、ゴール判定ステップ(33h,34e,34d,S15,S16)とを実行させる。
【0013】
線描画ステップは、表示手段に、線データ記憶手段に基づいて、アミダ線状の線画像を表示する。線データ入力ステップは、タッチパネルを連続的にタッチした軌跡に基づいて、手書き線データを入力する。線データ判定追加ステップは、入力された手書き線データとアミダ線状の線データとの関係を判定し、判定に応じた線データを線データ記憶手段に追加記憶する。オブジェクト移動表示ステップは、少なくとも一つのオブジェクトを、線データに基づいて、一方通行で表示手段上を移動表示させる。ゴール判定ステップは、オブジェクト移動表示手段に応じて、オブジェクトが、所定の表示位置に到達したかどうかを判定する。
【0014】
請求項6の発明は、請求項5に従属し、線データ判定追加ステップは、手書き線データの開始位置と終了位置とが、隣り合う2つの第1の線の中間線をまたぐ位置関係でないときには、手書き線データの入力が無いと判定し、線データを追加記憶しない。
【0015】
請求項7の発明は、請求項5に従属し、線データ判定追加ステップは、手書き線データの開始位置と終了位置とが、第1の線のいずれか1本と交差している位置関係であるときには、交点を、追加する線データの一方の端部とし、開始位置と終了位置のいずれか一方であって該交点から遠い側の位置に最も近い第1の線上の位置を、他方の端部とする。
【0016】
請求項8の発明は、請求項5に従属し、線データ判定追加ステップは、手書き線データの開始位置と終了位置とが、第1の線の2本以上と交差する位置関係であるとき、開始位置からみて、一つ目の交点を、追加する線データの一方端部とし、二つ目の交点を多方端部とする。
【発明の効果】
【0017】
請求項1に記載の発明によれば、表示画面上で実際に描くように横線を追加でき、さもアミダくじを描いているような楽しみをユーザに提供できる。また、手書きされた線と縦線との関係に応じて、最終的に追加される横線が描画されるので、タッチパネルの操作特有の操作感とのずれを吸収でき、描画の操作感を向上できる。さらに、アミダの線上をオブジェクトが移動しており、このオブジェクトを正しくゴールに導くように横線を追加しなければならないので、アミダの作画にオブジェクトの移動を加味した新しいゲームを提供することができる。
【0018】
請求項2に記載の発明によれば、請求項1の発明に加えて、誤入力と考え得るような、非常に短い線の入力があったとき、これが実際に描画されることが無いので、タッチパネルの操作感をより向上することができる。
請求項3に記載の発明によれば、請求項1の発明に加えて、必ずしも正確に縦線と交わるように横線を描画することなく、効率的に横線を追加することができるので、さらにタッチパネルの操作感を向上することができる。
請求項4に記載の発明によれば、請求項1の発明に加えて、縦線2本に交差するようタッチ操作を行ったつもりが、タッチ入力を急いで行うなど、3本以上の縦線と交差してしまう誤操作を行っても、縦線2本に対して横線が追加されるので、さらにタッチパネルの操作感を向上することができる。
【0019】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0020】
図1を参照して、この発明の一実施例であるゲーム装置10は、第1の液晶表示器(LCD)11および第2のLCD12を含む。このLCD11およびLCD12は、所定の配置位置となるようにハウジング13に収納される。この実施例では、ハウジング13は、上側ハウジング13aと下側ハウジング13bとによって構成され、LCD11は上側ハウジング13aに収納され、LCD12は下側ハウジング13bに収納される。したがって、LCD11とLCD12とは縦(上下)に並ぶように近接して配置される。
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイなどを用いるようにしてもよい。
【0021】
図1からも分かるように、上側ハウジング13aは、LCD11の平面形状よりも大きな平面形状を有し、一方主面からLCD11の表示面を露出するように開口部が形成される。一方、下側ハウジング13bは、その平面形状が上側ハウジング13aと同程度に形成され、横方向の略中央部にLCD12の表示面を露出するように開口部が形成される。また、上側ハウジング13aには、音抜き孔18が形成される。音抜き穴18は上側ハウジングに形成されたLCD11を挟むように、右側に音抜き穴18aと左側に音抜き穴18bが対称に形成される。またハウジング13には操作スイッチ14(14a,14b,14c,14d,14e,14fおよび14g,14L,14R)および電源スイッチ21が配置される。
【0022】
また、上側ハウジング13aと下側ハウジング13bとは、上側ハウジング13aの下辺(下端)と下側ハウジング13bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD11の表示面とLCD12の表示面とが対面するように、上側ハウジング13aを回動させて折りたたんでおけば、LCD11の表示面およびLCD12の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング13aと下側ハウジング13bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング13を形成するようにしてもよい。
【0023】
操作スイッチ14は、方向指示スイッチ(十字スイッチ)14a,スタートスイッチ14b、セレクトスイッチ14c、動作スイッチ(Aボタン)14d、動作スイッチ(Bボタン)14e、動作スイッチ(Xボタン)14f、動作スイッチ(Yボタン)14g、動作スイッチ(Lボタン)14Lおよび動作スイッチ(Rボタン)14Rを含む。スイッチ14aは、下側ハウジング13bの一方主面において、LCD12の左側に配置される。また、スイッチ14bないし14gは、下側ハウジング13bの一方主面において、LCD12の右側に配置される。さらに、スイッチ14Lおよびスイッチ14Rは、それぞれ、下側ハウジング13bの上端(天面)の一部において、上側ハウジング13aとの連結部以外に当該連結部を挟むように、左右に配置される。
【0024】
方向指示スイッチ14aは、ディジタルジョイスティックとして機能し、4つの押圧部の1つを操作することによって、プレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。スタートスイッチ14bは、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止(Pause)したりする等に用いられる。セレクトスイッチ14cは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【0025】
動作スイッチ14dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器またはコマンドの選択および決定等を指示することができる。動作スイッチ14eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ14cで選択したゲームモードの変更やAボタン14dで決定したアクションの取り消し等のために用いられる。
【0026】
動作スイッチ14eすなわちXボタン、および動作スイッチ14fすなわちYボタンは、プッシュボタンで構成され、プッシュボタンAとプッシュボタンBだけでは、ゲーム進行ができないときに、補助的な操作ボタンとして用いられる。もちろん、ゲームプレイにおいてXボタンとYボタンを必ずしも使用しなくてよい。
【0027】
動作スイッチ14L(左押しボタン)および動作スイッチ14R(右押しボタン)は、プッシュボタンで構成され、左押しボタン(Lボタン)14Lおよび右押しボタン(Rボタン)14Rは、Aボタン14dおよびBボタン14eと同様の操作に用いることができ、また、Aボタン14dおよびBボタン14eの補助的な操作に用いることができる。
【0028】
また、このゲーム装置10はタッチパネルを用いたゲーム装置であり、LCD12の上面には、タッチパネル15が装着される。タッチパネル15としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル15は、その上面をスティック16ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック16等」という場合がある。)で、押圧したり撫でたり(触れたり)することにより操作すると、スティック16等の座標位置を検出して座標データを出力する。
【0029】
なお、この実施例では、LCD12(LCD11も同じ、または略同じ。)の表示面の解像度は228dot×192dotであり、タッチパネル15の検出精度も表示画面に対応して228dot×192dotとしてあるが、タッチパネル15の検出精度は表示画面の解像度よりも低くてもよく、高くてもよい。
【0030】
この実施例では、たとえばタッチパネル15の設けられるLCD12には、プレイヤに見せかつ操作させるためのゲーム画面が表示され、LCD11にはプレイヤに見せるためのゲーム画面が表示される。具体的には、LCD11には横線と縦線で形成されたアミダくじのような軌道上をオブジェクトが移動してくる画像が表示される。LCD12に表示されるゲーム画面には、未完成のアミダくじのように、縦線のみが表示されており、プレイヤはLCD12に表示された縦線に対して、スティック16等で直接触れるようにしてタッチパネル15上に横線を描くような操作をする。こうして、LCD11に表示される軌道の続きをLCD12に描いて、移動してくるオブジェクトを所定位置に導くための軌道を作るのである。なお、LCD12は、ゲームの種類に応じてその他各種の入力指示を行うようにしてもよく、たとえばLCD12の表示画面に文字情報やアイコン等を表示してコマンドを選択させたりすることができる。
【0031】
このように、ゲーム装置10は、2画面分の表示部となるLCD11およびLCD12を有し、いずれか一方(この実施例では、LCD12)の表示画面上にタッチパネル15が設けられるので、2画面(LCD11,12)と2系統の操作部(14,15)を有する構成となるのである。
【0032】
また、この実施例では、スティック16は、たとえば上側ハウジング13aの中央より側面寄(右寄)に設けられる収納部(収納穴)(図示せず)に収納することができ、必要に応じて取り出される。ただし、スティック16を設けない場合には、収納部を設ける必要もない。
【0033】
さらに、ゲーム装置10はメモリカード(またはゲームカートリッジ)17を含み、このメモリカード17は着脱自在であり、下側ハウジング13bの裏面ないしは上端(側面)に設けられる挿入口(図示せず)から挿入される。図1では省略するが、挿入口の奥部には、メモリカード17の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ23(図2参照)が設けられており、したがって、メモリカード17が挿入口に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア21(図2参照)がメモリカード17にアクセス可能となる。
【0034】
なお、図1では表現できないが、下側ハウジング13bの内部において、この下側ハウジング13bの音抜き孔18aと対応する位置には、右スピーカ30aおよび音抜き孔18bと対応する位置には、左スピーカ30b(図2参照)が設けられる。
【0035】
また、図1では省略するが、たとえば、下側ハウジング13bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング13bの底面側には、音量調節つまみ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【0036】
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板20を含み、この電子回路基板20にはCPUコア21等の回路コンポーネントが実装される。CPUコア21は、バス22を介してコネクタ23に接続されるととともに、RAM24、第1のグラフィック処理ユニット(GPU)26、第2のGPU27、入出カインターフエース回路(以下、「I/F回路」という。)25およびLCDコントローラ31が接続される。
【0037】
コネクタ23には、上述したように、メモリカード17が着脱自在に接続される。メモリカード17は、ROM17aおよびRAM17bを含み、図示は省略するが、ROM17aおよびRAM17bは、互いにバスで接続され、さらに、コネクタ23と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア21は、ROM17aおよびRAM17bにアクセスすることができるのである。
【0038】
ROM17aは、ゲーム装置10で実行すべきゲーム(仮想ゲーム)のためのゲームプログラム、画像(キャラクタ画像、背景画像、アイテム画像、メッセージ画像など)データおよびゲームに必要な音ないし音楽のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)17bは、そのゲームの途中データやゲームの結果データを記憶(セーブ)する。
【0039】
RAM24は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア21は、メモリカード17のROM17aに記憶されたゲームプログラム、および画像データ、音データ等のデータをRAM24にロードし、ロードしたゲームプログラムを実行する。また、CPUコア21は、ゲームの進行に応じて一時的に発生するデータ(ゲームデータやフラグデータ)をRAM24に記憶しつつゲーム処理を実行する。
【0040】
なお、ゲームプログラム、画像データおよび音データ等は、ROM17aから一度に全部、または必要に応じて部分的かつ順次的に読み出され、RAM24に記憶される。また、ROM17aが直接CPU21と接続可能であれば、メモリ空間をRAM24と重ならないように設定することができる。この場合は、ROM17aの内容はRAM24に読み出されずに、直接CPU21が読み出して処理することができる。
【0041】
GPU26およびGPU27は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア21からのグラフィックスコマンド(graphics command :作画命令)を受け、そのグラフィックスコマンドに従ってゲーム画像データを生成する。ただし、CPUコア21は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU26およびGPU27のそれぞれに送る。
【0042】
なお、GPU26およびGPU27が作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンやテクスチャ等のデータ)は、GPU26およびGPU27がそれぞれ、RAM24にアクセスして取得する。
【0043】
また、GPU26には、第1のビデオRAM(以下、「VRAM」という。)28が接続され、GPU27には、第2のVRAM29が接続される。GPU26は作成したゲーム画像データをVRAM28に描画し、GPU27は作成したゲーム画像データをVRAM29に描画する。
【0044】
VRAM28およびVRAM29は、LCDコントローラ31に接続される。LCDコントローラ31はレジスタ32を含み、レジスタ32はたとえば1ビットで構成され、CPUコア21の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ31は、レジスタ32のデータ値が「0」である場合には、VRAM28に描画されたゲーム画像データをLCD11に出力し、VRAM29に描画されたゲーム画像データをLCD12に出力する。また、LCDコントローラ31は、レジスタ32のデータ値が「1」である場合には、VRAM28に描画されたゲーム画像データをLCD12に出力し、VRAM29に描画されたゲーム画像データをLCD11に出力する。
【0045】
I/F回路25には、操作スイッチ14,タッチパネル15およびスピーカ30が接続される。ここで、操作スイッチ14は、上述したスイッチ14a,14b,14c,14d,14e,14f,14g14Lおよび14Rであり、操作スイッチ14が操作されると、対応する操作信号(操作データ)がI/F回路25を介してCPUコア21に入力される。また、タッチパネル15からの座標データがI/F回路25を介してCPUコア21に入力される。さらに、CPUコア21は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM24から読み出し、I/F回路25を介してスピーカ30から出力する。
【0046】
図3はゲーム装置10でこの発明にかかるゲームプログラムが動作しているときのRAM24のメモリマップである。メモリマップは大きく分けて、プログラム記憶領域33とデータ記憶領域34とに分かれる。そしてCPUコア21が、データ記憶領域34に記憶されたデータに基づいて、プログラム記憶領域33に記憶されたプログラムを処理することによりゲーム装置が機能する。
【0047】
プログラム記憶領域33は更に、ゲーム処理プログラム記憶領域33a,初期設定プログラム記憶領域33b,タッチパネル操作プログラム記憶領域33c,手書き入力判定プログラム記憶領域33d,手書き線データ生成プログラム記憶領域33e,アミダ線描画プログラム記憶領域33f,オブジェクト移動描画プログラム記憶領域33g,ゲームクリア判定プログラム記憶領域33hを含む。
【0048】
ゲーム処理プログラム記憶領域33aは、図4に示すような、タッチパネルで横線を描画することによって、移動オブジェクト36が移動するアミダ線状の軌道を追加してプレイするようなゲームを処理するプログラムを記憶した領域である。具体的には、ゲームスタートの処理、ゲームオーバの処理、ゲームの進行に伴うサウンドの処理や、メッセージの表示の処理などを含む。
【0049】
初期設定プログラム記憶領域33bは、図4に示すゲームをスタートさせたとき、ゲーム処理に伴うパラメータなどを初期設定するためのプログラムを記憶した領域である。例えば、図4に示すようなアミダ線状の軌道を描画するための、アミダ線のデータを初期状態に設定したり、ゲーム処理に使用されるフラグ情報の初期化などの処理を行う。
【0050】
タッチパネル操作プログラム記憶領域33cは、タッチパネル15のタッチがなされている(タッチオン)かどうかを判定し、そのタッチ位置を検出する処理を行うプログラムを記憶した領域である。具体的には、ゲームのプレイヤがタッチパネル15を指でタッチしたり、スティック16などでタッチしたとき、そのタッチ座標を2次元の座標データとして検出し、ゲームのコントロールデータとして使用することができるように処理する。このとき、タッチがなされていない(タッチオフ)との判定がされるまでは、タッチ座標は順次後述するタッチ座標バッファ34bに記憶される。
【0051】
手書き入力判定プログラム記憶領域33dは、図7ないし図9で詳述するように、タッチパネル15における描画操作がどのような操作内容であったかを判定するプログラムを記憶した領域である。手書き線データ生成プログラム記憶領域33eは、タッチパネル15の操作に応じて、描画操作の内容に基づいて、アミダ線上の軌道に追加されるべき線のデータを生成するプログラムである。アミダ線描画プログラム記憶領域33fは、移動オブジェクト36の軌道となるアミダ線のデータについて、最初から用意されていたデータと、描画操作に基づいて生成されたデータとから、LCD11およびLCD12にアミダ線を描画するプログラムを記憶した領域である。具体的には後述するアミダ線データバッファ領域34cに記憶されているデータに基づいてリアルタイムにアミダ線を描画するプログラムである。
【0052】
オブジェクト移動描画プログラム記憶領域33gは、図4に示すような移動オブジェクト36をアミダ線の軌道に沿って移動表示するプログラムを記憶した領域である。具体的には、後述するアミダ線データバッファ34cに記憶されている、アミダ線状の軌道のデータに基づいて、対応するLCD11とLCD12とで構成されるゲーム画面上の位置に、移動オブジェクトを表示するプログラムである。この処理は、ゲーム処理がLCD11とLCD12の表示にともない、所定周期(例えば1/60秒)で繰り返し処理が行われている(すなわち、表示にともなうVブランクの周期を基準にした処理の周期)ことに基づく。すなわち、オブジェクト移動描画処理が所定周期毎に繰り返し行われるので、アミダ線状の軌道のデータの読み出し位置を所定周期毎に更新することにより、移動オブジェクトが移動しているかのようにLCD11やLCD12上に表示される。
【0053】
ゲームクリア判定プログラム記憶領域33hは、移動オブジェクトがアミダ線状の軌道に沿って、正しい場所に移動したかどうかに応じて、ゲームがクリアされたかどうかを判定するプログラムを記憶した領域である。具体的には、LCD11とLCD12で構成されるゲーム画面上に予め決められているゴール位置と、アミダ線状の軌道に沿って移動してきた移動オブジェクトの位置とが一致したかどうかに応じてゲームクリアを判定する。
【0054】
データ記憶領域34は、タッチ操作フラグ領域34a,タッチ座標バッファ34b,アミダ線データバッファ34c,移動オブジェクトデータ記憶領域34d,ゴール位置データ記憶領域34eを含む。
【0055】
タッチ操作フラグ領域34aは、ゲームのプレイヤがスティック15や指でタッチパネルをタッチして、アミダ線状の軌道を描画する状態であるかどうかを示すフラグを記憶する領域である。フラグが立っていれば描画すべき状態であり、そうでなければタッチパネルで線の描画を行っていない状態であることを示す。
【0056】
タッチ座標バッファ34bは、所定周期でタッチ座標を記憶しておく領域である。すなわちゲーム処理の処理周期毎にタッチパネル操作に応じたタッチ座標を検出して記憶しておくので、複数周期に渡ってタッチ座標を記憶することにより、ゲームのプレイヤがどのような軌跡でタッチ操作を行ったのかを知ることが可能になる。
【0057】
移動オブジェクトデータ記憶領域34dは、位置データ記憶領域34daとオブジェクト画像データ記憶領域34dbとを更に含む。位置データ記憶領域34daは、移動オブジェクトが表示されるべき位置のデータを記憶した領域である。オブジェクト移動描画プログラム記憶領域33gに記憶されたプログラムは、アミダ線データバッファ領域34cに記憶された、アミダ線状の軌道に沿って移動処理されるが、そのときLCD11とLCD12とで構成されるゲーム画面のどの位置に移動オブジェクトが表示されているのかをリアルタイムに(所定周期毎に)記憶する。オブジェクト画像データ記憶領域34dbは、移動オブジェクトが表示されるべき位置に表示される、オブジェクト画像のデータを記憶した領域である。すなわち、第1GPU26および第2GPU27は、このオブジェクト画像のデータに基づいて、オブジェクトが表示されるべき位置にオブジェクトを描画するのである。
【0058】
ゴール位置データ記憶領域34eは、図4に示す移動オブジェクト36がアミダ線状の軌道に沿って最終的にたどり着くべきゲーム画面上の位置を記憶したデータである。ゲームクリア判定プログラム記憶領域33hに記憶されたプログラムは、このゴール位置に関するデータと、移動オブジェクトの位置とから、ゲームクリアを判定する。
【0059】
図4は、アミダ線を利用したゲームの概要を説明した図である。ゲームプレイヤがゲームを開始したときのゲーム画面は図4aのようになっている。LCD11には上ゲーム画面35aが表示され、予め縦線38aと横線39aによってアミダ状の軌道が描かれている。LCD12には下ゲーム画面35bが表示され、予め縦線38bは表示されているが、横線は表示されていない。また、LCD12上にはタッチパネル15が形成されている。移動オブジェクト36は、図4aに示すように、右から2本目の縦線をスタート位置として、アミダ状の軌道に沿って、上ゲーム画面35a内を一方通行で移動開始する。また下ゲーム画面35bにおいて、いずれかの縦線38bの下端部にゴール37が設定される。プレイヤは移動オブジェクト36がゴール37に移動するように、タッチパネル15を介して下ゲーム画面35bに上手く線を追加してゲームをプレイする。
【0060】
図4bでは、ゲームの進行中におけるゲーム画面35の状況を説明している。移動オブジェクトはアミダ線に沿って、図中破線矢印のように移動する。上ゲーム画面35aのアミダ線に沿った場合、移動オブジェクト36は、上ゲーム画面35a内では縦線38aの最も左端の線に移動して、下ゲーム画面35bの縦線38bの最も左端の線に移動してくる事が予測される。このため、プレイヤはスティック16などでタッチパネル15をタッチ操作し、下ゲーム画面35bにおける縦線38b同志を、横線39bを追加することによってつなぐ。こうして上手く移動オブジェクト36がゴール37の位置に到達するアミダ線状の軌道を作る。
【0061】
図4cでは、移動オブジェクト36が無事にゴール37に到達してゲームクリアとなった状況を示している。このとき、下ゲーム画面35bにはゲームクリアに関するメッセージ表示40が表示される。無事に移動オブジェクト36がゴールに到達し、ゲームクリアとなった後は、別のゲーム画面において、同様のゲームをプレイすればよい。
【0062】
あるいは、現在のアミダ状の軌道を全て残したまま、移動オブジェクト36を再び上ゲーム画面35a上の縦線38aにおいて、先のスタート位置とは別の位置から移動を開始するように設定してもよい。また、ゴール37も別の位置に設定する。こうすることで、先のゲームで追加された下ゲーム画面35bの横線39bも考慮して、プレイヤは横線をさらに追加しなければならない。こうしてゲームの難易度が上がっていき、その興趣性も向上する。先のゲームで追加されたアミダ線を残したままゲームクリアを繰り返すと、下ゲーム画面35bには多数の横線が描画されることとなるので、繰り返しの回数とゲームクリアの回数とが多ければ多いほど高得点となるようにゲームを構成すれば、よりゲームへの挑戦に対する興味が増すことになる。
【0063】
図4dでは、移動オブジェクト36が無事にゴール37に到達できなかった状態の一例を示す。このとき、ゲームクリアできなかったことを示す表示41が下ゲーム画面35bに表示される。図4bでは、下ゲーム画面35bにおいて、横線が不適切に追加されたため、移動オブジェクト36が、縦線38bの右端の下端に到達してしまった状態を示している。
【0064】
図5は、図4aに示すゲーム開始時における、アミダ線データバッファ34cの初期状態を図式化したものである。42aで示す範囲が図4における上ゲーム画面35aに対応し、42bで示す範囲が図4における下ゲーム画面35bに対応する。図5に示すデータをもとに、アミダ線描画プログラム33fが、初期画面として図4aのようなゲーム画面のアミダ線を描画する。タッチパネルが形成されない上ゲーム画面35aに対応する領域42aには、横線39aのデータがあらかじめ用意されている。
【0065】
図6は、図4bのように、ゲームプレイ中における、アミダ線データバッファ34cの状態を図式化したものである。ゲームプレイ中においては、下ゲーム画面35bにもともと用意されていたアミダ線状の軌跡に横線が追加されていくので、図5の領域42bに対応する領域42b’では、横線のデータが追加されている。
【0066】
そして、オブジェクト移動描画プログラム記憶領域33gは図5または図6に図式化されたデータに基づいて、移動オブジェクト36を移動させるのである。
【0067】
図7ないし図9は、プレイヤがタッチパネル15をタッチ操作したとき、その状況に合わせてどのように横線39bを追加描画していくかを状況別に分けて解説した図である。以下はそれぞれの条件に対応した、具体的な処理の一例である。
【0068】
図7は、タッチパネル15を操作したとき、図7aに示すように、タッチオンしてからタッチオフするまでのタッチ座標が、その軌跡50aのように、隣り合う縦線38bに対して、どちらの縦線にも交差せず、その中間点をまたいでいるときの処理について解説した図である。なお下記の解説において、LCD11または12の表示において、その横方向をX軸、縦方向をY軸と定義する。
【0069】
タッチオンがあった点、すなわち描画開始点51の座標を(Xs,Ys)とし、その描画終了点52の座標を(Xt,Yt)とする。このとき、所定の隣接する縦線、例えば縦線1(X座標:X1)と縦線2(X座標:X2)の間に、描画開始点51と描画終了点52とが両方含まれているかどうかを判定する。
【0070】
次に、
Xt−Xs>(X2−X1)/2 (数1)
を満たすかどうかを判定する。以上の条件を満たせば、隣り合う縦線38bに対して、どちらの縦線にも交差せず、その中間点をまたいでいることが判定される。なお、数1以外にも中間点をまたいでいるかどうかを判定する方法が考え得るが、自明の事柄であるので、ここでは説明しない。数1を満たさないときには、タッチパネルの横線描画操作が短すぎるとして、何も横線が入力されない。
【0071】
軌跡50aが隣り合う縦線のいずれとも交差しないが、その中間点をまたいでいるときは、追加する横線の端点(始点と終点)を図7bのように定義する。すなわち、描画開始点51と描画終了52のそれぞれに最も近い縦線上に、追加する横線の端点をそれぞれ定義する。具体的には、一方の端点(始点)51’は、
(X1,Ys) (数2)
とされ、もう一方の端点(終点)52’は、
(X2,Yt) (数3)
とされる。そして数2と数3で定義される直線がアミダ線の横線として図7cに示すように追加される。
【0072】
実際には、数1を含む上述の判定は、手書き入力判定プログラム記憶領域33dに記憶されたプログラムによって処理される。そして数2の始点の情報と、数3の終点の情報とに基づき、アミダ線描画プログラム記憶領域33fに記憶されたプログラムが、アミダ線データバッファ34cに追加の横線39bを描画する。
【0073】
図8は、タッチパネル15を操作したとき、図8aに示すように、タッチオンしてからタッチオフするまでのタッチ座標が、その軌跡50bのように、縦線38bのいずれか1本と交差したときの処理について解説した図である。
【0074】
まず、所定の隣接する縦線、例えば縦線1(X座標:X1)と縦線2(X座標:X2)の間に、描画開始点51と描画終了点52とが両方含まれているかどうかについての、図7の場合と同様の条件判定を行う。そこで含まれていないと判断されたとき、軌跡50bは、いずれかの縦線と交差したことになる。次に、描画開始点51と描画終了点52との間に縦線が1本だけ挟まれているかどうかを判定する。
【0075】
描画開始点51と描画終了点52との間に縦線が1本だけ挟まれていると判定されたことに続いて、軌跡50bと交差する縦線(図8の場合では縦線2)との交点53の座標を求める。交点は、描画開始点51と描画終了点52とを結ぶ直線において、交差する縦線のX座標(図8においては、X2)と、このX座標に対応するY座標を算出すればよい。算出されたY座標をY2としたとき、交点53の座標は、
(X2,Y2) (数4)
と表すことができる。
【0076】
次に、判定点54(図8bを参照)を求める。判定点54は、描画開始点51と描画終了点52のうち、交差する縦線(図8では縦線2)に対して遠い方とする。図8においては、描画開始点51の方が描画終了点52よりも、縦線2から遠いので、描画開始点51が判定点54(Xd,Yd)として選択される。
【0077】
そして、判定点54と交点53とを結ぶ直線が、図7の判定条件と同様に、となり合う縦線の中間点をまたいでいるかどうかを判定する。図8bの場合では、
X2−Xd>(X2−X1)/2 (数5)
を満たすかどうかを判定すればよい。これを満たさなければ、横線は入力されない。
【0078】
図8に示すような、タッチオンしてからタッチオフするまでの軌跡50bが、縦線38bのいずれか1本と交差したときには、追加される横線の端点は、図8bのように定義される。すなわち、追加される端点の一方は、交点53であり、一方は、判定点54に最も近い縦線上に選ばれる。図8bにおいては、交点53は数4で定義されており、これが一方の端点(終点)となる。もう一方の端点(始点)54’は、判定点54が描画開始点51であることから、
(X1,Yd) (数6)
となる。そして数4と数6で定義される直線がアミダ線の横線として図8cに示すように追加される。なお、数6において、もし描画終了点52が判定点であれば、交点53に対するもう一方の端点は、(X2,Yd)と定義される。
【0079】
図9は、タッチパネル15を操作したとき、図9aに示すように、タッチオンしてからタッチオフするまでのタッチ座標が、その軌跡50cように、縦線38bのいずれか2本以上と交差したときの処理について解説した図である。すなわち、描画開始点51と描画開始点52との間に、2本以上の縦線が存在していることが検出されれば、図9の状態である事を示す。
【0080】
この場合は、縦線との交点のうち、描画開始点51に近いものから2つを選んで、それぞれを横線の端点とする。例えば、図9では、描画した軌跡50cは、交点55で縦線1と、交点56で縦線2と、そして交点57で縦線3と交差している。この場合は、描画開始点51と描画終了点52とを結ぶ直線と縦線1との交点55を横線の始点とし、縦線2との交点56を横線の終点とする。
【0081】
以上は、縦線と描画した軌跡50との関係の判定と、その処理方法の一例に過ぎず、他にも縦線と描画した軌跡との関係を調べる方法は考え得るので、この判定方法に限定されるべきものではない。
【0082】
図10は、タッチパネル上にアミダ線上の軌道に横線を追加し、オブジェクトをゴールに導く、図4に示すようなゲームについての、メインのゲーム処理に関するフローチャートである。ステップ10において、まず図4に示すゲームをスタートさせたとき、ゲーム処理に伴うパラメータなどを初期設定する。具体的には、ゲーム処理プログラム記憶領域33aに記憶されたプログラムに基づいて、図4に示すようなアミダ線状の軌道を描画するための、アミダ線のデータを初期状態に設定したり、プレイするゲームのステージを選択したり、タッチパネルの初期化などの処理を行う。
【0083】
次にステップ11に進み、初期設定プログラム記憶領域33bに記憶されたプログラムに基づいて、選択したステージに対応したデータの初期設定を行う。すなわち、選択されたゲームに関して、アミダ線データを描画用データにコピーしたり、タッチ中フラグをオフしたり、横移動中フラグをオフしたりする。具体的には、メモリカード17にもともと用意されていたアミダ線のデータを、アミダ線データバッファ34cにコピーする。そして、選択されたステージに応じたゲーム処理を行うためのフラグをオフにしておく。
【0084】
アミダ線データが描画用データにコピー、すなわちアミダ線データバッファ34cにコピーされたことに基づいて、ステップ12において、LCD11およびLCD12にアミダ線を描画する。具体的には、アミダ線データバッファ領域34bに記憶されたデータに基づいて、アミダ線描画プログラム記憶領域33fに記憶されたプログラムが、アミダ線を描画処理する。そしてステップ13に進み、描画されたアミダ線に対して、プレイヤのタッチパネル操作に基づいて、横線を追加していく処理を行う。この処理は図11において詳述される。
【0085】
続いて、アミダ線状の軌道に沿って、ステップ14において、オブジェクトを移動表示処理していく。この処理は図13において詳述される。そしてステップ15において、オブジェクトがゴール位置に到達したかどうかを判断する。すなわち、図4において、下ゲーム画面35bのアミダ線の縦線が尽きるところまでオブジェクトが移動したかどうかを判定する。
【0086】
ステップ15でNoと判定されるとステップ12に戻るので、、ステップ12からステップ15までの処理は、繰り返し順番に行われる。すなわち、リアルタイムに手書き入力を行いながら、オブジェクトがアミダ線の軌道上を移動するようにゲームを処理することができる。一方、ステップ15において、オブジェクトがゴール位置まで移動したと判定されると、続くステップ16において、そのゴール位置が正しいかどうかを判定する。具体的にはゲームクリア判定プログラム記憶領域33hに記憶されたプログラムに基づき、ゴール位置データ記憶領域34eに記憶されたデータを参照して処理される。ステップ16でゴール位置が正しくないと判定されたときには、ステップ17に進み、ゲームを終了するかどうかを判定する。
【0087】
ステップ17において、ゲームを終了すると判定されたときにはこのままゲームを終了する。そうでなければステップ10に戻り、新たにゲームのプレイをやり直すべく、ゲーム処理の初期設定を行い、別のゲームをプレイする。
【0088】
ステップ16において、ゴール位置が正しいと判定されたときには、勿論このままゲームクリアと判定しても良い。しかしながら、一つのオブジェクトについて、横線を追加したことにより、アミダ線の描画用データは複雑化しているので、このデータを基にさらに移動オブジェクトをゴールに誘導すれば、よりゲームのプレイ自体も複雑化して面白い。それ故、ゴール位置が正しいと判定されたときには、再びステップ11に戻る。ステップ10のように完全に初期化されるステップには戻らず、今までプレイしたアミダ線の描画データを利用して、再びゲーム処理を行うのである。
【0089】
図11は、図10におけるステップ13をより詳しく説明したフローチャートである。まずステップ21において、タッチパネル入力があるかどうかを検出する。具体的にはタッチパネル操作プログラム記憶領域33cに記憶されたプログラムに基づいて、タッチ入力が検出される。ここでタッチ入力があると判定されたときには、ステップ22において、現在タッチ中フラグがオンであるかを確認する。すなわち、タッチ操作フラグ記憶領域34aにおいて、タッチ中フラグが立っているかどうかを確認する。もし立っていなければ、ステップ23において、タッチ中フラグをオンにする。言い換えればタッチ操作フラグ記憶領域34aにタッチ中であることを示す情報を書き込むのである。そしてステップ24に進む。
【0090】
一方、ステップ22において、タッチ中フラグがオンであれば、そのままステップ24に進む。ステップ24では、タッチ位置に基づいて、描画用データに手書き線を追加する。すなわち、タッチ操作フラグ記憶領域34aにおいてタッチ中フラグがオンであることは、アミダ線状の軌道を描画する状態であるかどうかを示すフラグがオンであるので、タッチパネル操作プログラム記憶領域33cに記憶されたプログラムに基づいて、手書き線、つまり描画の軌跡50が入力される。
【0091】
図10の処理で、ステップ12ないしステップ15が繰り返し処理されるので、ステップ24が実行されれば、図10のステップ14の処理に進む。一方ステップ21でタッチ入力が無いと判定されれば、ステップ24の処理が終了したか、あるいは未だタッチ入力を行っていない事が分かる。そこでステップ25に進み、タッチ中フラグがオンかどうかを判定する。
【0092】
ステップ25でタッチ中フラグがオンであることは、未だアミダ線状の軌道を描画する状態であることを示すので、ステップ26に進みタッチ中フラグをオフにする。すなわち、タッチ操作フラグ記憶領域34aに、タッチ中でないことを示す情報を書き込む。一方、ステップ25でタッチ中フラグがオンでないと判定されれば、これは未だタッチ入力を行っていない状況であるので、ステップ14に進み、ゲーム処理が実行される。
【0093】
ステップ26において、タッチ中フラグがオフされると、タッチパネルを介したアミダ線の描画操作が終わったことが分かるので、ステップ27の判定処理に進む。ステップ27は図12において詳述される。
【0094】
図12は、図11のステップ27を更に詳しく説明したフローチャートである。タッチパネル操作によって軌跡が入力されると、まずステップ31に進み、手書き線と縦線とが1本も交差していないのかどうかを判定する。すなわち、図7で解説された条件に該当する。ここで、手書き線と縦線とが1本も交差していないと判定されれば、ステップ32に進み、手書き線の始点と終点とを結ぶ線分が縦線の中間点をまたいでいるかどうかを判定する。ここで、中間点をまたいでいると判定されれば、ステップ33に進み、手書き線の始点と終点とをそれぞれ一番近い縦線上まで移動させ、移動後の線上値を結ぶ線分を追加アミダ線とする。なお、ステップ32で中間点をまたいでいないと判定されたときには、入力ミスとして横線は追加されず、ステップ39に進む。
【0095】
一方、ステップ31において、Noすなわち、縦線と手書き線とが交差していると判定されれば、ステップ34に進み、手書き線と縦線が1本だけ交差しているかどうかをさらに判定する。すなわち図8で解説された条件に該当する。ここで、1本だけ交差していると判定されれば、ステップ35に進み、判定点と交点とを結ぶ線分が、縦線の中間点をまたいでいるかどうかを判定する。ここでまたいでいると判定されれば、ステップ36に進み、判定点を一番近い縦線上まで移動させた点と交点とを結ぶ線分を追加アミダ線とする。なお、ステップ35で中間点をまたいでいないと判定されたときには、入力ミスとして横線は追加されず、ステップ39に進む。
【0096】
ステップ34において、手書き線と縦線が1本だけ交差しているかどうかの判定でNo、すなわち手書き線と縦線が複数交差していると判定されれば、ステップ37に進み、手書き線と縦線の交点のうち、最初に交差した2つの交点を結ぶ線分を追加アミダ線とする。
【0097】
これら一連の処理は、具体的には、手書き入力判定プログラム記憶領域33dに記憶されたプログラムが、図7ないし図9で解説した内容を処理することによって行われている。
【0098】
こうして、ステップ33、ステップ36およびステップ37でそれぞれの判定条件に基づいて定義された追加アミダ線は、ステップ38で、アミダ線データに追加される。具体的には手書き線データ生成プログラム記憶領域33eに記憶されたプログラムに基づいて、追加すべき横線が実際にアミダ線として追加更新される。
【0099】
続いて、判定処理に基づいて新たに更新されたアミダ線データは、ステップ39において描画用データにコピーされる。すなわち、アミダ線データバッファ領域34cに描画データとして記憶される。
【0100】
次に図10のステップ14について詳述する。図13において、まず、現在オブジェクトが縦線沿いか横線沿いか、どちらに沿って移動中であるかを確認するため、ステップ41において、横移動中フラグがオンであるかどうかを確認する。ここで横移動中で無ければ、ステップ42に進み、縦線上を下方向に移動する。
【0101】
次にステップ43に進み、移動した位置が、横線が伸びる位置であるかどうかを判定する。ここでYesであれば、ステップ44に進み、横移動中フラグをオンにする。そして図10のメインフローに戻り、ステップ15に進む。もしステップ43でNoと判定されれば、次回の処理周期では縦線上の移動処理をそのまま続けるので、直接図10のメインフローに戻る。
【0102】
ステップ41で横移動中フラグがオンであると判定されれば、ステップ45に進み、横線上を移動する。次にステップ46に進み、移動したところが縦線上かどうかを判定する。ここでYesであれば、ステップ47に進み、横移動中フラグをオフにする。そして図10のメインフローに戻りステップ15に進む。もしステップ46でNoと判定されれば、次回の処理周期では横線上の移動処理をそのまま続けるので、直接図10のメインフローに戻る。
【0103】
なお、図10のフローでは、ステップ11からステップ15の処理を繰り返し処理するようになっているので、オブジェクトがLCD11やLCD12を移動表示しながら、一方で横線を追加描画していくゲームが実現できる。この場合、迫り来るオブジェクトに焦燥感を感じながら、横線を追加描画するので、興趣性の高いゲームを提供できる。
【0104】
しかしながら、例えば、全ての横線を描画し終わってから、オブジェクト移動処理を開始してもよい。このような変形例として、図14では別のゲームの例を説明している。図14aは、ゲーム開始直後のゲーム画面の例である。上ゲーム画面35aには複数の移動オブジェクト61,62が、別々の縦線38a上端部に配置されている。また同じく上ゲーム画面35aには予め横線39aが描かれている。
【0105】
一方下ゲーム画面35bには、横線が全く描かれておらず、縦線38bのみが表示されている。また、その下端部にはゴールとして61’と62’が用意される。このゲームでは複数のオブジェクト61,62はそれぞれ同じ画像のゴール61’,62’にゴールしなければならないので、図14aの状態では、ゲームをクリアすることができない。
【0106】
そこでまず、図14bのように、横線39bを下ゲーム画面35bに描画して、複数のオブジェクト61,62が対応するゴールに移動できるようなアミダ線状の軌道を作成する。作成し終わったら、オブジェクトの移動を開始させる。図14cはその途中経過の図である。アミダくじのルールに従えば、図14cの軌道であれば、無事に移動オブジェクトそれぞれのゴールに到達できることが分かる。そして図14dのように、ゴールすればゲームクリアとなる。
【0107】
図4のゲームと同様に、無事にクリアしたあと、描画した軌道をそのままにしておいて、別のオブジェクトを配置位置を変えて準備すると、このゲームは極端に難易度が高くなる。そのためより興趣性の高いゲームを提供できるようになる。
【0108】
図15は図14のゲーム処理に関するフローチャートである。まず、ステップ60で図4に解説したゲームのメインフローと同様に、初期設定を行う。続いて、ステップ61において、複数のオブジェクトを上ゲーム画面35a上の縦線上端部に配置するとともに、下ゲーム画面35bの縦線下端部に、複数のオブジェクトそれぞれに対応するゴールを配置する。
【0109】
その後、ステップ62に進みアミダ画面を表示する。続いてステップ63においてアミダ線追加処理を行う。この内容は図11で詳述したものと同じであるため、説明は省略する。このステップ62とステップ63の処理は続くステップ64において、アミダ線の描画が終わったと判断されるまでは繰り返し行われるので、表示されるアミダ線を見ながら、下ゲーム画面35b上に横線を追加することができる。
【0110】
ステップ64において、アミダ線の描画が終了したと判断されれば(例えば、図示しないアイコンなどをタッチして、描画処理が終了したことをプレイヤが入力するなどに基づいて判断)、ステップ65に進み、上ゲーム画面35aに複数配置されたオブジェクトそれぞれについて、オブジェクトの移動処理を行う。ここのオブジェクトについて行われる移動処理は、図13で詳述したものと同じであるため、説明を省略する。
【0111】
ステップ65の移動処理は、続くステップ66において、全てのオブジェクトがゴール位置(下ゲーム画面35bの縦線下端部)まで到達したと判断されるまで、繰り返し行われる。そしてステップ67に進み、全てのオブジェクトが、正しいゴール位置に到達したかどうかを判定する。ここで正しいと判定されれば、今まで描画されたアミダ線をそのまま残して、新しくゲームをスタートするべく、ステップ61に戻る。
【0112】
一つでもオブジェクトのゴール位置が誤っていた場合には、ゲームがクリアできなかったと判断され、ステップ68に進み、ゲームを終了させるかどうかを判断する。ここでゲーム終了であると判断されればゲームプレイが終了し、そうでなければ、ステップ60に戻り、新しくゲームプレイをやり直す。
【図面の簡単な説明】
【0113】
【図1】この発明のゲーム装置の一例を示す外観図である。
【図2】図1のゲーム装置の電気的な構成を示す内部ブロック図である。
【図3】図2に示すRAMのメモリマップである。
【図4】この発明にかかるゲームの一例を示す図である。
【図5】図2に示すRAMに記憶されるゲーム開始時点のアミダ線データの図である。
【図6】図5のアミダ線データの状態からある程度ゲームが進んだ状態の、アミダ線データの図である。
【図7】図5のアミダ線データに横線を追加するときの条件の一つに関する概念図である。
【図8】図7とは別の条件に関する概念図である。
【図9】図7とはさらに別の条件に関する概念図である。
【図10】図4で説明されたゲームのメインフローチャートである。
【図11】図10のアミダ線追加処理に関するフローチャートである。
【図12】図10の判定処理に関するフローチャートである。
【図13】図10のオブジェクト移動処理に関するフローチャートである。
【図14】この発明にかかる別のゲームの例を示す図である。
【図15】図14で説明されたゲームのメインフローチャートである。
【符号の説明】
【0114】
10 …ゲーム装置
11 …LCD11(上画面)
12 …LCD12(下画面)
15 …タッチパネル
17 …メモリカード
21 …CPU
24 …RAM
【特許請求の範囲】
【請求項1】
表示手段を備え、表示手段に重ねて形成されたタッチパネルを操作してプレイするゲーム装置であって、
複数の相互に交わらない関係にある第1の線と、これら第1の線の内、隣合う線同志を結び、かつその交点を端部とした複数の第2の線から成るアミダ線状の線データを記憶した、線データ記憶手段
前記表示手段に、前記線データ記憶手段に基づいて、アミダ線状の線画像を表示する線描画手段、
前記タッチパネルを連続的にタッチした軌跡に基づいて、手書き線データを入力する線データ入力手段、
前記入力された手書き線データと前記アミダ線状の線データとの関係を判定し、判定に応じた線データを前記線データ記憶手段に追加記憶する、線データ判定追加手段、
少なくとも一つのオブジェクトを、前記線データに基づいて、一方通行で前記表示手段上を移動表示させる、オブジェクト移動表示手段、
前記オブジェクト移動表示手段に応じて、前記オブジェクトが、所定の表示位置に到達したかどうかを判定する、ゴール判定手段を備えたゲーム装置。
【請求項2】
前記線データ判定追加手段は、前記手書き線データの開始位置と終了位置とが、隣り合う2つの前記第1の線の中間線をまたぐ位置関係でないときには、前記手書き線データの入力が無いと判定し、線データを追加記憶しない、請求項1に記載のゲーム装置。
【請求項3】
前記線データ判定追加手段は、前記手書き線データの開始位置と終了位置とが、前記第1の線のいずれか1本と交差している位置関係であるときには、交点を、追加する線データの一方の端部とし、開始位置と終了位置のいずれか一方であって、該交点から遠い側の位置に最も近い前記第1の線上の位置を、他方の端部とする、請求項1に記載のゲーム装置。
【請求項4】
前記線データ判定追加手段は、前記手書き線データの開始位置と終了位置とが、前記第1の線の2本以上と交差する位置関係であるとき、開始位置からみて、一つ目の交点を、追加する線データの一方端部とし、二つ目の交点を、多方端部とする、請求項1に記載のゲーム装置。
【請求項5】
表示手段と、表示手段に重ねて形成されたタッチパネルと、線データ記憶手段とを備えたゲーム装置であって、線データ記憶手段は、複数の相互に交わらない関係にある第1の線とこれら第1の線の内隣合う線同志を結び、かつその交点を端部とした複数の第2の線から成るアミダ線状の線データを記憶したゲーム装置を、タッチパネルを操作してプレイするゲーム装置として機能させるゲームプログラムであって、ゲーム装置のコンピュータに、
前記表示手段に、前記線データ記憶手段に基づいて、アミダ線状の線画像を表示する線描画ステップ、
前記タッチパネルを連続的にタッチした軌跡に基づいて、手書き線データを入力する線データ入力ステップ、
前記入力された手書き線データと前記アミダ線状の線データとの関係を判定し、判定に応じた線データを前記線データ記憶手段に追加記憶する、線データ判定追加ステップ、
少なくとも一つのオブジェクトを、前記線データに基づいて、一方通行で前記表示手段上を移動表示させる、オブジェクト移動表示ステップ、
前記オブジェクト移動表示手段に応じて、前記オブジェクトが、所定の表示位置に到達したかどうかを判定する、ゴール判定ステップを実行させるゲームプログラム。
【請求項6】
前記線データ判定追加ステップは、前記手書き線データの開始位置と終了位置とが、隣り合う2つの前記第1の線の中間線をまたぐ位置関係でないときには、前記手書き線データの入力が無いと判定し、線データを追加記憶しない、請求項5に記載のゲームプログラム。
【請求項7】
前記線データ判定追加ステップは、前記手書き線データの開始位置と終了位置とが、前記第1の線のいずれか1本と交差している位置関係であるときには、交点を、追加する線データの一方の端部とし、開始位置と終了位置のいずれか一方であって該交点から遠い側の位置に最も近い前記第1の線上の位置を、他方の端部とする、請求項5に記載のゲームプログラム。
【請求項8】
前記線データ判定追加ステップは、前記手書き線データの開始位置と終了位置とが、前記第1の線の2本以上と交差する位置関係であるとき、開始位置からみて、一つ目の交点を、追加する線データの一方端部とし、二つ目の交点を多方端部とする、請求項5に記載のゲームプログラム。
【請求項1】
表示手段を備え、表示手段に重ねて形成されたタッチパネルを操作してプレイするゲーム装置であって、
複数の相互に交わらない関係にある第1の線と、これら第1の線の内、隣合う線同志を結び、かつその交点を端部とした複数の第2の線から成るアミダ線状の線データを記憶した、線データ記憶手段
前記表示手段に、前記線データ記憶手段に基づいて、アミダ線状の線画像を表示する線描画手段、
前記タッチパネルを連続的にタッチした軌跡に基づいて、手書き線データを入力する線データ入力手段、
前記入力された手書き線データと前記アミダ線状の線データとの関係を判定し、判定に応じた線データを前記線データ記憶手段に追加記憶する、線データ判定追加手段、
少なくとも一つのオブジェクトを、前記線データに基づいて、一方通行で前記表示手段上を移動表示させる、オブジェクト移動表示手段、
前記オブジェクト移動表示手段に応じて、前記オブジェクトが、所定の表示位置に到達したかどうかを判定する、ゴール判定手段を備えたゲーム装置。
【請求項2】
前記線データ判定追加手段は、前記手書き線データの開始位置と終了位置とが、隣り合う2つの前記第1の線の中間線をまたぐ位置関係でないときには、前記手書き線データの入力が無いと判定し、線データを追加記憶しない、請求項1に記載のゲーム装置。
【請求項3】
前記線データ判定追加手段は、前記手書き線データの開始位置と終了位置とが、前記第1の線のいずれか1本と交差している位置関係であるときには、交点を、追加する線データの一方の端部とし、開始位置と終了位置のいずれか一方であって、該交点から遠い側の位置に最も近い前記第1の線上の位置を、他方の端部とする、請求項1に記載のゲーム装置。
【請求項4】
前記線データ判定追加手段は、前記手書き線データの開始位置と終了位置とが、前記第1の線の2本以上と交差する位置関係であるとき、開始位置からみて、一つ目の交点を、追加する線データの一方端部とし、二つ目の交点を、多方端部とする、請求項1に記載のゲーム装置。
【請求項5】
表示手段と、表示手段に重ねて形成されたタッチパネルと、線データ記憶手段とを備えたゲーム装置であって、線データ記憶手段は、複数の相互に交わらない関係にある第1の線とこれら第1の線の内隣合う線同志を結び、かつその交点を端部とした複数の第2の線から成るアミダ線状の線データを記憶したゲーム装置を、タッチパネルを操作してプレイするゲーム装置として機能させるゲームプログラムであって、ゲーム装置のコンピュータに、
前記表示手段に、前記線データ記憶手段に基づいて、アミダ線状の線画像を表示する線描画ステップ、
前記タッチパネルを連続的にタッチした軌跡に基づいて、手書き線データを入力する線データ入力ステップ、
前記入力された手書き線データと前記アミダ線状の線データとの関係を判定し、判定に応じた線データを前記線データ記憶手段に追加記憶する、線データ判定追加ステップ、
少なくとも一つのオブジェクトを、前記線データに基づいて、一方通行で前記表示手段上を移動表示させる、オブジェクト移動表示ステップ、
前記オブジェクト移動表示手段に応じて、前記オブジェクトが、所定の表示位置に到達したかどうかを判定する、ゴール判定ステップを実行させるゲームプログラム。
【請求項6】
前記線データ判定追加ステップは、前記手書き線データの開始位置と終了位置とが、隣り合う2つの前記第1の線の中間線をまたぐ位置関係でないときには、前記手書き線データの入力が無いと判定し、線データを追加記憶しない、請求項5に記載のゲームプログラム。
【請求項7】
前記線データ判定追加ステップは、前記手書き線データの開始位置と終了位置とが、前記第1の線のいずれか1本と交差している位置関係であるときには、交点を、追加する線データの一方の端部とし、開始位置と終了位置のいずれか一方であって該交点から遠い側の位置に最も近い前記第1の線上の位置を、他方の端部とする、請求項5に記載のゲームプログラム。
【請求項8】
前記線データ判定追加ステップは、前記手書き線データの開始位置と終了位置とが、前記第1の線の2本以上と交差する位置関係であるとき、開始位置からみて、一つ目の交点を、追加する線データの一方端部とし、二つ目の交点を多方端部とする、請求項5に記載のゲームプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2006−102123(P2006−102123A)
【公開日】平成18年4月20日(2006.4.20)
【国際特許分類】
【出願番号】特願2004−292767(P2004−292767)
【出願日】平成16年10月5日(2004.10.5)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成18年4月20日(2006.4.20)
【国際特許分類】
【出願日】平成16年10月5日(2004.10.5)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]