(57)【要約】    【構成】  ゲーム装置１０は、第１ＬＣＤ１６および第２ＬＣＤ１８を含み、第２ＬＣＤ１８上にはタッチパネル２２が設けられる。第１ＬＣＤ１６には、敵オブジェクト（１１２、１１４）が表示される。一方、第２ＬＣＤ１８には、タッチ操作することにより生成された描画オブジェクト（１２２）が表示される。描画オブジェクト（１２２）が生成されると、タッチ操作の軌跡に基づく移動経路に従って、当該描画オブジェクト（１２２）が移動される。描画オブジェクト（１２２）が敵オブジェクト（１１２、１１４）に当ると、当該敵オブジェクト（１１２、１１４）にダメージが与えられる。    【効果】  簡単な操作で複雑なオブジェクトを生成し、複雑な経路に従って移動させるので、ゲームへの興味を増大させることができる。【選択図】  図１
2011177203.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト制御プログラムであって、
コンピュータを、
プレイヤの操作入力を検出する入力検出手段、
入力検出手段によって検出された操作入力に従って第１オブジェクトを生成するオブジェクト生成手段、および
オブジェクト生成手段によって生成された第１オブジェクトを、入力検出手段によって検出された操作入力に基づく移動経路に従って移動させるオブジェクト移動手段として機能させる、オブジェクト制御プログラム。
【請求項２】
オブジェクト生成手段によって第１オブジェクトを生成する場合の入力検出手段によって検出された操作入力が示す軌跡に基づいて、当該第１オブジェクトが移動する際の移動方向を決定する移動方向決定手段としてコンピュータをさらに機能させ、
オブジェクト移動手段は、移動方向決定手段によって決定された移動方向を用いて決定される移動経路に従って第１オブジェクトを移動させる、請求項１記載のオブジェクト移動制御プログラム。
【請求項３】
プレイヤの操作入力は、表示手段の表示面の座標を指示する座標データであり、
オブジェクト生成手段は、複数の座標データが示す座標を時系列に従って線分で連結することにより、第１オブジェクトを生成する、請求項１または２記載のオブジェクト制御プログラム。
【請求項４】
オブジェクト生成手段は、時間的に連続する座標間の距離に応じて線分の太さを変化させる、請求項３記載のオブジェクト制御プログラム。
【請求項５】
時間的に連続する座標間の距離が一定距離未満である状態が継続するとき、現時点においてオブジェクト生成手段によって生成された第１オブジェクトの複製を、入力検出手段によって検出された現時点までの操作入力に基づく移動経路に従って移動させる複製移動手段としてコンピュータをさらに機能させる、請求項３または４記載のオブジェクト制御プログラム。
【請求項６】
オブジェクト移動制御手段は、所定の条件を満たすとき、第１オブジェクトの移動速度を変化させる、請求項１ないし５のいずれかに記載のオブジェクト制御プログラム。
【請求項７】
プレイヤの操作入力は、表示手段の表示面の座標を指示する座標データであり、
所定の条件を満たすか否かを、複数の座標データが示す座標の変化に基づいて判断する条件判断手段としてさらに機能させる、請求項６記載のオブジェクト制御プログラム。
【請求項８】
仮想空間には、第１オブジェクトとは異なる第２オブジェクトが存在し、
オブジェクト移動手段によって移動された第１オブジェクトが第２オブジェクトに当ったとき、少なくとも当該第２オブジェクトに衝撃を与える衝撃手段としてコンピュータをさらに機能させる、請求項１ないし７のいずれかに記載のオブジェクト制御プログラム。
【請求項９】
プレイヤの操作入力を検出する入力検出手段、
入力検出手段によって検出された操作入力に従ってオブジェクトを生成するオブジェクト生成手段、および
オブジェクト生成手段によって生成されたオブジェクトを、入力検出手段によって検出された操作入力に基づく移動経路に従って移動させるオブジェクト移動手段を備える、オブジェクト制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はオブジェクト制御プログラムおよびオブジェクト制御装置に関し、特にたとえば、プレイヤの操作に従ってオブジェクトを発生および移動させる、オブジェクト制御プログラムおよびオブジェクト制御装置に関する。
【背景技術】
【０００２】
この種のゲーム装置の一例が特許文献１に開示されている。この特許文献１のオブジェクト制御装置では、プレイヤがタッチオンすると、タッチオンした位置に弾オブジェクトが発生され、さらに、タッチオンのまま画面下方向にスライドすると、弾オブジェクトの尾ひれが発生する。その後、プレイヤが、タッチオフすると、弾オブジェクトが画面上方に移動される。弾オブジェクトが敵キャラクタに衝突すると、たとえば、当該弾オブジェクトの攻撃力が当該敵キャラクタの耐久力を超えている場合には、当該敵オブジェクトが消滅する。
【特許文献１】特開２００７−３４６３４号［G06F 3/14,A63F 13/00,G06T 13/00］
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、特許文献１に開示されたオブジェクト制御装置では、弾オブジェクトを任意のタッチ位置で発生されることができるが、弾オブジェクトの形状は縦長の棒状に固定的に決定される。また、弾オブジェクトは、基本的には、画面下方から真上方向に移動するだけである。つまり、弾オブジェクトは、直線的に移動するだけである。したがって、弾オブジェクトの移動を簡単に予測することができるため、ゲームが単調になってしまう。このため、ゲームにすぐに飽きてしまう怖れがある。
【０００４】
それゆえに、この発明の主たる目的は、新規な、オブジェクト制御プログラムおよびオブジェクト制御装置を提供することである。
【０００５】
また、この発明の他の目的は、ゲームへの興味を増大させることができる、オブジェクト制御プログラムおよびオブジェクト制御装置を提供することができる。
【課題を解決するための手段】
【０００６】
第１の発明は、オブジェクト制御プログラムであって、コンピュータを、入力検出手段、オブジェクト生成手段、およびオブジェクト移動手段として機能させる。入力検出手段は、プレイヤの操作入力を検出する。オブジェクト生成手段は、入力検出手段によって検出された操作入力に従って第１オブジェクトを生成する。そして、オブジェクト移動手段は、オブジェクト生成手段によって生成された第１オブジェクトを、入力検出手段によって検出された操作入力に基づく移動経路に従って移動させる。
【０００７】
第１の発明によれば、プレイヤの操作入力に従ってオブジェクトが生成され、その操作入力に基づく移動経路に従ってオブジェクトが移動するので、簡単な操作で複雑な形状のオブジェクトを生成することができ、しかも複雑な移動経路に従ってオブジェクトを移動させることができる。つまり、戦略を立ててオブジェクトを生成する必要があるため、ゲームへの興味を増大することができる。
【０００８】
第２の発明は、第１の発明に従属し、移動方向決定手段は、オブジェクト生成手段によって第１オブジェクトを生成する場合の入力検出手段によって検出された操作入力が示す軌跡に基づいて、当該第１オブジェクトが移動する際の移動方向を決定する。オブジェクト移動手段は、移動方向決定手段によって決定された移動方向を用いて決定される移動経路に従って第１オブジェクトを移動させる。
【０００９】
第２の発明によれば、プレイヤの操作入力の軌跡によって第１オブジェクトが生成されるとともに、その軌跡に基づいて決定される移動方向を用いて移動経路が決定されるので、移動経路を考慮しながら第１オブジェクトを描画する必要がある。このように、オブジェクトを描画するだけでなく、その移動をも考慮するので、ゲームが単調になり難く、面白味を増大させることができる。
【００１０】
第３の発明は、第１または第２の発明に従属し、プレイヤの操作入力は、表示手段の表示面の座標を指示する座標データである。オブジェクト生成手段は、複数の座標データが示す座標を時系列に従って線分で連結することにより、第１オブジェクトを生成する。つまり、プレイヤによって線画のオブジェクトが生成される。
【００１１】
第３の発明によれば、線を引くだけでオブジェクトを生成できるので、複雑な形状のオブジェクトであっても、簡単な操作で生成することができる。
【００１２】
第４の発明は、第３の発明に従属し、オブジェクト生成手段は、時間的に連続する座標間の距離に応じて線分の太さを変化させる。たとえば、時間的に連続する座標間の距離が短い場合には、線分の太さが太くされ、逆に、時間的に連続する座標間の距離が長い場合には、線分の太さが細くされる。ただし、太さを逆に設定してもよい。
【００１３】
第４の発明によれば、プレイヤの操作の仕方によってオブジェクトを構成する線分の太さを変えるので、簡単な操作で複雑な形状のオブジェクトを生成することができる。
【００１４】
第５の発明は、第３または第４の発明に従属し、オブジェクト制御プログラムは、時間的に連続する座標間の距離が一定距離未満である状態が継続するとき、現時点においてオブジェクト生成手段によって生成された第１オブジェクトの複製を、入力検出手段によって検出された現時点までの操作入力に基づく移動経路に従って移動させる複製移動手段としてコンピュータをさらに機能させる。
【００１５】
第５の発明によれば、オブジェクトの生成途中で、現時点における当該オブジェクトの移動経路を知ることができるので、オブジェクトの生成を継続するか、終了するかなどを容易に決定することができる。
【００１６】
第６の発明は、第１ないし第５の発明に従属し、オブジェクト移動制御手段は、所定の条件を満たすとき、第１オブジェクトの移動速度を変化させる。たとえば、特定の操作が実行されたり、特定のイベントが発生したりした場合に、第１オブジェクトの移動速度が速くされたり、遅くされたりする。
【００１７】
第６の発明によれば、オブジェクトの移動速度を変化させるので、速度によって移動経路も変化される。つまり、オブジェクトの移動経路が予測し難いので、ゲームが単純または単調になり難い。
【００１８】
第７の発明は、第６の発明に従属し、プレイヤの操作入力は、表示手段の表示面の座標を指示する座標データである。オブジェクト制御プログラムは、コンピュータを、条件判断手段としてさらに機能させる。条件判断手段は、所定の条件を満たすか否かを、複数の座標データが示す座標の変化に基づいて判断する。
【００１９】
第７の発明によれば、プレイヤの操作入力による座標の変化で所定の条件を満たすか否かを判断するので、たとえば、第１オブジェクトを描画する際の操作入力に基づいて所定の条件を満たすか否かを判断することができる。
【００２０】
第８の発明は、第１ないし第７の発明に従属し、仮想空間には、第１オブジェクトとは異なる第２オブジェクトが存在する。衝撃手段は、オブジェクト移動手段によって移動された第１オブジェクトが第２オブジェクトに当ったとき、少なくとも当該第２オブジェクトに衝撃を与える。
【００２１】
第８の発明によれば、第１オブジェクトによって第２オブジェクトを攻撃するので、その攻撃の戦略を立てつつ第１オブジェクトを描画する必要があるため、仮想ゲームが単調でなく、面白い。
【００２２】
第９の発明は、プレイヤの操作入力を検出する入力検出手段、入力検出手段によって検出された操作入力に従ってオブジェクトを生成するオブジェクト生成手段、およびオブジェクト生成手段によって生成されたオブジェクトを、入力検出手段によって検出された操作入力に基づく移動経路に従って移動させるオブジェクト移動手段を備える、オブジェクト制御装置である。
【００２３】
第９の発明においても、第１の発明と同様に、ゲームへの興味を増大させることができる。
【発明の効果】
【００２４】
この発明によれば、プレイヤの操作に従ったオブジェクトが生成され、当該オブジェクトがその操作の軌跡に基づいて移動されるので、簡単な操作で複雑な形状のオブジェクトを生成することができ、しかも複雑な経路に従ってオブジェクトを移動させることができる。つまり、移動経路を考慮しながらオブジェクトを生成するので、ゲームへの興味を増大させることができる。
【００２５】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００２６】
【図１】図１はこの発明のゲーム装置の外観構成の一実施例を示す図解図である。
【図２】図２は図１に示すゲーム装置を折り畳んだ状態の上面図および左側面図を示す図解図である。
【図３】図３は図１に示すゲーム装置の電気的な構成を示すブロック図である。
【図４】図４は図１に示すゲーム装置のＬＣＤに表示されるゲーム画面の例を示す図解図である。
【図５】図５は描画オブジェクトの例および描画オブジェクトの軌跡に基づく方向ベクトルの生成方法を説明するための図解図である。
【図６】図６は図１に示すゲーム装置のＬＣＤに表示されるゲーム画面の他の例の一部を示す図解図である。
【図７】図７は図３に示すメインメモリのメモリマップの例を示す図解図である。
【図８】図８は図７に示す太さデータに従う線の太さテーブルおよびオブジェクトデータに従うオブジェクトの情報の例を示す図解図である。
【図９】図９は図３に示すＣＰＵのゲーム全体処理の一部を示すフロー図である。
【図１０】図１０は図３に示すＣＰＵのゲーム全体処理の他の一部であって、図９に後続するフロー図である。
【図１１】図１１は図３に示すＣＰＵのゲーム全体処理のその他の一部であって、図１０に後続するフロー図である。
【図１２】図１２は図３に示すＣＰＵの弾く速度の算出処理のフロー図である。
【図１３】図１３は他の実施例のＣＰＵのゲーム全体処理の一部を示すフロー図である。
【図１４】図１４は他の実施例のＣＰＵのゲーム全体処理の他の一部を示すフロー図である。
【発明を実施するための形態】
【００２７】
図１を参照して、この発明の一実施例であるゲーム装置１０は、上側ハウジング１２および下側ハウジング１４を含み、上側ハウジング１２と下側ハウジング１４とは、開閉可能（折り畳み可能）に連結されている。図１の例では、上側ハウジング１２および下側ハウジング１４は、それぞれ横長の長方形の板状に形成され、互いの長辺部分で回動可能に連結されている。つまり、この実施例のゲーム装置１０は、折り畳み型の携帯ゲーム装置であり、図１には、当該ゲーム装置１０を開いた状態（開状態）で示してある。ゲーム装置１０は、開いた状態においてもユーザが両手または片手で把持することができるようなサイズで構成される。
【００２８】
通常、ユーザは、開状態でゲーム装置１０を使用する。また、ユーザは、ゲーム装置１０を使用しない場合には閉状態で保管する。ただし、ゲーム装置１０は、上記閉状態および開状態のみでなく、上側ハウジング１２と下側ハウジング１４とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング１２を下側ハウジング１４に対して任意の角度で静止させることができる。
【００２９】
なお、ゲーム装置１０は、後述するカメラ（３２，３４）を搭載しており、当該カメラ（３２，３４）によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりする撮像装置としても機能する。
【００３０】
図１に示すように、上側ハウジング１２には第１ＬＣＤ１６が設けられ、下側ハウジング１４には第２ＬＣＤ１８が設けられる。第１ＬＣＤ１６および第２ＬＣＤ１８は、横長形状であり、それぞれの長辺方向が上側ハウジング１２および下側ハウジング１４の長辺方向と一致するように配置される。たとえば、第１ＬＣＤ１６および第２ＬＣＤ１８の解像度は、２５６(横)×１９２(縦）画素（ドット）に設定される。
【００３１】
なお、この実施例では、表示器としてＬＣＤを用いるようにしてあるが、ＬＣＤに代えて、ＥＬ(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。また、ゲーム装置１０は、任意の解像度の表示装置を利用することができる。
【００３２】
図１および図２に示すように、下側ハウジング１４には、入力装置として、各操作ボタン２０ａ−２０ｋが設けられる。この各操作ボタン２０ａ−２０ｋのうち、方向入力ボタン２０ａ、操作ボタン２０ｂ、操作ボタン２０ｃ、操作ボタン２０ｄ、操作ボタン２０ｅ、電源ボタン２０ｆ、スタートボタン２０ｇ、およびセレクトボタン２０ｈは、下側ハウジング１４の第２ＬＣＤ１８が設けられる側の面（内側の面）に配置される。具体的には、方向入力ボタン２０ａおよび電源ボタン２０ｆは、第２ＬＣＤ１８の左側に配置され、操作ボタン２０ｂ−２０ｅ，２０ｇおよび２０ｈは、第２ＬＣＤ１８の右側に配置される。また、上側ハウジング１２と下側ハウジング１４とを折り畳んだときには、操作ボタン２０ａ−２０ｈはゲーム装置１０の内部に収められる。
【００３３】
方向入力ボタン（十字キー）２０ａは、ディジタルジョイスティックとして機能し、プレイヤオブジェクトの移動方向を指示したり、カーソルを移動させたりするなどに用いられる。各操作ボタン２０ｂ−２０ｅは、プッシュボタンであり、たとえば、プレイヤオブジェクトに任意の動作をさせたり、決定やキャンセルを実行したりする等に用いられる。電源ボタン２０ｆは、プッシュボタンであり、ゲーム装置１０の主電源をオン／オフするために用いられる。スタートボタン２０ｇは、プッシュボタンであり、ゲームを中断（ポーズ）したり、開始（再開）したりするために用いられる。セレクトボタン２０ｈは、プッシュボタンであり、ゲームモードやメニューの選択等に用いられる。
【００３４】
図１においては、操作ボタン２０ｉ−２０ｋを省略したが、図２（Ａ）に示すように、操作ボタン（Ｌボタン）２０ｉは、下側ハウジング１４の上側面の左端部に設けられ、操作ボタン（Ｒボタン）２０ｊは、下側ハウジング１４の上側面の右端部に設けられる。また、図２（Ｂ）に示すように、音量ボタン２０ｋは、下側ハウジング１４の左側面に設けられる。
【００３５】
なお、図２（Ａ）は、ゲーム装置１０を折り畳んだ状態で、上面（上ハウジング１２）側から見た図であり、図２（Ｂ）は、同じくゲーム装置１０を折り畳んだ状態で、左側面から見た図である。
【００３６】
Ｌボタン２０ｉおよびＲボタン２０ｊは、プッシュボタンであり、操作ボタン２０ｂ−２０ｅと同様の操作に用いたり、それらの操作ボタン２０ｂ−２０ｅの補助的な操作に用いたりすることができる。また、この実施例では、Ｌボタン２０ｉおよびＲボタン２０ｊは、撮影指示の操作（シャッター操作）を行うために用いることもできる。音量ボタン２０ｋは、２つのプッシュボタンを用いて構成され、図示しない２つのスピーカ（右スピーカおよび左スピーカ）から出力される音の大きさを調整するために用いられる。この実施例では、音量ボタン２０ｋには、２つの押圧部を含む操作部が設けられ、各押圧部に対応して上記のプッシュボタンが設けられる。したがって、一方の押圧部を押すと音量が大きくされ、他方の押圧部を押すと音量が小さくされる。たとえば、押圧部を押し続けると、音量が次第に大きくされたり、次第に小さくされたりする。
【００３７】
図１に戻って、ゲーム装置１０は、操作ボタン２０ａ−２０ｋとは別の入力装置として、さらにタッチパネル２２を備えている。タッチパネル２２は、第２ＬＣＤ１８の画面上を覆うように装着されている。この実施例では、タッチパネル２２は、たとえば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル２２は、抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。また、この実施例では、タッチパネル２２として、たとえば第２ＬＣＤ１８の解像度と同解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル２２の解像度と第２ＬＣＤ１８の解像度とが一致している必要はない。
【００３８】
また、下側ハウジング１４の右側面には、挿入口（図１に示す破線）が設けられている。挿入口は、タッチパネル２２に対する操作を行うために用いられるタッチペン２４を収納することができる。通常、タッチパネル２２に対する入力は、タッチペン２４を用いて行われるが、タッチペン２４に限らずユーザの指でタッチパネル２２を操作することも可能である。したがって、たとえば、タッチペン２４を用いない場合には、タッチペン２４の挿入口および収納部を設ける必要はない。
【００３９】
また、下側ハウジング１４の右側面には、メモリカード２６を収納するための挿入口（図１では、二点鎖線で示している）が設けられている。この挿入口の内側には、ゲーム装置１０とメモリカード２６とを電気的に接続するためのコネクタ（図示せず）が設けられる。メモリカード２６は、たとえばＳＤカードであり、コネクタに着脱自在に装着される。このメモリカード２６は、たとえば、ゲーム装置１０によって撮像された画像を記憶（保存）したり、他の装置で生成（撮像）ないし記憶された画像をゲーム装置１０に読み込んだりするために用いられる。
【００４０】
さらに、下側ハウジング１４の上側面には、メモリカード２８を収納するための挿入口（図１では、一点鎖線で示している）が設けられている。この挿入口の内側にも、ゲーム装置１０とメモリカード２８とを電気的に接続するためのコネクタ（図示せず）が設けられる。メモリカード２８は、情報処理プログラムおよび必要なデータなどを記録した記録媒体であり、下側ハウジング１４に設けられた挿入口に着脱自在に装着される。
【００４１】
また、上側ハウジング１２と下側ハウジング１４との連結部（ヒンジ）の左端部分には、インジケータ３０が設けられる。このインジケータ３０は、３つのＬＥＤ３０ａ，３０ｂ，３０ｃによって構成される。ここで、ゲーム装置１０は、他の機器との間で無線通信を行うことが可能であり、第１ＬＥＤ３０ａは、無線通信が確立している場合に点灯する。第２ＬＥＤ３０ｂは、ゲーム装置１０の充電中に点灯する。第３ＬＥＤ３０ｃは、ゲーム装置１０の主電源がオンである場合に点灯する。したがって、インジケータ３０（ＬＥＤ３０ａ−３０ｃ）によって、ゲーム装置１０の通信確立状況、充電状況、および主電源のオン／オフ状況をユーザに通知することができる。
【００４２】
上述したように、上側ハウジング１２には、第１ＬＣＤ１６が設けられる。この実施例では、第２ＬＣＤ１８を覆うように、タッチパネル２２を設けているが、第１ＬＣＤ１６を覆うように、タッチパネル２２を設けてもよい。または、第１ＬＣＤ１６および第２ＬＣＤ１８のそれぞれを覆うように、２つのタッチパネル２２を設けるようにしてもよい。たとえば、第２ＬＣＤ１８には、各操作ボタン２０ａ−２０ｋやタッチパネル２２の役割ないし操作方法をユーザに教えるための操作説明画面やゲーム画面が表示される。
【００４３】
また、上側ハウジング１２には、２つのカメラ（内側カメラ３２および外側カメラ３４）が設けられる。図１に示すように、内側カメラ３２は、上側ハウジング１２と下側ハウジング１４との連結部付近であり、第１ＬＣＤ１６が設けられる側の面に、この第１ＬＣＤ１６の表示面とその撮影面とが平行または面一になるように取り付けられる。一方、外側カメラ３４は、図２（Ａ）に示すように、内側カメラ３２が取り付けられる面とは反対側の面、すなわち、上側ハウジング１２の外側の面（ゲーム装置１０が閉状態となった場合に外側となる面であり、図１に示す上側ハウジング１２の背面）に取り付けられる。ただし、図１においては、外側カメラ３４を破線で示してある。
【００４４】
したがって、内側カメラ３２は、上側ハウジング１２の内側の面が向く方向を撮像することが可能であり、外側カメラ３４は、内側カメラ３２の撮像方向の逆方向、すなわち、上側ハウジング１２の外側の面が向く方向を撮像することが可能である。このように、この実施例では、内側カメラ３２および外側カメラ３４の撮像方向が互いに逆方向となるように、それら２つのカメラ３２，３４が設けられる。たとえば、ゲーム装置１０を把持したユーザは、このゲーム装置１０側からユーザの方を見た景色（たとえば、当該ユーザを含む）を内側カメラ３２で撮像することができるとともに、ゲーム装置１０側からユーザとは反対側の方向を見た景色や他のユーザを外側カメラ３４で撮像することができる。
【００４５】
なお、上記連結部付近の内側の面には、音声入力装置としてマイク８４（図３参照）が収納されている。そして、上記連結部付近の内側の面には、マイク８４がゲーム装置１０外部の音を検知できるように、そのマイク８４用の孔３６が形成される。マイク８４を収納する位置およびマイク８４用の孔３６の位置は必ずしも上記連結部である必要はなく、たとえば下側ハウジング１４にマイク８４を収納し、マイク８４の収納位置に対応させて下側ハウジング１４にマイク８４用の孔３６を設けるようにしてもよい。
【００４６】
また、上側ハウジング１２の外側の面には、外側カメラ３４の近傍に第４ＬＥＤ３８（図１では、破線で示す）が取り付けられる。第４ＬＥＤ３８は、内側カメラ３２または外側カメラ３４によって撮影が行われた（シャッターボタンが押下された）時点で点灯する。また、内側カメラ３２または外側カメラ３４によって動画が撮影される場合には、第４ＬＥＤ３８は、撮影の間点灯し続ける。つまり、第４ＬＥＤ３８を点灯することによって、ゲーム装置１０による撮影が行われた（行われている）ことを撮影対象者や周囲に通知することができる。
【００４７】
また、上側ハウジング１２には、第１ＬＣＤ１６の両側に、音抜き孔４０が形成される。この音抜き孔４０に対応する位置であり、上側ハウジング１２の内部には、上述したスピーカが収納されている。音抜き孔４０は、スピーカからの音をゲーム装置１０の外部に放出するための孔である。
【００４８】
以上に説明したように、上側ハウジング１２には、画像を撮像するための構成である内側カメラ３２および外側カメラ３４と、主として、撮影された画像（撮影画像）およびゲーム画面を表示するための表示手段である第１ＬＣＤ１６とが設けられる。一方、下側ハウジング１４には、ゲーム装置１０に対する操作入力を行うための入力装置（操作ボタン２０（２０ａ−２０ｋ）およびタッチパネル２２）と、主として、操作画面およびゲーム画面を表示するための表示手段である第２ＬＣＤ１８とが設けられる。したがって、ゲーム装置１０は、２つの画面（１６，１８）および２系統の操作部（２０，２２）を備えている。
【００４９】
図３は、この実施例のゲーム装置１０の電気的な構成を示すブロック図である。図３に示すように、ゲーム装置１０は、ＣＰＵ５０、メインメモリ５２、メモリ制御回路５４、保存用データメモリ５６、プリセットデータ用メモリ５８、メモリカードインターフェース（メモリカードＩ／Ｆ）６０、メモリカードＩ／Ｆ６２、無線通信モジュール６４、ローカル通信モジュール６６、リアルタイムクロック（ＲＴＣ）６８、電源回路７０、およびインターフェース回路（Ｉ／Ｆ回路）７２、第１ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）７４、第２ＧＰＵ７６、第１ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）７８、第２ＶＲＡＭ８０、およびＬＣＤコントローラ８２等の電子部品を備えている。これらの電子部品（回路コンポーネント）は、電子回路基板上に実装されて、下側ハウジング１４（または上側ハウジング１２でもよい）内に収納される。
【００５０】
ＣＰＵ５０は、所定のプログラムを実行するための情報処理手段である。この実施例では、所定のプログラムは、ゲーム装置１０内のメモリ（たとえば保存用データメモリ５６）やメモリカード２６および／または２８に記憶されており、ＣＰＵ５０は、当該所定のプログラムを実行することによって、後述する情報処理を実行する。
【００５１】
なお、ＣＰＵ５０によって実行されるプログラムは、ゲーム装置１０内のメモリに予め記憶していてもよいし、メモリカード２６および／または２８から取得してもよいし、他の機器と通信することによって当該他の機器から取得してもよい。
【００５２】
ＣＰＵ５０には、メインメモリ５２、メモリ制御回路５４、およびプリセットデータ用メモリ５８が接続される。また、メモリ制御回路５４には、保存用データメモリ５６が接続される。メインメモリ５２は、ＣＰＵ５０のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ５２は、上記情報処理に用いられる各種データを記憶（一時記憶）したり、外部（メモリカード２６および２８や他の機器等）から取得されるプログラムを記憶したりする。この実施例では、メインメモリ５２として、たとえばＰＳＲＡＭ（Ｐｓｅｕｄｏ−ＳＲＡＭ）を用いる。保存用データメモリ５６は、ＣＰＵ５０によって実行されるプログラムや内側カメラ３２および外側カメラ３４によって撮像された画像のデータ等を記憶（保存）するための記憶手段である。この保存用データメモリ５６は、不揮発性の記憶媒体によって構成されており、たとえば、ＮＡＮＤ型フラッシュメモリを用いることができる。メモリ制御回路５４は、ＣＰＵ５０の指示に従って、保存用データメモリ５６に対するデータの読み出しおよび書き込みを制御する。プリセットデータ用メモリ５８は、ゲーム装置１０において予め設定される各種パラメータ等のデータ（プリセットデータ）を記憶するための記憶手段である。プリセットデータ用メモリ５８としては、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）バスによってＣＰＵ５０と接続されるフラッシュメモリを用いることができる。
【００５３】
メモリカードＩ／Ｆ６０および６２は、それぞれＣＰＵ５０に接続される。メモリカードＩ／Ｆ６０は、コネクタに装着されたメモリカード２６に対するデータの読み出しおよび書き込みを、ＣＰＵ５０の指示に応じて行う。また、メモリカードＩ／Ｆ６２は、コネクタに装着されたメモリカード２８に対するデータの読み出しおよび書き込みを、ＣＰＵ５０の指示に応じて行う。この実施例では、内側カメラ３２および外側カメラ３４によって撮像された画像に対応する画像データや他の装置から受信された画像データがメモリカード２６に書き込まれたり、メモリカード２６に記憶された画像データがメモリカード２６から読み出されて保存用データメモリ５６に記憶されたり、他の装置へ送信されたりする。また、メモリカード２８に記憶された各種プログラムが、ＣＰＵ５０によって読み出されて実行されたりする。
【００５４】
なお、ゲームプログラムなどの情報処理プログラムは、メモリカード２８等の外部記憶媒体を通じてゲーム装置１０に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置１０に供給されてもよい。また、情報処理プログラムは、ゲーム装置１０内部の不揮発性記憶装置に予め記録されていてもよい。さらに、情報処理プログラムを記憶する情報記憶媒体としては、上記不揮発性記憶装置に限らず、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
【００５５】
無線通信モジュール６４は、たとえばＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、ローカル通信モジュール６６は、所定の通信方式により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール６４およびローカル通信モジュール６６は、ＣＰＵ５０に接続される。ＣＰＵ５０は、無線通信モジュール６４を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール６６を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【００５６】
また、ＣＰＵ５０には、ＲＴＣ６８および電源回路７０が接続される。ＲＴＣ６８は、時間をカウントしてＣＰＵ５０に出力する。たとえば、ＣＰＵ５０は、ＲＴＣ６８によって計時された時間に基づいて、日付および現在時刻等を計算することもできる。電源回路７０は、ゲーム装置１０が有する電源（典型的には電池であり、下側ハウジング１４に収納される）から供給される電力を制御し、ゲーム装置１０の各回路コンポーネントに電力を供給する。
【００５７】
また、ゲーム装置１０は、マイク８４およびアンプ８６を備えている。マイク８４およびアンプ８６は、それぞれＩ／Ｆ回路７２に接続される。マイク８４は、ゲーム装置１０に向かって発声ないし発生されたユーザの音声ないし音（拍手や手拍子など）を検知して、当該音声ないし音を示す音声信号をＩ／Ｆ回路７２に出力する。アンプ８６は、Ｉ／Ｆ回路７２から与えられる音声信号を増幅してスピーカ（図示せず）に与える。Ｉ／Ｆ回路７２は、ＣＰＵ５０に接続される。
【００５８】
また、タッチパネル２２は、Ｉ／Ｆ回路７２に接続される。Ｉ／Ｆ回路７２は、マイク８４およびアンプ８６（スピーカ）の制御を行う音声制御回路と、タッチパネル２２の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル２２からの信号に基づいて所定の形式のタッチ位置データを生成してＣＰＵ５０に出力する。たとえば、タッチ位置データは、タッチパネル２２の入力面に対して入力が行われた位置の座標を示すデータである。
【００５９】
なお、タッチパネル制御回路は、タッチパネル２２からの信号の読み込み、および、タッチ位置データの生成を所定時間に１回の割合で行う。ＣＰＵ５０は、Ｉ／Ｆ回路７２を介して、タッチ位置データを取得することにより、タッチパネル２２に対して入力が行われた位置を知ることができる。
【００６０】
操作ボタン２０は、上記の各操作ボタン２０ａ−２０ｋによって構成され、ＣＰＵ５０に接続される。操作ボタン２０からＣＰＵ５０へは、各操作ボタン２０ａ−２０ｋに対する入力状況（押下されたか否か）を示す操作データが出力される。ＣＰＵ５０は、操作ボタン２０からの操作データを取得し、取得した操作データに応じた処理を実行する。
【００６１】
内側カメラ３２および外側カメラ３４は、それぞれＣＰＵ５０に接続される。内側カメラ３２および外側カメラ３４は、ＣＰＵ５０の指示に応じて画像を撮像し、撮像した画像に対応する画像データをＣＰＵ５０に出力する。この実施例では、ＣＰＵ５０は、内側カメラ３２および外側カメラ３４のいずれか一方に対して撮像指示を行い、撮像指示を受けたカメラ（３２，３４）が画像を撮像して画像データをＣＰＵ５０に送る。
【００６２】
第１ＧＰＵ７４には、第１ＶＲＡＭ７８が接続され、第２ＧＰＵ７６には、第２ＶＲＡＭ８０が接続される。第１ＧＰＵ７４は、ＣＰＵ５０からの指示に応じて、メインメモリ５２に記憶されている表示画像を生成するためのデータに基づいて第１の表示画像を生成し、第１ＶＲＡＭ７８に描画する。第２ＧＰＵ７６は、同様にＣＰＵ５０からの指示に応じて第２の表示画像を生成し、第２ＶＲＡＭ８０に描画する。第１ＶＲＡＭ７８および第２ＶＲＡＭ８０は、ＬＣＤコントローラ８２に接続されている。
【００６３】
ＬＣＤコントローラ８２は、レジスタ８２ａを含む。レジスタ８２ａは、ＣＰＵ５０からの指示に応じて、「０」または「１」の値を記憶する。ＬＣＤコントローラ８２は、レジスタ８２ａの値が「０」である場合には、第１ＶＲＡＭ７８に描画された第１の表示画像を第２ＬＣＤ１８に出力し、第２ＶＲＡＭ８０に描画された第２の表示画像を第１ＬＣＤ１６に出力する。また、レジスタ８２ａの値が「１」である場合には、第１ＶＲＡＭ７８に描画された第１の表示画像を第１ＬＣＤ１６に出力し、第２ＶＲＡＭ８０に描画された第２の表示画像を第２ＬＣＤ１８に出力する。
【００６４】
図４は、この実施例の仮想ゲームをプレイする場合のゲーム画面１００の一例を示す。ゲーム画面１００は、上画面１１０および下画面１２０によって構成される。図４からも分かるように、上画面１１０が第１ＬＣＤ１６に表示され、下画面１２０が第２ＬＣＤ１８に表示される。ゲーム画面１００は、図示は省略するが、２次元ないし３次元の仮想空間を仮想カメラで撮影した画像である。また、仮想空間は、たとえば、上画面１１０および下画面１２０の表示領域よりも広い範囲に設定されており、後述するオブジェクト（１１２、１１４、１１６、１２２）は、この仮想空間内に存在（移動）する。
【００６５】
なお、図４に示すゲーム画面１００では、簡単のため、背景を省略してある。
【００６６】
上画面１１０には、雲を模した敵のオブジェクト（敵オブジェクト）１１２および敵オブジェクト１１４が表示される。下画面１２０には、プレイヤがタッチペン２４を用いて描画（生成）したオブジェクト（描画オブジェクト）１２２が表示される。
【００６７】
図面では分かり難いが、この実施例の仮想ゲームでは、プレイヤのタッチ操作によって生成された描画オブジェクト１２２が、そのタッチ操作の軌跡に基づく移動経路に従って移動される。描画オブジェクト１２２が敵オブジェクト１１２、１１４に当たると、当該敵オブジェクト１１２、１１４にダメージ（攻撃力）を与えることができる。また、描画オブジェクト１２２によって与えられるダメージが、敵オブジェクト１１２、１１４のライフ（耐久力）を超えると、当該敵オブジェクト１１２、１１４は消滅される。図示は省略するが、この実施例では、描画オブジェクト１２２と同じ或いは略同じ形状（大きさ）の当り判定のポリゴンが設定される。ただし、当り判定のポリゴンは無色透明である。
【００６８】
また、描画オブジェクト１２２と敵オブジェクト１１２、１１４とが最初に当ったことが判定されたとき、その当った部分が描画オブジェクト１２２の先端部分（図４の点線で囲む部分）である場合にのみ、敵オブジェクト１１２、１１４にダメージを与えるようにしてある。これは、描画オブジェクト１２２のどの部分が最初に当っても良いことにすると、敵オブジェクト１１２、１１４を容易に攻撃できてしまうからである。たとえば、先端部分は、描画オブジェクト１２２を描画する際の描画開始位置を含み、これに連続する所定の長さ（５〜１０ドットの長さ）分である。
【００６９】
なお、この実施例では、描画オブジェクト１２２の先端部分から敵オブジェクト１１２、１１４などに当った場合にのみ、当該敵オブジェクト１１２、１１４にダメージを与えるようにしてあるが、これに限定される必要はない。描画オブジェクト１２２がどの部分から敵オブジェクト１１２、１１４に当っても、当該敵オブジェクト１１２、１１４にダメージを与えるようにしてもよい。たとえば、これらをゲームレベルに応じて使い分けてもよい。
【００７０】
たとえば、すべての敵オブジェクト１１２、１１４を制限時間（または制限攻撃回数）以内で消滅させることに成功すると、ゲームクリアとなる。一方、すべての敵オブジェクト１１２、１１４を消滅させる前に、制限時間（または制限攻撃回数）を超えてしまうと、ゲームオーバとなる。
【００７１】
ここで、描画オブジェクト１２２の生成方法および移動制御について説明する。たとえば、プレイヤが、タッチペン２４を用いてタッチ操作を開始すると、つまりタッチオフの状態からタッチオンの状態に変化すると、タッチパネル２２で検出される座標データのサンプリングが開始される。ただし、単なる手振れを排除するために、前回検出された座標データが示す座標からの距離ｄ１が一定距離Ｌ１（たとえば、３ドット）以下である場合には、今回の座標データはサンプリングされない。
【００７２】
サンプリングは、タッチ操作が終了するまで、つまりタッチオンの状態からタッチオフの状態になるまで継続される。また、座標データのサンプリングに並行して、描画オブジェクト１２２が生成（描画）される。具体的には、時間的に連続する２つの座標が線（線分）で連結される。ただし、時間的に連続する２つの座標間の距離ｄ１によって、その２つの座標間を連結する線（線分）の太さが可変的に設定される。２つの座標間の距離ｄは、数１に従って算出される。ただし、一方の座標を（ｘ１，ｙ１）とし、他方の座標を（ｘ２，ｙ２）とする。以下、座標間の距離ｄを算出する場合について同じである。
【００７３】
[数１]
ｄ＝√｛（ｘ１−ｘ２）２＋（ｙ１−ｙ２）２｝
この実施例では、距離ｄ１が短い場合（３ドット以上８ドット未満）には、線の太さが太い（５ドット）に設定される。また、距離が普通（中程度）の場合（８ドット以上１２ドット未満）には、線の太さが普通（３ドット）に設定される。さらに、距離ｄ１が長い場合（１２ドット以上）には、線の太さが細い（１ドット）に設定される。また、線の太さによって、敵オブジェクト１１２、１１４に与えるダメージ（攻撃力）の大きさが異なる。この実施例では、線が太い程、敵オブジェクト１１２、１１４に与えるダメージが大きい。
【００７４】
なお、この実施例では、距離ｄ１が短い程、線の太さを太くし、ダメージを大きくするようにしてあるが、逆にしてもよい。つまり、距離ｄ１が短い程、線の太さを細くし、ダメージを小さくするようにしてもよい。
【００７５】
このようにして、タッチ操作が無くなるまで、座標データのサンプリングおよび描画オブジェクト１２２の生成が行われる。ただし、サンプリングされた座標データの総数が最大値（たとえば、２００）に達すると、強制的に、描画オブジェクト１２２の生成が終了される。
【００７６】
描画オブジェクト１２２の生成を終了すると、描画オブジェクト１２２は移動を開始する。この実施例では、描画オブジェクト１２２は、自身の軌跡に基づく移動経路に従って移動する。ただし、描画オブジェクト１２２を構成するすべての座標を用いて、移動経路を決定すると、処理が膨大になってしまうため、この実施例では、一部の座標を用いて移動経路を決定する。このため、描画開始位置の座標から順に検索して、直前の座標との距離ｄ２が一定距離Ｌ２（たとえば、１０ドット）以下の座標を除去するようにしてある。つまり、直前の座標と距離ｄ２が一定距離Ｌ２を超える座標のみが抽出されるのである。そして、抽出された複数の座標に基づいて、描画オブジェクト１２２を移動させる方向を決定するベクトル（方向ベクトル）が算出される。ただし、この実施例では、下画面１２０に描画した描画オブジェクト１２２によって上画面１１０に存在する敵オブジェクト１１２、１１４を攻撃するため、描画オブジェクト１２２の軌跡に基づく移動経路をその描画オブジェクト１２２の末尾から描画するように、描画オブジェクト１２２の方向ベクトルが順次決定される。
【００７７】
具体的には、描画開始位置の座標から描画終了位置の座標までにおいて、ｎ個の座標が抽出された場合に、方向ベクトルＶｈは数２に従って算出される。
【００７８】
[数２]
Ｖｈ＝座標ｎ−２−座標ｎ
ただし、ｎ番目の座標ｎを始点とし、ｎ−２番目の座標ｎ−２を終点とする方向ベクトルＶｈは、ｎを１減算する毎に算出される。したがって、たとえば、図５（Ａ）に示すような描画オブジェクト１２２について、点Ｐ１から点Ｐ９までの座標ｎ（ｎ＝１、２、…、９）が抽出された場合には、図５（Ｂ）に示すような７つの方向ベクトルＶ１−Ｖ７が得られる。具体的には、１番目の方向ベクトルＶ１は、点Ｐ９を始点とし、点Ｐ７を終点とする。２番目の方向ベクトルＶ２は、点Ｐ８を始点とし、点Ｐ６を終点とする。３画番目の方向ベクトルＶ３は、点Ｐ７を始点とし、点Ｐ５を終点とする。同様にして、７番目（最後）のベクトルＶ７まで数２に従って算出されるのである。
【００７９】
なお、方向ベクトルＶｈはその方向のみが用いられるため、各ベクトルを自身の大きさで割ることにより、大きさが１の単位ベクトルで表してもよい。
【００８０】
この実施例では、描画オブジェクト１２２は、決定した方向ベクトルＶｈが示す方向に、それぞれ、一定の移動速度Ａ（数３参照）で所定フレーム（この実施例では、３フレーム）分移動する。ただし、フレームは画面更新単位時間（１／６０秒）である。移動中に、描画オブジェクト１２２がゲーム画面１００（第１ＬＣＤ１６および第２ＬＣＤ１８）の外に出てしまった場合には、描画オブジェクト１２２の移動は終了される。しかし、描画オブジェクト１２２の一部でもゲーム画面１００に表示されている場合には、移動を継続し、最後の方向ベクトルＶｈに従う移動が終了した後は、ゲーム画面１００の外に出るまで、最後の方向ベクトルＶｈの方向に移動し続ける。
【００８１】
[数３]
移動速度Ａ＝基準速度Ａ０＋弾き速度α
ただし、基準速度Ａ０は、プログラマないし開発者によって予め設定された速度であり、経験的に得られた数値に設定される。また、弾き速度αは、数４で与えられる。
【００８２】
[数４]
弾き速度α＝最大距離ｄｍａｘ×定数Ｃ
ただし、定数Ｃは、試験等によって経験的に得られた数値に設定される。
【００８３】
ここで、弾き速度αについて説明する。この実施例では、上述したように、描画オブジェクト１２２を生成するが、描画オブジェクト１２２の生成（描画）を終了するときに、プレイヤがタッチペン２４によってタッチパネル２２を弾くように、タッチオフすると、それによって、移動速度Ａが速くされる。
【００８４】
したがって、この実施例では、タッチ操作が終了されると、弾き操作があった否かを検出して、弾き操作があった場合には、それに応じた弾き速度αを数４に従って算出して、移動速度Ａに反映するようにしてある。ただし、弾き操作が無いと判断された場合には、弾き速度α＝０となる。
【００８５】
具体的には、サンプリングされた座標データが示す座標を末尾から時間的に前に順次検出し、直前の座標との間の距離ｄ３を順次算出する。また、距離ｄ３が一定距離Ｌ３（３ドット）以下であるかどうかを判断し、距離ｄ３が一定距離Ｌ３以下となる場合の座標（点）を弾く操作の開始位置とみなす。そして、弾く操作の開始位置から描画オブジェクト１２２の末尾の点（描画終了位置）までの間において、最大の距離ｄ３（最大距離ｄｍａｘ）を抽出し、数４に従って弾き速度αを算出する。また、このとき、弾く操作の開始位置から末尾までの座標に対応する座標データが排除される。これは、弾く操作は、描画オブジェクト１２２を描画（生成）するための操作とは別個の操作と考えているためである。したがって、弾く方向は描画オブジェクト１２２の移動方向に影響を与えない。
【００８６】
また、弾き操作によって弾き速度αが加算されると、描画オブジェクト１２２が１フレームの間に移動する距離が長くなる。したがって、弾き操作が有る場合は、弾き操作が無い場合の移動経路を少し拡大した移動経路に従って描画オブジェクト１２２が移動されることになる。
【００８７】
なお、詳細な説明は省略するが、弾き操作は描画オブジェクト１２２の描画を終了するときに実行されるため、サンプリングされた座標のうちの末尾の点の座標から時間的に前の所定数（たとえば、２０）の点の座標までを用いて弾き操作の有無が検出され、弾き操作が有る場合に、弾き速度αが算出される。
【００８８】
たとえば、図６に示すように、他のゲーム画面１００では、上画面１１０に表示される敵オブジェクト１１２、１１４を防護するように、複数のブロックオブジェクト１１６が配置される。上述したように、描画オブジェクト１２２の先端部分が敵オブジェクト１１２、１１４に当たらなければ、敵オブジェクト１１２、１１４にダメージを与えることができない。したがって、敵オブジェクト１１２にダメージを与えたい場合には、たとえば、縦長の棒状の描画オブジェクト１２２を生成し、２つのブロックオブジェクト１１６の間から敵オブジェクト１１２を攻撃する必要がある。また、敵オブジェクト１１４にダメージを与えたい場合には、たとえば、不等号（＜，＞）記号のような描画オブジェクト１２２を生成し、横方向から敵オブジェクト１１４を攻撃する必要がある。したがって、プレイヤは、敵オブジェクト１１２、１１４を攻撃する際の描画オブジェクト１２２の移動経路を計算しながら、当該描画オブジェクト１２２を生成するのである。
【００８９】
なお、ブロックオブジェクト１１６は、描画オブジェクト１２２が当ることによって消滅するようにしてもよいし、消滅しないようにしてもよい。いずれの場合であっても、上述したように、制限時間（制限攻撃回数）以内に、すべての敵オブジェクト１１２、１１４を倒さなければゲームクリアとならない。また、図示は省略するが、敵オブジェクト１１２、１１４は、コンピュータ（ＣＰＵ５０）の制御によって、ゲーム画面１００（ゲーム空間）内で移動することもある。
【００９０】
図７は図３に示したメインメモリ５２のメモリマップ５２０の例を示す図解図である。図３に示すように、メインメモリ５２は、プログラム記憶領域５２２およびデータ記憶領域５２４を含む。プログラム記憶領域５２２は、情報処理プログラムとしてのゲームプログラムを記憶し、ゲームプログラムは、メイン処理プログラム５２２ａ、画像生成プログラム５２２ｂ、画像表示プログラム５２２ｃ、オブジェクト描画プログラム５２２ｄ、弾き速度算出プログラム５２２ｅ、オブジェクト移動プログラム５２２ｆおよび当り判定プログラム５２２ｇなどによって構成される。
【００９１】
メイン処理プログラム５２２ａは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム５２２ｂは、画像データ５２４ｂやオブジェクトデータ５２４ｄを用いて、第１ＬＣＤ１６および第２ＬＣＤ１８にゲーム画面（１００など）を表示するためのゲーム画像データを生成するためのプログラムである。画像表示プログラム５２２ｃは、画像生成プログラム５２２ｂに従って生成されたゲーム画像データを、ゲーム画面（１００など）として第１ＬＣＤ１６および第２ＬＣＤ１８に表示するためのプログラムである。
【００９２】
オブジェクト描画プログラム５２２ｄは、プレイヤのタッチ操作に従って入力される座標データに基づいて生成されたオブジェクトデータ５２４ｄに従って描画オブジェクト１２２の画像データを生成する。つまり、オブジェクト描画プログラム５２２ｄは、座標データがサンプリングされる度に、今回の座標データが示す座標と直前の座標データが示す座標とを、それらの２つの座標間の距離ｄ１に応じた太さの線分で結ぶ。
【００９３】
弾き速度算出プログラム５２２ｅは、オブジェクトデータ５２４の末尾の座標データから一定数の座標データを用いて、弾き操作の有無を検出するとともに、弾き操作が有る場合に、最大距離ｄｍａｘに基づいて、弾き速度αを算出するためのプログラムである。
【００９４】
オブジェクト移動プログラム５２２ｆは、描画オブジェクト１２２をゲーム画面１００（ゲーム空間）において移動させるためのプログラムである。具体的には、オブジェクト移動プログラム５２２ｆは、オブジェクトデータ５２４ｄを参照して、上述したように、描画開始位置から描画終了位置までのすべての座標から、直前の座標との距離ｄ２が一定距離Ｌ２（１０ドット）を超える座標のみを抽出し、方向ベクトルＶｈ（オブジェクト移動方向データ５２４ｆ）を算出する。また、オブジェクト移動プログラム５２２ｆは、弾き速度算出プログラム５２２ｅに従って算出された弾き速度αを用いて、描画オブジェクト１２２の移動速度Ａ（オブジェクト移動速度データ５２４ｇ）を数３に従って算出する。そして、オブジェクト移動プログラム５２２ｆは、算出した方向ベクトルＶｈと、算出した移動速度Ａとに従って描画オブジェクト１２２を移動させる。
【００９５】
当り判定プログラム５２２ｇは、敵オブジェクト１１２、１１４やブロックオブジェクト１１６と、描画オブジェクト１２２との当りを判定する。ただし、上述したように、最初に、描画オブジェクト１２２の先端部分が、敵オブジェクト１１２、１１４に当った場合にのみ、当該敵オブジェクト１１２、１１４にダメージを与えることができる。
【００９６】
なお、図示は省略するが、プログラム記憶領域５２２には、音出力プログラムやバックアッププログラムも記憶される。音出力プログラムは、ゲームオブジェクトの音声（擬声音）、効果音、音楽のような、ゲームに必要な音を出力するためのプログラムである。バックアッププログラムは、ゲームイベントやプレイヤの指示に従って、ゲームデータ（途中データや結果データ）をメモリカード２６や保存用データメモリ５６に保存（セーブ）するためのプログラムである。
【００９７】
データ記憶領域５２４には、入力データバッファ５２４ａが設けられる。この入力データバッファ５２４ａは、操作ボタン２０からの操作データおよびタッチパネル２２からの座標データを時系列に従って記憶（一時記憶）するために設けられる。
【００９８】
また、データ記憶領域５２４には、画像データ５２４ｂ、太さデータ５２４ｃ、オブジェクトデータ５２４ｄ、当り判定データ５２４ｅ、オブジェクト移動方向データ５２４ｆ、オブジェクト移動速度データ５２４ｇが記憶される。
【００９９】
画像データ５２４ｂは、ゲーム画像データを生成するためのポリゴンデータやテクスチャデータなどのデータである。太さデータ５２４ｃは、描画オブジェクト１２２の線（線分）の太さを決定するためのテーブルデータある。図８（Ａ）には、太さデータ５２４ｃに従う線の太さテーブルが示される。具体的には、線の太さに対応して、ドット数およびダメージ（攻撃力）が記載される。この実施例では、３種類の太さ（細い、普通、太い）の各々に対応して、ドット数（１、３、５）が記載されるとともに、敵オブジェクト１１２、１１４に与えるダメージの数値（敵オブジェクトの耐久力を減算する数値）が記載される。ただし、これは一例であり、限定される必要はない。太さは２種類以上であれば、４種類以上に分類されてもよい。
【０１００】
図７に戻って、オブジェクトデータ５２４ｄは、描画オブジェクト１２２についての情報を示すデータであり、プレイヤのタッチ操作による座標データをサンプリングするとともに、座標間の距離ｄ１に応じてそれらを連結する線（線分）の太さを判別することによって生成される。図８（Ｂ）に示すように、オブジェクトデータ５２４ｄに従うオブジェクトの情報は、サンプル数に対応して、サンプリングした座標および線の太さが記載される。
【０１０１】
サンプル数は、座標データをサンプリングした順番に従って付されるシリアルな番号である。座標は、サンプリングされた座標データが示す座標（ＸＹ座標）である。ただし、詳細な説明は省略するが、第２ＬＣＤ１８の解像度とタッチパネル２２の検出精度とは同じに設定され、また、これらの座標系は同じに設定される。したがって、タッチパネル２２によって検出された座標データに従う座標は、そのまま第２ＬＣＤ１８上の座標として使用することができる。
【０１０２】
ただし、この実施例では、第２ＬＣＤ１８およびタッチパネル２２の横方向がＸ軸方向であり、縦方向がＹ軸方向である。図１において、第２ＬＣＤ１８およびタッチパネル２２の座標系における原点Ｏは、第２ＬＣＤ１８およびタッチパネル２２の左頂点に設定され、Ｘ軸のプラス方向は図１における右方向であり、Ｙ軸のプラス方向は図１における下方向である。
【０１０３】
また、太さは、上述したように、今回サンプリングされた座標データが示す座標と、直前にサンプリングされた座標データが示す座標との距離に応じて決定される。この太さに応じた線の太さ（ドット数）が図８（Ａ）に示した線の太さテーブルから取得される。ただし、最初（サンプル数＝１）の座標では、直前の座標が存在しないため、太さは判別されていない。
【０１０４】
図７に戻って、当り判定データ５２４ｅは、描画オブジェクト１２２が生成された際に、当該描画オブジェクト１２２と同じ或いは略同じ形状（大きさ）の透明のポリゴンで構成されるデータである。したがって、描画オブジェクト１２２が移動すると、これに従って当り判定のポリゴンも移動する。
【０１０５】
オブジェクト移動方向データ５２４ｆは、オブジェクト移動プログラム５２２ｆに従って生成されるベクトルＶｈについてのデータである。オブジェクト移動速度データ５２４ｇは、オブジェクト移動プログラム５２２ｆに従って算出される移動速度Ａについてのデータである。
【０１０６】
なお、図示は省略するが、データ記憶領域５２４には、ゲームに必要な音を生成するための音（音楽）データが記憶されたり、ゲーム処理に必要なカウタン（タイマ）やフラグなどが設けられたりする。
【０１０７】
図９ないし図１１は、図３に示したＣＰＵ５０のゲーム全体処理を示すフロー図である。図９に示すように、ＣＰＵ５０は、ゲーム全体処理を開始すると、ステップＳ１で、ゲーム画面を表示する。図示は省略するが、ここでは、ＣＰＵ５０は、敵オブジェクト１１２、１１４および背景画像が描画されたゲーム画面を生成および表示する。つまり、描画オブジェクト１２２の存在しないゲーム画面が表示される。ただし、ブロックオブジェクト１１６が描画される場合もある。
【０１０８】
なお、図示は省略するが、ゲームが開始されたときに、制限時間をカウントするためのタイマがスタートされる。ただし、攻撃回数を制限する場合には、攻撃回数をカウントするカウンタがリセットされる。
【０１０９】
次のステップＳ３では、描画開始かどうかを判断する。つまり、ＣＰＵ５０は、タッチオフの状態からタッチオンの状態に変化したかどうかを判断する。具体的には、ＣＰＵ５０は、入力データバッファ５２４ａに座標データが入力されたかどうかを判断する。ステップＳ３で“ＮＯ”であれば、つまり描画開始でなければ、そのまま同じステップＳ３に戻る。一方、ステップＳ３で“ＹＥＳ”であれば、つまり描画開始であれば、ステップＳ５でサンプリングを開始する。ここでは、ＣＰＵ５０は、最初に入力された座標データを描画開始位置の座標データとしてデータ記憶領域５２４に記憶する。つまり、オブジェクトデータ５２４ｄ（オブジェクトの情報）の生成が開始されるのである。
【０１１０】
続くステップＳ７では、距離ｄ１が一定距離Ｌ１（３ドット）以上であるかどうかを判断する。ここでは、ＣＰＵ５０は、入力データバッファ５２４ａに時系列に従って記憶された座標データを順次参照し、直前にサンプリングした座標データが示す座標と現在参照している座標データが示す座標との距離ｄ１を数１に従って算出し、当該距離ｄ１が一定距離Ｌ１以上であるかどうかを判断する。
【０１１１】
ステップＳ７で“ＮＯ”であれば、つまり距離ｄ１が一定距離Ｌ１以上でなければ、そのまま同じステップＳ７に戻る。つまり、距離ｄ１が一定距離Ｌ１未満についての座標データをサンプリングしないことにより、単なる手振れによる座標データを排除しているのである。つまり、不要なデータによってメモリが圧迫されるのを回避してある。一方、ステップＳ７で“ＹＥＳ”であれば、つまり一定距離Ｌ１以上移動すれば、ステップＳ９で、現在参照している座標データをサンプリングする。つまり、ＣＰＵ５０は、現在参照している座標データをオブジェクトデータ５２４ｄに追加する。そして、ステップＳ１１で、２つの座標間をその距離ｄ１に応じた太さの線分で連結する。ここでは、ＣＰＵ５０は、今回サンプリングした座標と直前にサンプリングした座標とを、それらの座標間の距離ｄ１に応じて太さテーブルで決定される太さ（ドット数）の線分で連結するのである。
【０１１２】
続いて、ステップＳ１３では、描画を終了したかどうかを判断する。ここでは、ＣＰＵ５０は、タッチオンの状態からタッチオフの状態に変化したかどうかを判断する。具体的には、ＣＰＵ５０は、入力データバッファ５２４ａへの座標データの入力が無くなったかどうかを判断するのである。ステップＳ１３で“ＮＯ”であれば、つまり描画を終了していなければ、ステップＳ１５で、座標データのサンプル数が最大数（２００）を超えたかどうかを判断する。
【０１１３】
ステップＳ１５で“ＹＥＳ”であれは、つまり座標データのサンプル数が最大数を超えれば、そのままステップＳ１９に進む。図示は省略するが、ステップＳ１５で“ＹＥＳ”の場合には、弾く速度αが０に設定された後に、ステップＳ１９に進む。一方、ステップＳ１５で“ＮＯ”であれば、つまり座標データのサンプル数が最大数を超えていなければ、そのままステップＳ７に戻る。
【０１１４】
また、ステップＳ１３で“ＹＥＳ”であれば、つまり描画終了であれば、ステップＳ１７で、後述する弾く速度の算出処理（図１２参照）を実行して、ステップＳ１９に進む。ステップＳ１９では、移動速度Ａを数３に従って算出する。
【０１１５】
続いて、ステップＳ２１では、直前の座標との距離ｄ２が一定距離Ｌ２（１０ドット）以下の座標を除去する。つまり、ＣＰＵ５０は、オブジェクトデータ５２４ｄが示すオブジェクトの情報から方向ベクトルＶｈを生成するための座標を抽出しているのである。次のステップＳ２３では、変数ｎに座標の総数を設定する。ここでは、ＣＰＵ５０は、ステップＳ２１の処理によって除去されなかった座標の総数を設定するのである。
【０１１６】
図１０に示すように、次のステップＳ２５では、方向ベクトルＶｈを算出する。上述したように、Ｖｈは数２に従って算出される。続くステップＳ２７では、変数ｋに初期値を設定する（ｋ＝３）。この実施例では、方向ベクトルＶｈが示す方向に、描画オブジェクト１２２を、３フレーム分移動させるため、そのフレーム数をカウントするために変数ｋが設けられる。
【０１１７】
次のステップＳ２９では、１フレーム分描画オブジェクト１２２を移動させる。ここでは、ステップＳ２５で算出された方向ベクトルＶｈに、ステップＳ１９で算出された移動速度Ａによって決定される１フレーム分の移動距離だけ、描画オブジェクト１２２が移動される。そして、ステップＳ３１で、移動後の位置において、敵オブジェクト１１２、１１４と描画オブジェクト１２２との当りが判定される。
【０１１８】
なお、当りの判定方法は、本願発明の本質的な内容ではなく、しかも既に周知であるため、詳細な説明は省略することにする。
【０１１９】
続いて、ステップＳ３３では、敵に当ったかどうかを判断する。ステップＳ３３で“ＮＯ”であれば、つまり敵に当っていない場合には、ステップＳ４１に進む。一方、ステップＳ３３で“ＹＥＳ”であれば、つまり敵に当った場合には、ステップＳ３５で、その敵オブジェクト１１２、１１４の耐久力を、描画オブジェクト１２２の先端部分の太さに応じたダメージだけ減算する。図示は省略するが、このとき描画オブジェクト１２２によるダメージが、敵オブジェクト１１２、１１４の耐久力を上回る場合には、当該敵オブジェクト１１２、１１４はゲーム画面１００（ゲーム空間）から消滅される。
【０１２０】
なお、図示は省略するが、上述したように、描画オブジェクト１２２の先端部分から敵オブジェクト１１２、１１４に当った場合にのみ、当該敵オブジェクト１１２、１１４にダメージを与えるようにしてあるため、描画オブジェクト１２２の先端部分以外の部分から敵オブジェクト１１２、１１４に当った場合には、敵オブジェクト１１２、１１４にダメージを与えずに、ステップＳ４１に進む。
【０１２１】
また、図示は省略するが、描画オブジェクト１２２の先端部分からブロックオブジェクト１１６に当った場合には、当該ブロックオブジェクト１１６が消滅されることもある。
【０１２２】
そして、ステップＳ３７で、すべての敵が消滅したかどうかを判断する。つまり、ＣＰＵ５０は、ゲーム画面１００（ゲーム空間）において、すべての敵オブジェクト１１２、１１４が消滅したかどうかを判断する。ステップＳ３７で“ＮＯ”であれば、つまりゲーム画面１００（ゲーム空間）に、少なくとも１つの敵オブジェクト１１２、１１４が存在する場合には、ステップＳ４１に進む。一方、ステップＳ３７で“ＹＥＳ”であれば、つまりゲーム画面１００（ゲーム空間）において、すべての敵オブジェクト１１２、１１４が消滅すれば、ステップＳ３９で、ゲームクリア処理を実行して、ゲーム全体処理を終了する。たとえば、ステップＳ３９では、ゲームをクリアしたことを表現するゲーム画面が表示されたり、ゲームをクリアしたことを表現する効果音や音楽が出力されたりする。
【０１２３】
ステップＳ４１では、制限時間（たとえば、６０秒）を超えたかどうかを判断する。つまり、ＣＰＵ５０は、ゲーム開始からの時間が制限時間を超えたかどうかを判断するのである。ただし、攻撃回数を制限する場合には、ここで、攻撃制限回数を超えたかどうかが判断される。また、攻撃回数は、後述するように、ステップＳ５３の処理を終えて、ステップＳ３に戻る際に、１加算される。さらに、ゲーム開始からの時間と攻撃回数との両方に制限を設けて、いずれか一方でも制限を超える場合には、ゲームオーバとなるようにしてもよい。
【０１２４】
ステップＳ４１で“ＮＯ”であれば、つまり制限時間を超えていなければ、図１１に示すステップＳ４５に進む。一方、ステップＳ４１で“ＹＥＳ”であれば、つまり制限時間を超えていれば、ステップＳ４３で、ゲームオーバ処理を実行して、ゲーム全体処理を終了する。たとえば、ステップＳＳ４３では、ゲームオーバになったことを表現するゲーム画面が表示されたり、ゲームオーバになったことを表現する効果音や音楽が出力されたりする。
【０１２５】
図１１に示すように、ステップＳ４５では、変数ｋを１減算し（ｋ＝ｋ−１）、ステップＳ４７では、変数ｋが０（ｋ＝０）であるかどうかを判断する。つまり、ＣＰＵ５０は、方向ベクトルＶｈの方向に、３フレーム分描画オブジェクト１２２を移動させたかどうかを判断するのである。
【０１２６】
ステップＳ４７で“ＮＯ”であれば、つまり変数ｋが０でなければ、図１０に示したステップＳ２９に戻る。一方、ステップＳ４７で“ＹＥＳ”であれば、つまり変数ｋが０であれば、ステップＳ４９で、変数ｎを１減算して（ｎ＝ｎ−１）、ステップＳ５１で、変数ｎが１である（ｎ＝１）かどうかを判断する。つまり、ＣＰＵ５０は、方向ベクトルＶｈに従う描画オブジェクト１２２の移動を終了したかどうかを判断する。ステップＳ５１で“ＮＯ”であれば、つまり変数ｎが１でなければ、ステップＳ２５に戻って、次の方向ベクトルＶｈを算出する。一方、ステップＳ５１で“ＹＥＳ”であれば、つまり変数ｎが１であれば、ステップＳ５３で、ゲーム画面１００外に出るまで、描画オブジェクト１２２を移動させる。ただし、ステップＳ５３では、描画オブジェクト１２２は、最後に算出された方向ベクトルＶｈの方向に、移動速度Ａで移動される。
【０１２７】
なお、図示は省略したが、ステップＳ２９で、描画オブジェクト１２２を移動させた場合に、描画オブジェクト１２２のすべてがゲーム画面１００外に出てしまった場合には、描画オブジェクト１２２をすべての方向ベクトルＶｈに従って移動させていない場合であっても、描画オブジェクト１２２を消滅させて、ステップＳ３に戻る。
【０１２８】
図１２は、図９に示したステップＳ１７の弾く速度の算出処理のフロー図である。図１２に示すように、ＣＰＵ５０は、弾く速度の算出処理を開始すると、ステップＳ７１で、変数ｐに座標総数を設定する。ここでは、ＣＰＵ５０は、オブジェクトデータ５２４ｄに含まれる座標の総数ｍを変数ｐに設定するのである。次にステップＳ７３で、ｐ番目の座標とｐ−１番目の座標との距離ｄ３を算出し、ステップＳ７５で、ステップＳ７３で算出した距離ｄ３をメインメモリ５２の作業領域（図示せず）に記憶（一時記憶）する。
【０１２９】
続いて、ステップＳ７７では、距離ｄ３が一定距離Ｌ３（この実施例では、３ドット）以下であるかどうかを判断する。ステップＳ７７で“ＮＯ”であれば、つまり距離ｄ３が一定距離Ｌ３を超えている場合には、ステップＳ７９で、変数ｐを１減算し（ｐ＝ｐ−１）、ステップＳ８１で、変数ｐが座標総数−２０になったかどうかを判断する。つまり、サンプリングしたすべての座標のうち、末尾の座標から２０サンプル分の座標について、弾く操作の有無の判断処理を終了したかどうかを判断する。
【０１３０】
ステップＳ８１で“ＮＯ”であれば、つまり変数ｐが座標総数−２０でなければ、そのままステップＳ７３に戻る。一方、ステップＳ８１で“ＹＥＳ”であれば、つまり変数ｐが座標総数−２０であれば、弾く操作が無いと判断して、ステップＳ８３で、弾く速度αに０を設定して、ゲーム全体処理にリターンする。
【０１３１】
また、ステップＳ７７で“ＹＥＳ”であれば、つまり距離ｄ３が一定距離Ｌ３以下であれば、ステップＳ８５で、ｐ番目の座標を弾く操作の開始位置とみなす。続くステップＳ８７では、弾く操作の開始位置と末尾の座標との間で、最大距離ｄｍａｘを取得する。つまり、ＣＰＵ５０は、メインメモリ５２の作業領域に記憶した複数の距離ｄ３のうちの最大値を取得する。
【０１３２】
次のステップＳ８９では、最大距離ｄｍａｘを用いて、数４に従って弾く速度αを算出する。そして、ステップＳ９１で、弾く操作の開始位置から末尾の座標までの座標をオブジェクトデータ５２４ｄから削除して、ゲーム全体処理にリターンする。
【０１３３】
この実施例によれば、プレイヤのタッチ操作に従って描画オブジェクトが生成され、生成された描画オブジェクトがそのタッチ操作の軌跡に基づいて決定される経路に従って移動されるので、簡単な操作で複雑なオブジェクトを生成し、当該オブジェクトを複雑な経路に従って移動させることができる。したがって、戦略を立てて描画オブジェクトを生成する必要があるため、ゲームへの興味を増大させることができる。
【０１３４】
他の実施例のゲーム装置１０は、描画オブジェクト１２２を描画（生成）している間に、一定時間以上、タッチ位置の座標が変化しない場合には、現時点までに生成された描画オブジェクト１２２の複製を、その軌跡に基づく移動経路に従って移動させるようにした以外は、上述の実施例と同じであるため、重複した記載については省略することにする。
【０１３５】
図示は省略するが、たとえば、描画オブジェクト１２２の複製は、当該描画オブジェクト１２２を半透明で表したオブジェクト（複製オブジェクト）である。この複製オブジェクトは、現時点において、描画オブジェクト１２２がどのように移動するかを、つまり描画オブジェクトの移動経路を、プレイヤに教示するためのものである。したがって、複製オブジェクトについては、敵オブジェクト１１２、１１４やブロックオブジェクト１１６との当りを判定する必要はないため、当り判定のポリゴンは設定されない。
【０１３６】
また、複製オブジェクトは、タッチ位置の座標が一定時間以上変化しない場合に、移動を開始するため、弾き操作による速度の増加は無い。
【０１３７】
具体的には、図９−図１１に示したゲーム全体処理に、図１３および図１４に示す複製オブジェクトの移動処理が追加される。なお、複製オブジェクトの移動処理は、描画オブジェクト１２２の移動処理と略同じであるため、同じ処理については簡単に説明することにする。
【０１３８】
図１３に示すように、ステップＳ７で“ＮＯ”であれば、つまり一定距離Ｌ１以上移動していなければ、ステップＳ１０１で、停止カウンタがカウント中であるかどうかを判断する。停止カウンタは、タッチ位置が停止している時間をカウントするためのカウンタ（タイマ）であり、図示は省略するが、メインメモリ５２のデータ記憶領域５２４に設定される。ステップＳ１０１で“ＹＥＳ”であれば、つまり停止カウンタがカウント中であれば、そのままステップＳ１０５に進む。一方、ステップＳ１０１で“ＮＯ”であれば、つまり停止カウンタがカウント中でなければ、ステップＳ１０３で、停止カウンタのカウントを開始して、ステップＳ１０５に進む。ただし、ステップＳ１０３では、停止カウンタがリセットおよびスタートされる。
【０１３９】
ステップＳ１０５では、停止時間が一定時間（たとえば、３秒）を超えたかどうかを判断する。つまり、ＣＰＵ５０は、停止カウンタのカウント値が一定時間を超えたかどうかを判断するのである。ステップＳ１０５で“ＮＯ”であれば、つまり停止時間が一定時間以下であれば、そのままステップＳ７に戻る。一方、ステップＳ１０５で“ＹＥＳ”であれば、つまり停止時間が一定時間を超えれば、ステップＳ１０７で、停止カウンタのカウント停止を指示して、図１４に示すステップＳ１０９に進む。
【０１４０】
なお、図示は省略するが、ステップＳ７で“ＹＥＳ”と判断された場合にも、停止カウンタのカウントが停止される。
【０１４１】
図１４に示すように、ステップＳ１０９では、直前の座標との距離が一定距離Ｌ２以下の座標を除去する。次のステップＳ１１１では、変数ｎに座標の総数を設定する。続いて、ステップＳ１１３では、方向ベクトルＶｈを算出する。そして、ステップＳ１１５で、変数ｋに初期値（３）を設定する。
【０１４２】
次のステップＳ１１７では、１フレーム分複製オブジェクトを移動させる。ただし、移動速度Ａは、予め設定された基準速度Ａ０である。次にステップＳ１１９では、変数ｋを１減算する。そして、変数ｋが０であるかどうかを判断する。ステップＳ１２１で“ＮＯ”であれば、そのままステップＳ１１７に戻る。一方、ステップＳ１２１で“ＹＥＳ”であれば、ステップＳ１２３で、変数ｎを１減算する。
【０１４３】
そして、ステップＳ１２５で、変数ｎが１であるかどうかを判断する。ステップＳ１２５で“ＮＯ”であれば、そのままステップＳ１１３に戻る。一方、ステップＳ１２５で“ＹＥＳ”であれば、ステップＳ１２７で、画面外に出るまで複製オブジェクトを移動させて、ステップＳ７に戻る。
【０１４４】
他の実施例によれば、所定の条件の下に、複製オブジェクトを移動させて、予め描画オブジェクトの移動経路を知ることができるので、そのままタッチオフしたり、描画オブオブジェクトの描画を継続したり、弾き操作を実行したりするなど、戦略を立てて敵オブジェクトを攻撃することができる。したがって、ゲームへの興味をさらに増大させることができる。
【０１４５】
なお、上述の実施例では、弾き操作が有った場合には、それによって描画オブジェクトの速度を速くするようにしたが、速度を遅くするようにしてもよい。
【０１４６】
また、上述の実施例では、弾き操作が有った場合に、その弾き操作における最大距離に基づいて加算する速度を算出するようにしたが、これに限定される必要はない。たとえば、いずれかの操作スイッチ２０を押下したり、仮想ゲームにおいて所定のイベントが発生したりした場合に、描画オブジェクトの移動速度を速くしてもよい。また、加算する速度は、一定値に決定していてもよい。
【０１４７】
さらに、上述の実施例では、オブジェクト制御装置の一例として、携帯型のゲーム装置についてのみ説明したが、これに限定される必要はない。たとえば、タッチパネル、コンピュータマウスまたはペンタブレットのようなポインティングデバイスを有する、またはそのようなポインティングデバイスが接続された、据置型のゲーム装置、パーソナルコンピュータ、ＰＤＡ、ゲーム機能を有する携帯電話機のような他のオブジェクト制御装置にも本願発明を適用することができる。ただし、タッチパネル以外のポインティングデバイスを設ける場合には、ポインティングデバイスによる指示位置を示す必要があるため、マウスポインタのような指示画像がゲーム画面上に表示される。
【０１４８】
さらにまた、ゲーム装置の構成は実施例のものに限定される必要はない。たとえば、カメラは、１つでもよく、無くてもよい。また、タッチパネルを２つのＬＣＤ上に設けてもよい。
【符号の説明】
【０１４９】
１０  …ゲーム装置
１２，１４  …ハウジング
１６，１８  …ＬＣＤ
２０  …操作ボタン
２２  …タッチパネル
２４  …タッチペン
２６，２８  …メモリカード
３２，３４  …カメラ
５０  …ＣＰＵ
５２  …メインメモリ
５４  …メモリ制御回路
５６  …保存用データメモリ
５８  …プリセットデータ用メモリ
６０，６２  …メモリカードＩ／Ｆ
６４  …無線通信モジュール
６６  …ローカル通信モジュール
６８  …ＲＴＣ
７０  …電源回路
７２  …Ｉ／Ｆ回路
７４，７６  …ＧＰＵ
７８，８０  …ＶＲＡＭ
８２  …ＬＣＤコントローラ
８４  …マイク
【図１】
2011177203.tif 000003
【図２】
2011177203.tif 000004
【図３】
2011177203.tif 000005
【図４】
2011177203.tif 000006
【図５】
2011177203.tif 000007
【図６】
2011177203.tif 000008
【図７】
2011177203.tif 000009
【図８】
2011177203.tif 000010
【図９】
2011177203.tif 000011
【図１０】
2011177203.tif 000012
【図１１】
2011177203.tif 000013
【図１２】
2011177203.tif 000014
【図１３】
2011177203.tif 000015
【図１４】
2011177203.tif 000016