JP2013149260A - 情報処理プログラムおよび情報処理装置 - Google Patents

情報処理プログラムおよび情報処理装置 Download PDF

Info

Publication number
JP2013149260A
JP2013149260A JP2013028511A JP2013028511A JP2013149260A JP 2013149260 A JP2013149260 A JP 2013149260A JP 2013028511 A JP2013028511 A JP 2013028511A JP 2013028511 A JP2013028511 A JP 2013028511A JP 2013149260 A JP2013149260 A JP 2013149260A
Authority
JP
Japan
Prior art keywords
card
objects
obj
information processing
processing program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013028511A
Other languages
English (en)
Other versions
JP5705894B2 (ja
Inventor
Yuichiro Ito
裕一朗 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2013028511A priority Critical patent/JP5705894B2/ja
Publication of JP2013149260A publication Critical patent/JP2013149260A/ja
Application granted granted Critical
Publication of JP5705894B2 publication Critical patent/JP5705894B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【構成】 ゲーム装置10はLCD14を含み、このLCD14上にタッチパネル24が設けられる。LCD14には、トランプゲームのゲーム画面(100,200)が表示される。プレイヤがゲーム画面(100,200)に表示されたカードオブジェクト(OBJ)をタッチオンすると、タッチオンされたカードオブジェクト(OBJ)上に他のカードオブジェクト(OBJ)が重なっており、その重なり具合が大きい場合には、当該他のカードオブジェクト(OBJ)が移動される。したがって、プレイヤがタッチオンしたカードオブジェクト(OBJ)のマークおよび文字(数字または英字)が視認可能に表示される。
【効果】 表示画面の大きさに制約があっても、所望のオブジェクトの内容を容易に知ることができる。
【選択図】 図1

Description

この発明は情報処理プログラムおよび情報処理装置に関し、特にたとえば、タッチパネルのようなポインティングデバイスを用いた、情報処理プログラムおよび情報処理装置に関する。
背景技術の一例が非特許文献1に開示されている。この非特許文献1には、クロンダイクやスパイダーなどのトランプゲームを、PCのディスプレイにウインドウを開いてプレイすることが記載されている。たとえば、クロンダイクやスパイダーでは、トランプのカードを所定のルールに従って場に積み重ねるため、カードの列が長くなった場合には、プレイヤないしユーザは、ウインドウを大きくして、カードの種類が見えるようにするのが一般的である。ただし、カードの種類とは、マーク(スペード、ダイヤ、クローバー、ハートなど)と、数字(2−10)または英字(A,J,Q,K)とを意味する。また、英字A,J,Q,Kは、それぞれ、数字の1,11,12,13に相当する。
また、背景技術の他の例が非特許文献2ないし4に開示されている。非特許文献2−4は、いずれも、携帯電話機のようなゲーム機能を備えた携帯端末を用いて、クロンダイクやスパイダーなどのトランプゲームをプレイすることが記載されている。
http://jp.realarcade.com/kabegami/games/compulsive solitaire/index.html http://www.kemco.jp/applipage/04_game/soli.html http://www.g-mode.jp/appli/tenshisolitaire/ http://www.g-mode.jp/appli/tenshisolitaire/dx/
上述したように、非特許文献1に開示されているように、PCでトランプゲームをプレイする場合には、場に配置されたカードの列が長くなっても、ウインドウを大きくすることにより、カードを表示する領域が大きくされるため、カードの種類が見えなくなることはない。つまり、プレイに支障はない。しかし、携帯電話機のような携帯端末では、LCDのような表示器の表示画面は小さく、しかも固定されているため、PCでトランプゲームをプレイする場合のように、ウインドウを大きくすることができない。このため、カードの種類が見えないことが起こり得る。そのため、非特許文献2−4では、カードの数や種類を制限して、表示されるカードの種類を視認可能にしてある。また、非特許文献3および4では、内容を見なくてもその種類が分かるカードについては、重なり合うカード同士を詰めて表示することにより、ゲームに使用されるカードの数を比較的多くするようにしてあるが、この場合であっても、表示画面(ウインドウ)を拡大することはできないため、PCで遊ぶ場合に比べて、使用するカードの数や種類は制限されてしまう。このため、携帯端末を用いる場合には、ゲームが簡単になってしまい、面白味に欠けるという問題がある。
それゆえに、この発明の主たる目的は、新規な、情報処理プログラムおよび情報処理装置を提供することである。
また、この発明の他の目的は、表示画面の大きさに制約がある場合であっても、重なり合った複数のオブジェクトの内容を容易に把握することができる、情報処理プログラムおよび情報処理装置を提供することである。
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
第1の発明は、情報処理装置のコンピュータによって実行される情報処理プログラムであって、ポインティングデバイスからの信号に基づいて座標データを検出する入力検出ステップ、入力検出ステップによって検出された座標データに基づいて、表示装置の表示領域に対して第1操作が行われたかどうかを判断する第1操作判定ステップ、および第1操作判定ステップによって第1操作が行われたことが判定されたとき、表示領域において重なった状態で配置された複数のオブジェクトのうちの少なくとも1つのオブジェクトを移動させて、下層のオブジェクトの露出量を増加させるオブジェクト移動制御ステップを実行させる、情報処理プログラムである。
第1の発明では、情報処理プログラムは、情報処理装置(10)のコンピュータによって実行される。入力検出ステップ(34)は、ポインティングデバイス(24)からの信号に基づいて座標データを検出する。第1操作判定ステップ(34,S19)は、入力検出ステップによって検出された座標データに基づいて、表示装置(14)の表示領域に対して第1操作が行われたかどうかを判断する。オブジェクト移動制御ステップ(34,S11)は、第1操作判定ステップによって第1操作が行われたことが判定されたとき(S19で“YES”)、表示領域において重なった状態で配置された複数のオブジェクトのうちの少なくとも1つを移動させて、下層のオブジェクトの露出量を増加させる。以下、単に「オブジェクト」と言う場合には、単数または複数のオブジェクトを意味する。
第1の発明によれば、表示領域に対する第1操作が有ると、重なった状態の複数のオブジェクトのうちの少なくとも1つのオブジェクトを移動させることにより、下層に在るオブジェクトの露出量を増加させるので、その表示内容を視認可能にすることができる。つまり、表示画面の大きさに制約がある場合であっても、重なり合った複数のオブジェクトの内容を容易に把握することができる。
第2の発明は、第1の発明に従属し、オブジェクト移動制御ステップは、座標データが示す位置に対応するオブジェクト以外のオブジェクトを移動させる。
第2の発明では、オブジェクト移動制御ステップは、座標データが示す位置に対応するオブジェクト以外のオブジェクトを移動させる。つまり、ポインティングデバイスによって指示されたオブジェクト以外のオブジェクトが移動される。
第2の発明によれば、ポインティングデバイスによって指示されたオブジェクト以外のオブジェクトが移動されるので、指示されたオブジェクトはそのままであり、当該指示されたオブジェクトを見易くすることができる。
第3の発明は、第1の発明に従属し、オブジェクト移動制御ステップは、少なくとも1つのオブジェクトを座標データが示す位置から離れる方向に移動させる。
第3の発明では、オブジェクト移動制御ステップは、少なくとも1つのオブジェクトを座標データが示す位置から離れる方向に移動させる。したがって、たとえば、ポインティ
ングデバイスによって指示されたオブジェクト以外のオブジェクトが、当該指示されたオブジェクトから離れるように、移動される。
第3の発明によれば、指示された位置から離れるようにオブジェクトを移動させるので、指示されたオブジェクトを見易くすることができる。
第4の発明は第1の発明に従属し、複数のオブジェクトの重なり具合を算出する重なり算出ステップをさらに実行させ、オブジェクト移動制御ステップは、重なり算出ステップで算出された複数のオブジェクトの重なり具合に応じて、複数のオブジェクトの少なくとも1つを移動させる。
第4の発明では、重なり算出ステップ(34,S163)は、複数のオブジェクトの重なり具合を算出する。オブジェクト移動制御ステップは、算出された重なり具合に応じて、複数のオブジェクトの少なくとも1つを移動させる。
第4の発明によれば、重なり具合に応じてオブジェクトを移動させるので、オブジェクトの移動制御を適切に行うことができる。
第5の発明は第4の発明に従属し、重なり算出ステップは、複数のオブジェクトの重なり具合を示す値を算出し、オブジェクト移動制御ステップは、第1操作判定ステップによって第1操作が行われたと判定され、かつ、重なり算出ステップによって算出された重なり具合を示す値が所定値以上であるときに、複数のオブジェクトのうちの少なくとも1つのオブジェクトを移動させる。
第5の発明では、重なり算出ステップは、複数のオブジェクトの重なり具合を示す値(実施例では、Y座標間隔)を算出する。ただし、Y座標間隔が小さければ、重なり具合は大きく、Y座標間隔が大きければ、重なり具合は小さい。オブジェクト移動制御ステップは、第1操作判定ステップによって第1操作が行われたと判定され、かつ、重なり算出ステップによって算出された重なり具合を示す値が所定値以上であるときに(S165で“NO”)、複数のオブジェクトのうちの少なくとも1つのオブジェクトを移動させる。
第5の発明によれば、重なり具合を示す値が所定値以上である場合に、オブジェクトを移動させるので、たとえば所定値をオブジェクトの内容を見ることができる値に設定しておけば、オブジェクトの内容が見えない場合にのみ、オブジェクトを移動させるようにすることができる。
第6の発明は第1ないし第5の発明に従属し、入力検出ステップによって検出された座標データに基づいて第1操作とは異なる第2操作が行われたか否かを判定する第2操作判定ステップ、および第2操作判定ステップによって第2操作が行われたことが判定されたときに、入力検出ステップによって検出された座標データと重なった状態の複数のオブジェクトとに基づいて、選択可能なオブジェクトのうち、少なくとも1つのオブジェクトを自動的に選択するオブジェクト選択ステップをさらに実行させる。
第6の発明では、第2操作判定ステップ(34,S113)は、入力検出ステップによって検出された座標データに基づいて第1操作とは異なる第2操作が行われたか否かを判定する。オブジェクト選択ステップ(34,S117,S119,S121,S123,S125)は、入力検出ステップによって検出された座標データと重なった状態の複数のオブジェクトとに基づいて、選択可能なオブジェクトのうち、少なくとも1つのオブジェクトを自動的に選択するオブジェクト選択ステップをさらに実行させる。
第6の発明によれば、第2操作があったときに、選択可能なオブジェクトの中から、少なくとも1つのオブジェクトを選択するので、たとえば、第1操作によってオブジェクトの内容を知り、その後の第2操作によって所望のオブジェクトを選択することができる。さらに、選択可能なオブジェクトの中から、少なくとも1つのオブジェクトを自動的に選択するので、操作性を向上させることができる。
第7の発明は第6の発明に従属し、複数のオブジェクトから選択可能なオブジェクトを決定する選択可能オブジェクト決定ステップをさらに実行させ、オブジェクト選択ステップは、第2操作判定ステップによって第2操作が行われたことが判定されたときに、選択可能オブジェクト決定ステップによって決定された選択可能なオブジェクトのうち、少なくとも1つのオブジェクトを自動的に選択する。
第7の発明では、選択可能オブジェクト決定ステップ(32,S119)は、複数のオブジェクトから選択可能なオブジェクトを決定する。実施例では、トランプゲームのルールの従って選択可能なオブジェクトが決定される。オブジェクト選択ステップは、第2操作が行われたと判定されたときに、決定された選択可能なオブジェクトのうち、少なくとも1つのオブジェクトを自動的に選択する。
第7の発明によれば、たとえば所定のルールに従って決定された選択可能なオブジェクトの中から、所望のオブジェクトを選択することができる。
第8の発明は、第6または第7の発明に従属し、オブジェクト選択ステップは、選択可能なオブジェクトのうち、入力検出ステップによって検出された座標データが示す位置に最も近い位置に配置されているオブジェクトを選択する。
第8の発明では、オブジェクト選択ステップは、選択可能なオブジェクトのうち、検出された座標データが示す位置に最も近い位置に配置されているオブジェクトを選択する。
第8の発明によれば、検出された座標に最も近い位置に配置されているオブジェクトを選択するので、直接的にオブジェクトを指示しなくても、所望のオブジェクトを選択することができる。
第9の発明は、第6または第7の発明のいずれかに従属し、オブジェクト選択ステップは、第2操作判定ステップによって第2操作が行われたことが判定され、かつ、座標データが示す位置に対応するオブジェクトが選択可能でないときに、選択可能なオブジェクトのうち、少なくとも1つのオブジェクトを自動的に選択する。
第9の発明では、オブジェクト選択ステップは、第2操作が行われたことが判定され、かつ座標データ示す位置に対応する位置にオブジェクトが選択可能でないときに、選択可能なオブジェクトのうち、少なくとも1つのオブジェクトを自動的に選択する。つまり、ポインティングデバイスによって指示したオブジェクトが選択可能でない場合には、選択可能なオブジェクトからオブジェクトが選択される。
第9の発明によれば、直接オブジェクトを指示しなくても、所望のオブジェクトを選択することができる。
第10の発明は、第6ないし第9の発明のいずれかに従属し、オブジェクト選択ステップは、入力検出ステップによって検出された座標データが示す位置に最も近い位置に配置されているオブジェクトに関連するオブジェクトをさらに選択する。
第10の発明では、オブジェクト選択ステップは、検出された座標データが示す位置に最も近い位置に配置されているオブジェクトに関連するオブジェクトをさらに選択する。
第10の発明によれば、所望のオブジェクトのみならず、それに関連するオブジェクトを第2操作によって選択することができる。
第11の発明は第6ないし第11の発明のいずれかに従属し、オブジェクト選択ステップによって選択された少なくとも1つのオブジェクトを表示装置に表示させる表示ステップをさらに実行させる。
第11の発明では、表示ステップ(34,S53,S55,S57,S59,S61,S129)は、オブジェクト選択ステップによって選択された少なくとも1つのオブジェクトを表示装置に表示させる。
第11の発明によれば、選択されたオブジェクトを表示装置に表示するので、たとえば表示装置に表示されていないオブジェクトを選択した場合であっても、選択後に表示させることにより、選択したオブジェクトをユーザに把握させることができる。
第12の発明は第11の発明に従属し、表示ステップは、オブジェクト選択ステップによって選択された少なくとも1つのオブジェクトを、入力検出ステップによって検出された座標データ示す位置に応じた表示領域の位置に表示させる。
第12の発明では、表示ステップは、選択されたオブジェクトを検出された座標データが示す位置に応じた表示領域の位置に表示させる。たとえば、指示された表示領域の位置(座標)に選択されたオブジェクトが表示される。
第12の発明によれば、検出された座標に対応してオブジェクトを表示するので、たとえば座標に追従するように選択されたオブジェクトを表示することができる。
第13の発明は第1ないし第12の発明に従属し、移動制御ステップは、重なった状態の複数のオブジェクトの露出量が一定量になるように、当該複数のオブジェクトのうちの少なくとも1つを移動させる。
第13の発明では、移動制御ステップは、重なった状態の複数のオブジェクトの露出量が一定量になるように、当該複数のオブジェクトのうちの少なくとも1つを移動させる。たとえば、重なった状態のオブジェクトが2つであれば、一方のオブジェクトをいずれかの方向に移動させたり、両方のオブジェクトを互いに逆向きに移動させたりする。
第13の発明によれば、重なった状態の複数のオブジェクトの露出量が一定量になるようにオブジェクトを移動させるので、一定量をオブジェクトの内容が見える値に設定しておけば、適切にオブジェクトを移動させることができる。
第14の発明は第1ないし第13の発明のいずれかに従属し、ポインティングデバイスは、タッチパネルを含み、入力検出ステップは、タッチパネルへのタッチオンの位置に対する表示領域の座標に対応する座標データを検出する。
第14の発明では、ポインティングデバイスは、タッチパネルを含む。入力検出ステップは、タッチオンの位置に対する表示領域の座標に対応する座標データを検出する。
第14の発明によれば、タッチパネルへのタッチオンの位置に対する表示領域の座標を
検出するので、直感的に入力操作を行うことができる。
第15の発明は第14の発明に従属し、第1操作判定手段は、入力検出ステップによって検出された座標データに基づいて、タッチパネルへのタッチオン操作を検出したとき、第1操作が有ることを判定する。
第15の発明では、第1操作判定手段は、検出された座標データに基づいて、タッチパネルへのタッチオン操作を検出したとき、第1操作が有ることを判定する。たとえば、座標データが入力されていない状態から座標データが入力された状態になったときに、タッチオン操作が検出され、これによって第1操作があることが判定される。
第15の発明によれば、タッチオン操作を検出するだけなので、第1操作を簡単に判定することができる。
第16の発明は第14または第15の発明に従属し、第2操作判定手段は、入力検出ステップによって検出された座標データに基づいて、タッチパネルへのドラッグ操作を検出したとき、第2操作が有ることを判定する。
第16の発明では、第2操作判定手段は、検出された座標データに基づいて、タッチパネルへのドラッグ操作を検出したとき、第2操作が有ることを判定する。たとえば、座標データが入力されている状態が継続的に検出され、時間的に連続する座標データが示す2つの座標の差分が所定値以上である場合に、ドラッグ操作が検出され、これによって第2操作があることが判定される。
第16の発明によれば、ドラッグ操作を検出するだけなので、第2操作を簡単に判定することができる。
第17の発明は第1ないし第16の発明に従属し、移動制御ステップによって少なくとも1つのオブジェクトを移動して第1操作判定ステップで第1操作が行われなくなったと判定されたときに、当該少なくとも1つのオブジェクトを移動前の位置に戻す復元ステップをさらに実行させる。
第17の発明では、復元ステップ(34,S145,S147,S149,S151,S163,S165,S169,S173,S177)は、移動制御ステップによって少なくとも1つのオブジェクトを移動して第1操作判定ステップで第1操作が行われなくなったと判定されたときに、当該少なくとも1つのオブジェクトを移動前の位置に戻す。
第17の発明によれば、第1操作が行われなくなったときに、第1操作に応じて移動させたオブジェクトを元の位置に戻すので、第1操作前のオブジェクトの配置位置を崩さずに、所望のオブジェクトの内容を見ることができる。
第18の発明は第17の発明に従属し、復元ステップは、移動制御ステップによって少なくとも1つのオブジェクトを移動して第1操作判定ステップで第1操作が行われなくなったと判定されたときから一定時間が経過したとき、当該少なくとも1つのオブジェクトを移動前の位置に戻す。
第18の発明では、復元ステップは、移動制御ステップによって少なくとも1つのオブジェクトを移動して第1操作が行われなくなったと判定されたときから一定時間が経過したとき、当該少なくとも1つのオブジェクトを移動前の位置に戻す。
第18の発明によれば、第1操作が行われなくなってから一定時間が経過したときに、第1操作に応じて移動させたオブジェクトを元の位置に戻すので、第1操作前のオブジェクトの配置位置を崩さず、所望のオブジェクトの内容を確実に見ることができる。
第19の発明は、第6ないし第18の発明のいずれかに従属し、オブジェクト選択ステップによって選択された少なくとも1つのオブジェクトを、入力検出ステップによって検出された座標データが示す位置に追従するように移動させる選択オブジェクト移動制御ステップをさらに実行させる。
第19の発明では、選択オブジェクト移動ステップ(34,S53,S55,S57,S59,S61)は、オブジェクト選択ステップによって選択された少なくとも1つのオブジェクトを、検出された座標データが示す位置に追従するように移動させる。
第19の発明によれば、選択されたオブジェクトが検出された座標に追従するように移動されるので、直感的な操作によってオブジェクトを移動させることができる。
第20の発明は第6ないし第19の発明のいずれかに従属し、内容を視認可能なオブジェクトと内容を視認不能なオブジェクトとが存在し、オブジェクト選択ステップは、内容を視認可能なオブジェクトから、少なくとも1つのオブジェクトを選択する。
第20の発明では、内容を視認可能なオブジェクト(実施例では、表向きのOBJ)と内容を視認不能なオブジェクト(実施例では、裏向きのOBJ)が存在する。オブジェクト選択ステップは、内容を視認可能なオブジェクトから、オブジェクトを選択する。つまり、選択可能なオブジェクトは、内容が視認可能なオブジェクトである。
第20の発明によれば、内容を視認可能なオブジェクトが重なっている場合に、第1操作によって移動させてその内容を確認し、所望のオブジェクトを選択することができる。
第21の発明は、第1ないし第19の発明のいずれかに従属し、内容を視認可能なオブジェクトと内容を視認不能なオブジェクトとが存在し、オブジェクト移動制御ステップは、内容を視認可能なオブジェクトから、少なくとも1つのオブジェクトを移動させる。
第21の発明では、内容を視認可能なオブジェクト(実施例では、表向きのOBJ)と内容を視認不能なオブジェクト(実施例では、裏向きのOBJ)が存在する。オブジェクト移動制御ステップは、内容を視認可能なオブジェクトから、少なくとも1つのオブジェクトを移動させる。つまり、内容が視認可能なオブジェクトのみが移動される。
第21の発明によれば、内容が視認可能なオブジェクトのみが移動されるので、視認不能なオブジェクトを移動させることがなく、画面を見易く表示することができる。
第22の発明の発明は第20または第21の発明に従属し、オブジェクトは、内容を視認可能な状態と内容を視認不能な状態とを有する。
第22の発明では、単一のオブジェクトが、内容を視認可能な状態と内容を視認不能な状態とを有する。たとえば、オブジェクトを表向きおよび裏向きに表示可能にしておけば、表にのみ内容を記載したり、裏にのみ内容を記載したりして、上記のような両方の状態を有するオブジェクトが生成される。
第22の発明によれば、内容を視認可能な状態と内容を視認不能な状態とを単一のオブジェクトが有するので、その状態も変化させながら、オブジェクトの内容を見たり、所望
のオブジェクトを選択したりすることができる。
第23の発明は第1の発明に従属し、1または複数のオブジェクトによって構成される複数のグループが存在し、重なり判断ステップは、入力検出ステップによって検出された座標データが示す位置によって指示された1つのグループ内において、重なった状態で複数のオブジェクトが配置されているかどうかを判断し、移動制御オブジェクトは、重なり判断ステップによって、重なった状態で複数のオブジェクトが配置されていると判断されたとき、当該複数のオブジェクトのうちの少なくとも1つを移動させて、下層のオブジェクトの露出量を増加させる。
第23の発明では、1または複数のオブジェクトによって構成される複数のグループ(実施例では、場札の列)が存在する。したがって、重なり判断ステップは、検出された座標データが示す位置によって指示された1つのグループ内において、重なった状態で複数のオブジェクトが配置されているかどうかを判断し、移動制御オブジェクトは、重なった状態で複数のオブジェクトが配置されていると判断されたとき、当該複数のオブジェクトのうちの少なくとも1つを移動させて、下層のオブジェクトの露出量を増加させる。
第23の発明においても、第1の発明と同様に表示画面の大きさに制約がある場合であっても、重なり合った複数のオブジェクトの内容を容易に把握することができる。
第24の発明は第23の発明に従属し、グループに含まれるオブジェクトの数に応じて、複数のグループの各々におけるオブジェクトの重なり具合が異なる。
第24の発明では、グループに含まれるオブジェクトの数に応じて、複数のグループの各々におけるオブジェクトの重なり具合が異なる。たとえば、各グループでオブジェクトを配置する範囲(領域の大きさ)が同じであれば、オブジェクトの数が増えるに従ってオブジェクト同士の重なる度合いが大きくなる。
第24の発明によれば、グループ内のオブジェクトの数に応じてオブジェクト同士の重なり具合が異なるため、第1操作に応じて、グループ毎に適切にオブジェクトを移動させることができる。
第25の発明は第23または第24の発明に従属し、1のグループに含まれるオブジェクトは他のグループに移動可能である。
第25の発明では、オブジェクトはグループ間で移動可能である。
第25の発明によれば、所望のオブジェクトをグループ間で自由に移動させて、グループ内のオブジェクトの重なり具合を調整し、第1操作によって、所望のオブジェクトの内容を見ることができる。
第26の発明は、ポインティングデバイスからの信号に基づいて座標データを検出する入力検出手段、入力検出手段によって検出された座標データに基づいて、表示装置の表示領域に対して所定の操作が行われたかどうかを判断する操作判定手段、および操作判定手段によって所定の操作が行われたことが判定されたとき、表示領域において重なった状態で配置された複数のオブジェクトのうちの少なくとも1つを移動させて、下層のオブジェクトの露出量を増加させるオブジェクト移動制御手段を備える、情報処理装置である。
第26の発明においても、第1の発明と同様に、表示画面の大きさに制約がある場合であっても、重なり合った複数のオブジェクトの内容を容易に把握することができる。
この発明によれば、表示領域に対する第1操作が有ると、重なった状態の複数のオブジェクトのうちの少なくとも1つを移動させることにより、下層に在るオブジェクトの露出量を増加させるので、その表示内容を視認可能にすることができる。つまり、表示画面の大きさに制約がある場合であっても、重なり合った複数のオブジェクトの内容を容易に把握することができる。
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
図1はこの発明のゲーム装置の一実施例を示す図解図である。 図2は図1に示すゲーム装置の電気的な構成を示すブロック図である。 図3は図1に示すゲーム装置のLCDに表示される仮想ゲームのゲーム画面の例を示す図解図である。 図4は図1に示すゲーム装置のLCDの表示領域およびゲームフィールドを示す図解図である。 図5は図1に示すゲーム装置のLCDの場札の表示領域にカードオブジェクトが表示される場合の表示方法を説明するための図解図である。 図6は図1に示すゲーム装置のLCDに表示される仮想ゲームのゲーム画面の他の例を示す図解図である。 図7はタッチオンされた場札のカードオブジェクトおよびその上層のすべてのカードオブジェクトの表示制御を説明するための図解図である。 図8は図1のゲーム装置のLCDに表示される他の仮想ゲームのゲーム画面の例を示す図解図である。 図9は図1に示すゲーム装置のLCDの表示領域を示す図解図である。 図10は図1に示すゲーム装置のLCDに表示される他の仮想ゲームのゲーム画面の第2の例を示す図解図である。 図11は図1に示すゲーム装置のLCDに表示される他の仮想ゲームのゲーム画面の第3の例を示す図解図である。 図12は図1に示すゲーム装置のLCDに表示される他の仮想ゲームのゲーム画面の第4の例を示す図解図である。 図13は図1に示すゲーム装置のLCDに表示される他の仮想ゲームのゲーム画面の第5の例を示す図解図である。 図14はこの実施例の仮想ゲームにおいて、カードオブジェクトをタッチオンおよびドラッグした場合のカードオブジェクトの移動制御の例を説明するための図解図である。 図15はこの実施例の仮想ゲームにおけるカードオブジェクトの原点とタッチ座標との距離を説明するための図解図である。 図16は図2に示すRAM42のメモリマップを示す図解図である。 図17は図16に示すデータ記憶領域の詳細な内容を示す図解図である。 図18は図2に示すCPUコアのメイン処理の一部を示すフロー図である。 図19は図2に示すCPUコアのメイン処理の他の一部を示すフロー図である。 図20は図2に示すCPUコアの手札更新処理を示すフロー図である。 図21は図2に示すCPUコアのリリース処理を示すフロー図である。 図22は図2に示すCPUコアのタッチオン操作処理を示すフロー図である。 図23は図2に示すCPUコアのカード取得処理を示すフロー図である。 図24は図2に示すCPUコアの場札更新処理の一部を示すフロー図である。 図25は図2に示すCPUコアの場札更新処理の他の一部であって、図24に後続するフロー図である。 図26は図2に示すCPUコアの場札更新処理のその他の一部であって、図25に後続するフロー図である。
図1を参照して、この発明の実施例であるゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。LCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側
ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるよう
にしてもよい。
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも少し大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aと略同じであり、その略中央部にLCD14の表示面を露出するように開口部が形成される。下側ハウジング16bの右側面には電源スイッチ18が設けられる。
また、上側ハウジング16aには、LCD12を挟んで左右に、スピーカ36aおよび36b(図2)のための音抜き孔20aおよび20bが形成される。そして、下側ハウジング16bには、マイク(図示せず)のためのマイク孔20cが形成されるとともに、操作スイッチ22(22a,22b,22c,22d,22e,22f,22g,22Lおよび22R)が設けられる。
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
操作スイッチ22は、方向指示スイッチ(十字スイッチ)22a,スタートスイッチ22b、セレクトスイッチ22c、動作スイッチ(Aボタン)22d、動作スイッチ(Bボタン)22e、動作スイッチ(Xボタン)22f、動作スイッチ(Yボタン)22g、動作スイッチ(Lボタン)22Lおよび動作スイッチ(Rボタン)22Rを含む。スイッチ22aは、下側ハウジング16bの一方主面であり、LCD14の左側に配置される。その他のスイッチ22b−22gは、下側ハウジング16bの一方主面であり、LCD14の右側に配置される。さらに、スイッチ22Lおよびスイッチ22Rは、それぞれ、上側ハウジング16aとの連結部を挟む下側ハウジング16bの上側面の左右角部に配置される。
方向指示スイッチ22aは、ディジタルジョイスティックとして機能し、4つの押圧部の1つを操作することによって、ユーザないしプレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。また、各押圧部には、特定の役割を割り当てることができ、4つの押圧部の1つを操作することによって、割り当てられた役割を指示(指定)することができる。
スタートスイッチ22bは、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止(Pause)したりする等に用いられる。また、セレクトスイッチ22cは、プッ
シュボタンで構成され、ゲームモードの選択等に用いられる。
動作スイッチ22dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ22eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ22cで選択したゲームモードの変更やAボタン22dで決定したアクションの取り消し等のために用いられる。
動作スイッチ22fすなわちXボタン、および動作スイッチ22gすなわちYボタンは、プッシュボタンで構成され、Aボタン22dとBボタン22eだけでは、ゲーム進行ができないときに、補助的な操作に用いられる。ただし、Xボタン22fおよびYボタン22gは、Aボタン22dおよびBボタン22eと同様の操作に用いることも可能である。もちろん、ゲームプレイにおいてXボタン22fとYボタン22gとを必ずしも使用しなくてよい。
動作スイッチ22L(左押しボタン)および動作スイッチ22R(右押しボタン)は、プッシュボタンで構成され、左押しボタン(Lボタン)22Lおよび右押しボタン(Rボタン)22Rは、Aボタン22dおよびBボタン22eと同様の操作に用いることができ、また、Aボタン22dおよびBボタン22eの補助的な操作に用いることができる。さらに、Lボタン22LおよびRボタン22Rは、方向スイッチ22a、Aボタン22d,Bボタン22e,Xボタン22f,Yボタン22gに割り当てられた役割を、他の役割に変更することができる。
また、LCD14の上面には、タッチパネル24が装着される。タッチパネル24としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル24は、その上面をスティック26ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック26等」という場合がある。)で、押圧したり、撫でたり、触れたりすることにより操作(タッチオン操作)すると、スティック26等の操作位置の座標を検出して、検出した座標(検出座標)に対応する座標データを出力する。
なお、この実施例では、LCD14(LCD12も同じ、または略同じ)の表示面の解像度は256dot×192dotであり、タッチパネル24の検出精度も表示画面に対応して256dot×192dotとしてあるが、タッチパネル24の検出精度は表示画面の解像度よりも低くてもよく、高くてもよい。
LCD12およびLCD14には異なるゲーム画面が表示されてもよい。たとえば、レ
ースゲームでは一方のLCDに運転席からの視点による画面を表示し、他方のLCDにレース(コース)全体の画面を表示することができる。また、RPGでは、一方のLCDにマップやプレイヤキャラクタ等のキャラクタを表示し、他方のLCDにプレイヤキャラクタが所有するアイテムを表示することができる。さらに、一方のLCD(この実施例では、LCD14)にゲームの操作画面(ゲーム画面)を表示し、他方のLCD(この実施例では、LCD12)に当該ゲームに関する情報(得点やレベルなど)を含む他のゲーム画面を表示することができる。さらには、2つのLCD12およびLCD14を合わせて1つの画面として用いることにより、プレイヤキャラクタが倒さなければならない巨大な怪物(敵キャラクタ)を表示することもできる。
したがって、プレイヤはスティック26等でタッチパネル24を操作することにより、LCD14の画面に表示されるプレイヤキャラクタ、敵キャラクタ、アイテムキャラクタ、操作オブジェクトなどの画像を指示(操作)したり、コマンドを選択(入力)したりすることができる。また、3次元ゲーム空間に設けられる仮想カメラ(視点)の方向(視線の向き)を変化させたり、ゲーム画面(マップ)のスクロール(徐々に移動表示)方向を指示したりすることもできる。
なお、ゲームの種類によっては、タッチパネル24を用いることにより、その他の入力指示も可能である。たとえば、座標入力指示を入力したり、LCD14において文字,数字,記号等を手書き入力したりすることができる。
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この実施例では、LCD14)の上面にタッチパネル24が設けられるので、2画面(12,14)と2系統の操作部(22,24)とを有する構成になっている。
また、この実施例では、スティック26は、たとえば下側ハウジング16bに設けられる収納部(図示せず)に収納することができ、必要に応じて取り出される。ただし、スティック26を設けない場合には、その収納部も設ける必要はない。
さらに、ゲーム装置10はメモリカード(またはカートリッジ)28を含み、このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは下端(底面)に設けられる挿入部30(図1では点線で示す)に挿入される。図1では省略するが、挿入部30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ32(図2参照)が設けられており、したがって、メモリカード28が挿入部30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア34(図2参照)がメモリカード28にアクセス可能となる。
なお、図1では表現できないが、上側ハウジング16aの音抜き孔20aおよび20bと対応する位置であり、この上側ハウジング16aの内部にはスピーカ36aおよび36b(図2参照)が設けられる。
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板38を含み、この電子回路基板38には上述のCPUコア34等の回路コンポーネントが実装される。CPUコア34は、バス40を介して前述のコネクタ32に接続されるとともに、RAM42、第1のグラフィック処理ユニット(GPU
)44、第2のGPU46、入出カインターフエース回路(以下、「I/F回路」という。)48およびLCDコントローラ50が接続される。
コネクタ32には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ32と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア34は、ROM28aおよびRAM28bにアクセスすることができるのである。
ROM28aは、ゲーム装置10で実行すべきゲームのためのゲームプログラム、画像データ(文字やオブジェクトの画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像など)およびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)28bは、そのゲームの途中データやゲームの結果データなどを記憶(セーブ)する。
RAM42は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア34は、メモリカード28のROM28aに記憶されたゲームプログラム、画像データおよび音データ等をRAM42にロードし、ロードしたゲームプログラムを実行する。また、CPUコア34は、ゲームの進行に応じて一時的に発生するデータ(ゲームデータやフラグデータ)をRAM42に記憶しつつゲーム処理を実行する。
なお、ゲームプログラム、画像データおよび音データ等は、ROM28aから一度に全部、または部分的かつ順次的に読み出され、RAM42に記憶(ロード)される。
GPU44およびGPU46は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア34からのグラフィックスコマンド(作画命令)を受け、そのグラフィックスコマンドに従って画像データを生成する。ただし、CPUコア34は、グラフィックスコマンドに加えて、画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU44およびGPU46のそれぞれに与える。
また、GPU44には、第1のビデオRAM(以下、「VRAM」という。)52が接続され、GPU46には、第2のVRAM54が接続される。GPU44およびGPU46が作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンやテクスチャ等のデータ)は、GPU44およびGPU46が、それぞれ、第1のVRAM52および第2のVRAM54にアクセスして取得する。
なお、CPUコア34は、描画に必要な画像データをGPU44およびGPU46を介して第1のVRAM52および第2のVRAM54に書き込む。GPU44はVRAM52にアクセスして描画のための画像データを作成し、GPU46はVRAM54にアクセスして描画のための画像データを作成する。
VRAM52およびVRAM54は、LCDコントローラ50に接続される。LCDコントローラ50はレジスタ56を含み、レジスタ56はたとえば1ビットで構成され、CPUコア34の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ50は、レジスタ56のデータ値が「0」である場合には、GPU44によって作成された画像データをLCD12に出力し、GPU46によって作成された画像データをLCD14に出力する。また、LCDコントローラ50は、レジスタ56のデータ値が「1」である場合には、GPU44によって作成された画像データをLCD14に出力し、GPU46によって作成された画像データをLCD12に出力する。
なお、LCDコントローラ50は、VRAM52およびVRAM54から直接画像データを読み出したり、GPU44およびGPU46を介してVRAM52およびVRAM54から画像データを読み出したりする。
I/F回路48には、操作スイッチ22,タッチパネル24およびスピーカ36a,36bが接続される。ここで、操作スイッチ22は、上述したスイッチ22a,22b,22c,22d,22e,22f,22g,22Lおよび22Rであり、操作スイッチ22が操作されると、対応する操作信号(操作データ)がI/F回路48を介してCPUコア34に入力される。また、タッチパネル24からの座標データがI/F回路48を介してCPUコア34に入力される。さらに、CPUコア34は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM42から読み出し、I/F回路48を介してスピーカ36a,36bから出力する。
図3は、この実施例の仮想ゲームをプレイする場合に、LCD14に表示されるゲーム画面100の例を示す。このゲーム画面100には、トランプを模したカードのオブジェクト(カードオブジェクト)OBJが複数表示される。図3に示すゲーム画面100は、クロンダイクと呼ばれるトランプゲームをプレイするための画面である。図4(A)からも分かるように、このゲーム画面100は、場札としてのカードオブジェクトOBJを表示するための表示領域102、山札としてのカードオブジェクトOBJを表示するための表示領域104および組札としてのカードオブジェクトOBJを表示するための表示領域106が設けられる。
以下、この実施例では、単に「カードオブジェクトOBJ」と言う場合には、単数または複数のカードオブジェクトOBJを意味することとする。
また、ゲーム画面100には、その左上端部にボタン110が表示され、その右下端部にボタン112が表示される。ボタン110は、この仮想ゲームを止めることを指示するためのGUI(Graphical User Interface)であり、ボタン112は、山札をすべて裏返すためのGUIである。
さらに、ゲーム画面100の表示領域102には、場札のカードオブジェクトOBJが配置されるべき位置(列)を示す略四角形の枠(指標枠)120が表示される。この指標枠120は、たとえば、場札のカードオブジェクトOBJが配置されていない列に、プレイヤがカードオブジェクトOBJを移動ないし配置させる際の指標となる。図3に示すゲーム画面100では、1つの指標枠120のみを示してあるが、同様に、場札の各列の背面側には指標枠120がそれぞれ設定(表示)されている。
さらにまた、ゲーム画面100の表示領域106には、組札のカードオブジェクトOBJを配置するべき位置を示す略四角形の枠(指標枠)122が表示される。この指標枠122には、カードオブジェクトOBJの種類のうち、マークと同じ模様が表示され、ユーザが配置すべきカードオブジェクトOBJのマークを分かり易く示してある。この実施例では、カードオブジェクトOBJの種類とは、マーク(スペード、ダイヤ、クローバー、ハートなど)と、数字(2−10)または英字(A,J,Q,K)とを意味する。また、英字A,J,Q,Kは、それぞれ、数字の1,11,12,13に相当する。以下、「数字」と「英字」とをまとめて「文字」と呼ぶことがある。
図3に示すゲーム画面100では、スペードの模様が描画された指標枠122とダイヤの模様が描画された指標枠122とが表示される。同様に、ハートの模様が描画された指標枠122やクローバーの模様が描画された指標枠122も組札のカードオブジェクトO
BJの背面側にそれぞれ設定(表示)されている。
ここで、このゲーム画面100を用いた仮想ゲーム(トランプゲーム)について簡単に説明する。ここでは、トランプゲームとして、ソリティアのクロンダイクをプレイする場合について説明する。図示は省略するが、仮想ゲームが開始された当初では、場札は7列の組(グループ)に分類され、ゲーム画面100の左から順に第1列(列(1)),第2列(列(2)),第3列(列(3),第4列(列(4)),第5列(列(5)),第6列(列(6)),第7列(列(7))としてある。
また、カードオブジェクトOBJの枚数は、第1列から第7列に向かうに従って増加するように設定されている。たとえば、第1列には、カードオブジェクトOBJが1枚配置され、第2列には、カードオブジェクトOBJが2枚配置され、第3列には、カードオブジェクトOBJが3枚配置され、第4列には、カードオブジェクトOBJが4枚配置され、第5列には、カードオブジェクトOBJが5枚配置され、第6列には、カードオブジェクトOBJが6枚配置され、そして、第7列には、カードオブジェクトOBJが7枚配置される。
また、各列では、最前面(最上段)に重ねられたカードオブジェクトOBJはその種類が見えるように、表向きで表示され、それ以外の下側(下層)のカードオブジェクトOBJはその種類が見えないように、裏向きで表示される。ただし、カードオブジェクトOBJは少しずつずらして重ねられる。
さらに、仮想ゲームが開始された当初では、場札以外のカードオブジェクトOBJは、すべて山札のカードオブジェクトOBJとして裏向きで表示領域104に表示される。
図4(B)に示すように、2次元或いは3次元の仮想空間には、2次元平面のゲームフィールドが設けられ、このゲームフィールド内に、LCD14の表示領域が設定される。このように、ゲームフィールドをLCD14の表示領域よりも大きく設定するのは、ゲームの進行状況によっては、カードオブジェクトOBJがLCD14の表示領域をはみ出てしまうことがあるからである(図9,図11参照)。これを回避するために、場に並べるカードオブジェクトOBJの数を制限したり、仮想ゲームに使用するカードオブジェクトOBJの総数を制限したりすることも考えられるが、そのようにした場合には、ゲームの難易度が低下し、プレイヤが直ぐにゲームに飽きてしまう怖れがある。
また、図4(B)に示すように、仮想空間では、横(水平方向)がX軸方向であり、縦(上下方向)がY軸方向であり、LCD14の表示領域の左上の頂点がワールド座標系の原点Oに設定される。ただし、図4(B)に示すように、右方向がX軸のプラス方向であり、下方向がY軸のプラス方向である。
この仮想ゲームでは、一組のトランプ、すなわち、ハート、スペード、ダイヤ、クローバーのそれぞれについて、エース(A)からキング(K)までの13枚(合計52枚)のカードオブジェクトOBJが用いられる。また、この仮想ゲームは、組札として、同じマークのカードオブジェクトOBJを数の小さい順に積み重ねて、4つのマークのそれぞれについて、13枚のカードオブジェクトOBJの組を完成させることを最終目的とする。そのために、場札のカードオブジェクトOBJを異なる列に移動したり、山札のカードオブジェクトOBJを場札のカードオブジェクトOBJとしていずれかの列に移動したり、組札のカードオブジェクトOBJを場札のカードオブジェクトOBJとしていずれかの列に移動し(戻し)たりする。
ただし、所定のルールによって、カードオブジェクトOBJの移動は制限される。具体
的には、山札、場札または組札のカードオブジェクトOBJを、場札の所望の列(場札のカードオブジェクトOBJの場合は他の列)に移動させる場合には、当該所望の列の最前面のカードオブジェクトOBJと異なる色であり、かつ「1」だけ小さい数のカードオブジェクトOBJを重ねることができる。たとえば、スペードやクローバーのカードオブジェクトOBJには、これよりも「1」だけ小さい数のハートやダイヤのカードオブジェクトOBJを重ねることができる。逆に、ハートやダイヤのカードオブジェクトOBJには、これよりも「1」だけ小さい数のスペードやクローバーのカードオブジェクトOBJを重ねることができる。
ただし、移動させるカードオブジェクトOBJは、1枚に限定されず、交互に異なる色で前面(上層)に向かうに従って数が1ずつ小さくなるように重なっている複数枚のカードオブジェクトOBJを一度に移動させることも可能である。かかる場合には、複数枚のカードオブジェクトOBJの最背面に位置するカードオブジェクトOBJが、移動させる所望の列の最前面のカードオブジェクトOBJと異なる色であり、かつ「1」だけ小さい数となっている必要がある。
なお、図面では色の違いを表現することができないが、通常、スペードおよびクローバーのカードオブジェクトOBJのマークおよび文字は黒で記載され、ハートおよびダイヤのカードオブジェクトOBJのマークおよび文字は赤で記載される。以下、同様である。
また、場札の列にカードオブジェクトOBJが何ら表示されていない場合には、当該列(指標枠120が見える列)には、KのカードオブジェクトOBJを移動させることができる。ただし、上述した所定のルール(異なる色のマークで数が連続する)に従って重ねられ、KのカードオブジェクトOBJを含む複数枚のカードオブジェクトOBJを、指標枠120が見える列に移動させることも可能である。
図示等は省略するが、山札、場札、組札のカードオブジェクトOBJを場札の列に移動させる場合に、移動させるために選択された1枚または複数のカードオブジェクトOBJを手札のカードオブジェクトOBJということがある。クロンダイクでは、場札のカードオブジェクトOBJであって、表向きで表示されているカードオブジェクトOBJ、山札のカードオブジェクトOBJで最前面に表向きで表示されているカードオブジェクトOBJ、および組札のカードオブジェクトOBJで最前面に表向きで表示されているカードオブジェクトOBJが手札として選択可能である。ただし、表向きに表示された場札のカードオブジェクトOBJが2枚以上重なっている場合には、そのうちの所望のカードオブジェクトOBJを選択(タッチオン)し、ドラッグすることにより、タッチオンしたカードオブジェクトOBJを含み、その上層に重なっているカードオブジェクトOBJのすべてを手札として選択することができる。
さらに、山札や場札のカードオブジェクトOBJを組札のカードオブジェクトOBJとして移動する場合には、移動させたい組の最前面に表示されているカードオブジェクトOBJと同じマークであり、かつ「1」だけ大きい数のカードオブジェクトOBJを重ねることができる。ただし、組に何らカードオブジェクトOBJが表示されていない場合には、指標枠122に表示されたマークと同じマークのAのカードオブジェクトOBJを移動させることができる。
なお、ゲーム中に、場札のカードオブジェクトOBJを移動した結果、裏向きのカードオブジェクトOBJが場札の列の最前面に位置する場合には、これをタッチオンないしクリック(指定)することにより、当該最前面のカードオブジェクトOBJは表向きで表示される。ただし、裏向きで表示された場札のカードオブジェクトOBJが最前面に位置することとなったときに、自動的に表向きで表示するようにしてもよい。
また、図3からも分かるように、場札のカードオブジェクトOBJを表示する場合には、列に含まれるカードオブジェクトOBJの数に応じて、重なり合うカードオブジェクトOBJの上端(上辺)のY軸方向の間隔(Y座標間隔)aが算出され、それに従って各カードオブジェクトOBJの当該列内におけるY軸方向の位置が決定される。これは、列に含まれるすべてのカードオブジェクトOBJを表示するためである。
たとえば、図5に示すように、場札の表示領域102において、裏向きカードオブジェクトOBJのY座標間隔Sおよび表向きのカードオブジェクトOBJのY座標間隔aが決定される。
なお、図5(後述する図7も同じ)では、簡単のため、場札を一列のみ示してあり、また、カードオブジェクトOBJの表に記載されたマークと文字とを省略してある。
ただし、裏向きのカードオブジェクトOBJは、カードオブジェクトOBJが裏向きであることと、その枚数を認識できれば良いため、Y座標間隔Sは、比較的短い距離で固定的に設定されている。一方、表向きのカードオブジェクトOBJは、その種類を出来るだけ見えるように表示する必要があるため、その枚数に応じて出来るだけ長い距離を確保できるように可変的に設定される。ただし、Y座標間隔aを必要以上に長い距離を設定すると、ゲーム画面100が見難くなるため、Y座標間隔aの上限は最大間隔Sに設定される。
ただし、この実施例では、最大間隔Sは、カードオブジェクトOBJの上端部に記載れているマークと文字とが上層に重なっているカードオブジェクトOBJによって隠れてしまわない距離(長さ)に設定される。
したがって、図5に示すように、3枚の裏向きのカードオブジェクトOBJの上層に5枚の表向きのカードオブジェクトOBJが配置される場合には、場札の表示領域102のY軸方向の長さから、3枚の裏向きのカードオブジェクトOBJについてのY座標間隔Sおよび最上層のカードオブジェクトOBJのY軸方向の長さEを引いた残りの長さ(D−3×S−E)を5枚のカードオブジェクトOBJで均等に分けるようにしてある。ただし、1ドットよりも短い距離については分割できないため、均等に分けた場合の余りの長さ(ドット)については、場札の表示領域102の縦方向の余白となる(背景が表示される)。
ここで、図3に示すように、第6列では、比較的多数のカードオブジェクトOBJが重なった状態で表示されている。第6列の場札は、第2列の場札や第5列の場札と比較して分かるように、カードオブジェクトOBJ同士の重なり具合が大きいため、上層のカードオブジェクトOBJによって下層のカードオブジェクトOBJの種類(内容)が見え難い。
したがって、この実施例では、プレイヤが場札のカードオブジェクトOBJをタッチオンし、タッチオンしたカードオブジェクトOBJの上層に他のカードオブジェクトOBJが重なっている場合には、上層のすべてのカードオブジェクトOBJが下方向に移動される。このため、少なくともプレイヤがタッチオンしたカードオブジェクトOBJ(以下、「フォーカスされたカードオブジェクトOBJ」ということがある。)の露出量が大きくされ、このフォーカスされたカードオブジェクトのマークおよび文字が見える。
この実施例では、図6に示すように、プレイヤがタッチオンした列に複数のカードオブジェクトOBJが存在し、タッチオン操作によって指示したカードオブジェクトOBJの
上層に他のカードオブジェクトOBJが重なっており、その重なり具合が大きい場合には、タッチオンされたカードオブジェクトOBJおよびその上層のカードオブジェクトOBJがすべて予め決定してある最大間隔Sで表示される。
具体的には、図5に示した状態において、プレイヤがカードオブジェクトOBJをタッチオンすると、図7に示すように、場札の表示領域102の大きさ(範囲)に拘わらず、タッチオンされたカードオブジェクトOBJより上層のすべてのカードオブジェクトOBJが移動され、タッチオンされたカードオブジェクトOBJと、これより上層のすべてのカードオブジェクトOBJとのY座標間隔aが最大間隔Sに設定される。したがって、プレイヤは、少なくとも、タッチオンされたカードオブジェクトOBJすなわちフォーカスされたカードオブジェクトOBJの種類を知ることができる。
また、この実施例では、タッチオンすることにより、Y座標間隔aを最大間隔Sに設定するために移動された上層のすべてのカードオブジェクトOBJは、その後、プレイヤがタッチオフ操作を実行してから一定時間(この実施例では、60フレーム)経過後に、元の位置に移動される(戻される)。つまり、図6に示した状態で、タッチオフ操作が実行されると、図3に示したゲーム画面100が再度表示されるのである。ただし、フレームは画面更新の単位時間であり、1フレームは1/60秒に相当する。
図8には、他の仮想ゲームをプレイするためのゲーム画面200が表示される。この他の仮想ゲームは、スパイダーと呼ばれるトランプゲームである。図9からも分かるように、ゲーム画面200には、場札としてのカードオブジェクトOBJを表示するための表示領域202および山札としてのカードオブジェクトOBJを表示するための表示領域204が設けられる。場札は複数の(この実施例では、8つの)列(グループ)に分割されており、ゲーム画面200の左から順に第1列(列(1)),第2列(列(2)),…,第7列(列(7)),第8列(列(8))としてある。
図9では省略するが、図4(B)に示したように、仮想空間にはゲームフィールドが設けられ、このゲームフィールド内にLCD14の表示領域が設定される。また、仮想空間についてのワールド座標系およびLCD14の表示領域の原点Oの位置も図4(B)に示した場合と同じである。
また、ゲーム画面200には、ボタン210および場札を配置するための指標となる略四角形の枠(指標枠)220が表示される。図8では示すことができないが、場札の他の列にも指標枠220は表示(設定)されており、列内のカードオブジェクトOBJが無くなると現れる。ボタン210は、当該仮想ゲームを止めることを指示(選択)するためのGUIである。
なお、この実施例では、図示は省略するが、後述するようにして作成された組札を、ボタン210と山札の表示領域204との間に表示するようにしてもよい。
この他の仮想ゲームについて簡単に説明する。図示は省略するが、ゲームが開始された当初では、場札として複数の列に複数枚のカードオブジェクトOBJが配置される。ただし、各列におけるカードオブジェクトOBJの枚数は同じでも異なっていてもよい。また、各列では、最前面のカードオブジェクトOBJが表向きで表示され、それ以外の背面のカードオブジェクトOBJは裏向きで表示される。場札のカードオブジェクトOBJ以外のカードオブジェクトOBJは、すべて山札として裏向きで表示領域204に表示される。
この他の仮想ゲームでは、プレイヤは、場札の列において、同じマークのカードオブジ
ェクトOBJをキングからエースまで連続的に数が小さくなるように積み重ねて、13枚のカードオブジェクトOBJの組を作成し、所定数の組を作成することを最終目標とする。ただし、所定数の組は、使用するトランプのセット数に応じて異なり、使用するトランプのセット数はゲームの難易度に応じて可変的に設定される。
ゲーム中では、プレイヤは、場札のカードオブジェクトOBJを異なる列に移動させることができる。また、場札のカードオブジェクトOBJを移動できない場合には、山札のカードオブジェクトOBJをクリック(タッチオン)することにより、山札を場札の各列に一枚ずつ追加することができる。ただし、場札のカードオブジェクトOBJを移動させる場合には、所定のルール(クロンダイクとは異なるルール)によって、その移動が制限される。
具体的には、場札のカードオブジェクトOBJを他の所望の列に移動させる場合には、当該所望の列の最前面に表示されたカードオブジェクトOBJと同じマークであり、かつ数が「1」だけ小さいカードオブジェクトOBJを重ねることができる。ただし、移動させるカードオブジェクトOBJは、1枚に限定されず、同じマークで数が連続する複数枚のカードオブジェクトOBJを一度に移動させることも可能である。かかる場合には、複数枚のカードオブジェクトOBJのうちの最下層のカードオブジェクトOBJが、移動させる所望の列の最前面のカードオブジェクトOBJと同じマークであり、かつ「1」だけ小さい数となっている必要がある。
ただし、移動させることができるカードオブジェクトOBJ(選択可能なカードオブジェクトOBJ)は、場札の各列の最前面のカードオブジェクトOBJおよび当該最前面のカードオブジェクトOBJと同じマークで、下層に向かうに従って数が連続的に1ずつ増加する1枚または複数枚のカードオブジェクトOBJである。選択可能なカードオブジェクトOBJであれば、そのすべてを選択しなくても、一部のみを選択して移動させることもできる。
なお、列の途中で、最前面のカードオブジェクトOBJとマークが異なったり、数字が連続していなかったりして、不連続な個所が出来ている場合には、その下層において、同じマークで下層に向かうに従って数が次第に大きくなるように重なっている複数枚のカードオブジェクトOBJが配置されていても、これらは選択可能なカードオブジェクトOBJではない。
また、カードオブジェクトOBJが表示されていない列すなわち指標枠220が見える列には、選択可能なカードオブジェクトOBJであれば、その種類に関係なく、自由に移動させることができる。ただし、指標枠220が見える列に複数枚のカードオブジェクトOBJを移動させる場合には、当該複数枚のカードオブジェクトOBJが同じマークで下層に向かうに従って数が1ずつ大きくなるように重なっている必要がある。
この他の仮想ゲームでは、選択可能なカードオブジェクトOBJの全部または一部を選択して移動させる場合に、選択された1枚または複数枚のオブジェクトOBJが手札のオブジェクトOBJである。
この他の仮想ゲームにおいても、上述した仮想ゲームと同様に、複数枚のカードオブジェクトOBJのうち、裏向きのカードオブジェクトOBJは、固定的に設定されたY座標間隔Sで配置され、表向きのカードオブジェクトOBJは、上述したように、算出されたY座標間隔a(最大間隔S)で配置される。したがって、図8に示すゲーム画面200の場札の第2列に示すように、列内に配置されるカードオブジェクトOBJの数が比較的多数になると、Y座標間隔aが狭くなり、つまり重なり具合が大きくなり、カードオブ
ジェクトOBJの種類が見え難い。
このため、この他の仮想ゲームにおいても、プレイヤが所望のカードオブジェクトOBJをタッチオンすると、タッチオンしたカードオブジェクトOBJより上層のカードオブジェクトOBJのY座標間隔aが表示領域202の大きさに拘わらず、最大間隔Sに設定される。したがって、たとえば、図10に示すように、ゲーム画面200において、少なくとも、タッチオンされたカードオブジェクトOBJすなわちフォーカスされたカードオブジェクトOBJの種類を見ることができる。
なお、図10からも分かるように、ゲーム画面200からはみ出しているカードオブジェクトOBJについては、見えなくなってしまうが、プレイヤが見たいのはタッチオンしたカードオブジェクトOBJであると考えられるため、何ら支障は無いと考えられる。
図11には、ゲーム画面200の他の例が示される。このゲーム画面200では、プレイヤがスティック26を用いてドラッグ操作(スライド操作)を行うことにより、複数のカードオブジェクトOBJ(手札のカードオブジェクトOBJ)が移動される様子が示される。
図11から分かるように、複数のカードオブジェクトOBJを移動させる場合には、タッチオンされているカードオブジェクトOBJの上層に重なっている一部のカードオブジェクトOBJは、少しずつ遅れて移動されるように、移動制御される。これは、カードオブジェクトOBJの移動を滑らかに表現して、プレイヤに見易くするためである。
なお、図示等は省略したが、上述の仮想ゲーム(クロンダイク)において手札のカードオブジェクトOBJを移動させる場合にも、同様の移動制御が実行される。
この実施例では、選択可能なカードオブジェクトOBJのうち、所望のカードオブジェクトOBJがタッチオンされ、その後のドラッグ操作によって、手札のカードオブジェクトOBJが選択される。ただし、上述したように、場札の列の最上層から下層に向かう途中で、マークが異なったり、数が連続的に大きくなっていなかったりするカードオブジェクトOBJが現れると、それよりも下層に存在するカードオブジェクトOBJは、たとえ同一マークで数が連続して大きくなるように重なっているとしても、移動させることはできない。つまり、手札のカードオブジェクトOBJとして選択することができない。
たとえば、図12に示すように、プレイヤが、所望のカードオブジェクトOBJをタッチオンし、その後、図13に示すように、ドラッグ操作を行うと、タッチオンされたカードオブジェクトOBJではなく、選択可能なカードオブジェクトOBJが手札としてそのドラッグ操作に従って選択される。
図12および図13に示すゲーム画面200の例では、プレイヤがタッチオンしている列では、最前面にハートの8のカードオブジェクトOBJが表示され、その下層にハートの9および10のカードオブジェクトOBJが連続して配置されている。また、ハートの10のカードオブジェクトOBJの下層には、スペードの3のカードオブジェクトOBJが配置される。したがって、上記の所定のルール(マークが同じで数が連続する)に従えば、選択可能なカードオブジェクトOBJは、ハートの8から10までの3枚のカードオブジェクトOBJである。
したがって、図13に示すように、プレイヤが、スペードの8のカードオブジェクトOBJをタッチオンし、その後、ドラッグ操作すると、手札としてハートの8から10までの3枚のカードオブジェクトOBJが選択されるのである。つまり、プレイヤがタッチオ
ンしているスペードの8のカードオブジェクトOBJは、選択可能なカードオブジェクトOBJではないため、手札として選択されないのである。
ここで、図11に示したように、列における最上層のカードオブジェクトOBJからタッチオンしたカードオブジェクトOBJまでが所定のルールに従う順序で並んでいる場合には、タッチオンしたカードオブジェクトOBJを含む複数枚のカードオブジェクトOBJを手札とすることができる。ただし、図12および図13に示したように、列の最上層のカードオブジェクトOBJとタッチ座標との間において、マークが異なっていたり、数字が不連続になっていたりする場合には、タッチオンしたカードオブジェクトOBJを含まずに、当該列の最上層のカードオブジェクトOBJとタッチ座標と間にある選択可能なカードオブジェクトOBJが手札として選択される。つまり、選択可能なカードオブジェクトOBJのうち、タッチ座標に最も近いカードオブジェクトOBJおよびそれに関連する(所定のルールに従って重なる)カードオブジェクトOBJが手札として選択されるのである。
また、上述したように、プレイヤが或る列のカードオブジェクトOBJをタッチオンすると、タッチオンしたカードオブジェクトOBJおよびその上層のすべてのカードオブジェクトOBJのY座標間隔aが最大間隔Sに設定される。ただし、Y座標間隔aが最大間隔S未満である場合に限られる。このため、図12に示すように、列の一部がゲーム画面200の外にはみ出している。このような場合であっても、図13に示すように、ドラッグ操作によって手札を選択することができる。つまり、プレイヤは、見えていないカードオブジェクトOBJであっても手札として選択することができるのである。
図12および図13では分かり難いが、この実施例では、タッチオンしたカードオブジェクトOBJと、手札として選択されたカードオブジェクトOBJとが異なり、手札が選択された時点においてタッチ座標と手札のカードオブジェクトOBJとが離れている場合には、その後の処理(後述する手札更新処理)によって、手札のカードオブジェクトOBJがタッチ座標に次第に近づくようにしてある。したがって、ゲーム画面200からはみ出しているカードオブジェクトOBJが手札として選択された場合であっても、手札更新処理によって、ゲーム画面200に表示されるのである。
また、この実施例のトランプゲーム(クロンダイクおよびスパイダー)では、場札のカードオブジェクトOBJのうち、表向きのカードオブジェクトOBJをタッチオンすることにより、タッチオンされたカードオブジェクトOBJおよびその上層のカードオブジェクトOBJのY座標間隔aが最大間隔Sに設定される。ただし、場札のカードオブジェクトOBJのうち、裏向きのカードオブジェクトOBJがタッチオンされた場合には、表向きのカードオブジェクトOBJがタッチオンされた場合と同様に、タッチオンされた裏向きのカードオブジェクトOBJをフォーカスするための処理(後述する場札更新処理)を実行するが、フォーカスされる際に、裏向きのカードオブジェクトOBJについては、Y座標間隔Sは変更されない。したがって、かかる場合には、裏向きのカードオブジェクトOBJの上層に重なっている表向きのカードオブジェクトOBJのY座標間隔aが最大間隔Sに設定される。
したがって、図14に示すように、場札の裏向きのカードオブジェクトOBJがタッチオンされた場合には、その上層に重なっている表向きのカードオブジェクトOBJのY座標間隔aが最大間隔Sに設定され、表向きのカードオブジェクトOBJの種類が視認可能にされる。
続いて、プレイヤが、ドラッグ操作すると、手札としてのカードオブジェクトOBJが選択される。ただし、上述したように、図14では、裏向きのカードオブジェクトOBJ
をタッチオンしているため、つまり選択不能なカードオブジェクトOBJをタッチオンしているため、直接的に手札としてのカードオブジェクトOBJが選択されない。この実施例では、かかる場合には、選択可能なカードオブジェクトOBJから自動的に手札としてのカードオブジェクトOBJが選択される。図14では、表向きのカードオブジェクトOBJは、すべて所定のルールに従って重なっており、選択可能なカードオブジェクトOBJであるため、これらすべてのカードオブジェクトOBJが手札として選択される。このとき、図14からも分かるように、手札としてのカードオブジェクトOBJは、タッチ座標にくっつくように移動される。
また、この実施例のトランプゲーム(クロンダイクおよびスパイダー)では、図15に示すように、各カードオブジェクトOBJには、その左上の頂点が基準点すなわち原点Pに設定される。したがって、カードオブジェクトOBJは、ワールド座標系における配置位置に、原点Pが来るように、ゲームフィールドに配置される。
また、カードオブジェクトOBJがタッチオンされている場合には、タッチ座標とカードオブジェクトOBJとの位置関係(距離)が記憶される。たとえば、図15に示すように、そのタッチ座標と当該カードオブジェクトOBJの原点Pとの距離(O,O)が記憶される。このように、タッチ座標とカードオブジェクトOBJの原点Pと距離(O,O)を記憶しておくのは、後述するように、ドラッグ操作(タッチ座標)に従ってカードオブジェクトOBJを移動制御するためである。図示は省略するが、カードオブジェクトOBJ自体がタッチオンされた場合にも、距離(O,O)は記憶される。
なお、図15に示すように、距離(O,O)は、原点Pの座標(X1,Y1)−タッチ座標(X2,Y2)で算出される。つまり、O=X1−X2であり、O=Y1−Y2である。
図16は、図2に示したゲーム装置10のRAM42のメモリマップ70である。RAM42は、プログラム記憶領域72およびデータ記憶領域74を含む。プログラム記憶領域72には、情報処理プログラムとしてのゲームプログラムが記憶され、ゲームプログラムは、メイン処理プログラム72a、画像生成プログラム72b、画像表示プログラム72c、画像更新プログラム72d、入力判定プログラム72e、手札更新プログラム72f、リリース実行プログラム72g、タッチ操作プログラム72h、カード取得プログラム72iおよび場札更新プログラム72jなどによって更新される。
メイン処理プログラム72aは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム72bは、後述する画像データ74bを用いてゲーム画像を生成するためのプログラムである。画像表示プログラム72cは、画像生成プログラム72bに従って生成されたゲーム画像をゲーム画面(100,200)として、LCD14(またはLCD12)に表示するためのプログラムである。画像更新プログラム72dは、画像生成プログラム72bに従って生成され、画像表示プログラム72cに従って表示された、ゲーム画像(ゲーム画面)を一定時間(1フレーム)毎に更新するためのプログラムである。
入力判定プログラム72eは、プレイヤによる入力操作を判定する。この実施例では、タッチオン操作であるかどうか、タッチオフ操作であるかどうか、およびドラッグ操作であるかどうかが判断される。手札更新プログラム72fは、ワールド座標系における手札のカードオブジェクトOBJの位置を更新するためのプログラムである。この実施例では、手札更新プログラム72fは、タッチ座標に応じて、手札のカードオブジェクトOBJの座標(ワールド座標)を更新する。手札のカードオブジェクトOBJが1枚の場合には、当該手札のカードオブジェクトOBJがタッチ座標に従って移動される。また、手札の
カードオブジェクトOBJが複数枚の場合には、そのうちの最下層のカードオブジェクトOBJがタッチ座標に従って移動され、最下層のカードオブジェクトOBJよりも上層のカードオブジェクトOBJの各々は、1つ上層のカードオブジェクトOBJを追従するように移動される。
リリース実行プログラム72gは、手札のカードオブジェクトOBJを場札のカードオブジェクトOBJとして元の位置に戻すためのプログラムである。この実施例では、手札のカードオブジェクトOBJをドラッグしているときに、プレイヤがタッチオフ操作を実行すると、手札のカードオブジェクトOBJを離したと判断して、当該手札のカードオブジェクトOBJが元の場札の列(位置)に移動される。詳細な説明は省略するが、場札のカードオブジェクトOBJから手札のカードオブジェクトOBJが選択された場合であっても、場札としての情報は消去されずに、カードデータ74cの位置データ(図17参照)に記憶されている。したがって、プレイヤが手札のカードオブジェクトOBJを離すと、カードデータ74cに従って元の位置に戻される。このとき、現在位置から元の位置に、所定の割合(たとえば、25%)で、X軸方向およびY軸方向の距離(間隔)が縮まるように、手札のカードオブジェクトOBJは移動される。ただし、現在位置は毎フレーム更新される。以下、同様である。
なお、上述したように、クロンダイクの場合には、山札や組札のカードオブジェクトOBJを手札のカードオブジェクトOBJとして選択することもできるが、この発明の本質的な内容では無いため、これ以降では省略することにする。同様に、リリースした場合のカードオブジェクトOBJの移動についても、この発明の本質的な内容では無いため、これ以降では省略することにする。ただし、山札のカードオブジェクトOBJが手札のカードオブジェクトOBJとして選択された場合には、離されたカードオブジェクトOBJは山札としてその最前面に戻される。また、組札のカードオブジェクトOBJが手札のカードオブジェクトOBJとして選択された場合には、離されたカードオブジェクトOBJは元の組の最前面に戻される。
タッチ操作プログラム72hは、プレイヤがタッチオンした場札のカードオブジェクトOBJをフォーカスされたカードオブジェクトOBJとして設定するとともに、フォーカスされる一定時間(この実施例では、60フレーム)を後述するフォーカスカウンタ74j(図17参照)に設定するためのプログラムである。
カード取得プログラム72iは、プレイヤの入力操作に従って、場札のカードオブジェクトOBJから、手札のカードオブジェクトOBJを選択するためのプログラムである。上述したように、プレイヤがタッチオンした場札の列において、選択可能なカードオブジェクトOBJのうち、最上層に存在する1枚ないしそれに重なる複数枚のカードオブジェクトOBJが、タッチオン操作に続くドラッグ操作に応じて、手札として選択される。
場札更新プログラム72jは、場札のカードオブジェクトOBJを、必要に応じて、列毎にその配置位置を上下に移動させるためのプログラムである。具体的には、プレイヤがタッチオンした場札のカードオブジェクトOBJおよびその上層のすべてのカードオブジェクトOBJのY座標間隔aが最大間隔Sとなるように、当該上層のすべてのカードオブジェクトOBJが下方向に移動される。また、プレイヤがタッチオフしたときから一定時間(60フレーム)が経過したときに、タッチオンされたカードオブジェクトOBJをフォーカスするためにY座標間隔aを強制的に最大間隔Sに設定していたすべてのカードオブジェクトOBJが上方向に移動され、元の配置位置に戻される。
なお、後述の場札更新処理において説明するように、場札のカードオブジェクトOBJを上下に移動させる場合にも、目標(移動後)の位置座標(目標位置)と現在の位置座標
(現在位置)との間隔が所定の割合(この実施例では、25%)で短くなるように制御される。したがって、手札のカードオブジェクトOBJをドラッグしたり、リリースしたりする場合のみならず、所望のカードオブジェクトOBJをフォーカスしたり、フォーカスを終了したりする場合にも、滑らかにカードオブジェクトOBJが移動される様子が示される。
図示は省略するが、ゲームプログラムは、音出力プログラムやバックアッププログラムなども含む。音出力プログラムは、プレイヤオブジェクトの音声ないし擬声音、効果音、BGMなどのゲームに必要な音(音楽)を生成および出力するためのプログラムである。バックアッププログラムは、ゲームデータ(途中データ,結果データ)をメモリカード28のRAM28bにセーブするためのプログラムである。
図17は、図16に示したデータ記憶領域74の具体例を示す図解図である。図17に示すように、データ記憶領域74には、入力バッファ74aが設けられる。また、データ記憶領域74には、画像データ74b、カードデータ74c、現在タッチ座標データ74d、前回タッチ座標データ74e、距離データ74f、Y座標間隔データ74g、最大間隔データ74hが記憶される。さらに、データ記憶領域74には、タッチフラグ74iおよびフォーカスカウンタ74jが設けられる。
入力バッファ74aは、操作スイッチ22から入力されるキーデータおよびタッチパネル24から入力される座標データを時系列に従って一時記憶する。キーデータおよび座標データは、ゲーム処理に利用されると、その後、入力バッファ74aから削除される。
画像データ74bは、ゲーム画像を生成するためのポリゴンデータおよびテクスチャデータなどのデータである。カードデータ74cは、ゲームフィールドに存在するすべて(N枚)のカードオブジェクトOBJの各々についてのデータである。具体的には、カードデータ74cは、カード1データ740、カード2データ742,…,カードNデータ74Nを含む。図17に示すように、カード1データ740は、種類データ740a、位置データ740b、大きさデータ740cおよび状態判別フラグ740dを含む。
種類データ740aは、当該カードオブジェクトOBJ(ここでは、カード1である。以下、同じ。)の種類(マークおよび文字)を識別するためのデータである。位置データ740bは、当該カードオブジェクトOBJが山札、場札、手札のいずれであるかを識別するための識別データおよび当該カードオブジェクトOBJのワールド座標についての座標データを含む。ただし、この実施例では、識別データは、単に山札、場札、手札の別を示す情報のみならず、当該カードオブジェクトOBJが何番目に重ねられているかを示す情報も含まれる。さらに、場札は、列毎に振り分けられるため、列と列内における順番(最下層から順に数えた場合の番号)とを区別するための情報が記憶されている。また、上述したように、プレイヤが手札のカードオブジェクトOBJを離すと、場札のカードオブジェクトOBJとして元の位置に戻すようにしてあるため、場札の情報については、当該カードオブジェクトOBJが手札として選択された場合であっても消去されないようにしてある。ただし、他の列に移動された場合には、手札の情報が消去され、場札の情報(列および順番)が更新される。
大きさデータ740cは、当該カードオブジェクトOBJの大きさを示すデータであり、具体的には、当該カードオブジェクトOBJの横および縦の長さ(ドット数)についての数値データである。ただし、同一の仮想ゲームに使用されるすべてのカードオブジェクトOBJは同じ大きさであるため、大きさデータ740cはカードオブジェクトOBJ毎に記憶せずに、カードデータ74cに1つだけ記憶するようにしてもよい。状態判別フラグ740dは、カードオブジェクトOBJが裏向きか表向きかを判別するためのフラグで
ある。具体的には、状態判別フラグ740dは、1ビットのレジスタで構成される。状態判別フラグ740dがオフ(不成立)であれば、レジスタにデータ値「0」が設定される。一方、状態判別フラグ740dがオン(成立)であれば、レジスタにデータ値「1」が設定される。ただし、カードオブジェクトOBJが裏向きである場合に、状態判別フラグ740dがオフされ、カードオブジェクトOBJが表向きである場合に、状態判別フラグ740dがオンされる。
詳細な説明は省略するが、カード2データ742,…,カードNデータ74Nについても同様である。
なお、図示および詳細な説明は省略するが、この実施例の仮想ゲームでは、一手戻すこともできるため、実際には、カードオブジェクトOBJの移動履歴を記憶しており、一手戻す場合には、その移動履歴を逆方向に適用するようにしてある。
現在タッチ座標データ74dは、現フレームにおいて、プレイヤがタッチオンしているタッチ座標についての座標データである。この実施例では、入力バッファ74aに一時記憶される現フレームの座標データがコピーされて、現在タッチ座標データ74dとしてデータ記憶領域74に記憶される。この実施例では、1フレーム毎に、現在タッチ座標データ74dは更新される。ただし、プレイヤがタッチオフしている場合には、入力バッファ74aには、座標データが記憶(入力)されないため、かかる場合には、現在タッチ座標データ74dとしてNULLデータが記憶される。
前回タッチ座標データ74eは、現フレームの1つ手前のフレームにおいて、プレイヤがタッチオンしていたタッチ座標についての座標データである。この実施例では、前回タッチ座標データ74eも、1フレーム毎に更新される。具体的には、上述したように、1フレーム毎に、現在タッチ座標データ74dが更新されるため、当該現在タッチ座標データ74dが更新される前に、そのコピーが前回タッチ座標データ74eとしてデータ記憶領域74に一時記憶される。
距離データ74fは、手札として選択されたカードオブジェクトOBJのうち、最下層に配置されるカードオブジェクトOBJのローカル座標系における原点Pと、手札を選択するためにタッチオンしたときのタッチ座標との距離(ドット数)についての数値データである。ただし、上述したように、距離データ74fが示す距離は、X軸方向の距離Oと、Y軸方向の距離Oとで表わされる。Y座標間隔データ74gは、場札の列毎に、重なるカードオブジェクトOBJ同士のY座標間隔a(ドット数)を示す数値データである。最大間隔データ74hは、Y座標間隔aの最大値(最大間隔S)を示す数値データである。
タッチフラグ74iは、プレイヤがタッチパネル24をタッチオンしているかどうかを判別するためのフラグであり、1ビットのレジスタで構成される。タッチフラグ74iがオフであれば、レジスタにデータ値「0」が設定され、タッチフラグ74iがオンであれば、レジスタにデータ値「1」が設定される。ただし、プレイヤがタッチパネル24をタッチオンしていない場合(タッチオフの場合)に、タッチフラグ74iはオフされ、プレイヤがタッチパネル24をタッチオンしている場合に、タッチフラグ74iはオンされる。
フォーカスカウンタ74jは、プレイヤがタッチオンしたカードオブジェクトOBJがフォーカスされている一定時間をカウントするためのカウンタである。この実施例では、フォーカスカウンタ74jは、ダウンカウンタであり、タッチオンされたカードオブジェクトOBJがフォーカスされ、プレイヤがタッチオフ操作を実行してからの一定時間(6
0フレーム)をカウントする。つまり、プレイヤがタッチオン操作を継続している間は、フォーカスカウンタ74jはカウントダウンされない。
図示は省略するが、データ記憶領域74には、ゲームに必要な、他のデータ、他のフラグ、および他のカウンタ(タイマ)も記憶される。
図18および図19は、図2に示したCPUコア34のメイン処理を示すフロー図である。なお、図示は省略するが、CPUコア34は、メイン処理と並列的に、操作スイッチ22からのキーデータおよびタッチパネル22からの座標データを検出する処理を実行する。つまり、CPUコア34は、操作スイッチ22から入力されるキーデータおよびタッチパネル22から入力される座標データを、時系列に従って入力バッファ74aに記憶する。
図18に示すように、CPUコア34は、メイン処理を開始すると、ステップS1で、変数Tおよび変数Tのそれぞれに「0」を設定する。ただし、変数Tは、プレイヤがタッチオンした場札の列(k)の番号を示す。また、変数Tは、プレイヤがタッチオンしたカードオブジェクトOBJの列内における番号を示す。ここで、列内における番号は、最下層(ゲーム画面100,200の上側)から上層(ゲーム画面100,200の下側)に向かう順序で付される。したがって、ステップS1では、プレイヤが場札のカードオブジェクトOBJをタッチオンしていない状態を、変数Tおよび変数Tに設定しているのである。
続くステップS3では、手札が有るかどうかを判断する。ここでは、CPUコア34は、カードデータ74cを参照して、位置データ(740bなど)に手札の情報が記載されたカードオブジェクトOBJが存在するかどうかを判断する。ステップ3で“NO”であれば、つまり手札が無ければ、図19に示すステップS19に進む。一方、ステップS3で“YES”であれば、つまり手札が有れば、ステップS5で、タッチ中かどうかを判断する。ここでは、CPUコア34は、タッチオンの状態が継続しているかどうかを判断する。具体的には、CPUコア34は、タッチフラグ74iがオンであり、かつ現在タッチ座標データ74dとしてNULLデータが記憶されていないかどうかを判断する。
なお、詳細な説明は省略するが、この実施例では、メイン処理が開始された当初では、タッチフラグ74iはオフであり、また、現在タッチ座標データ74dおよび前回タッチ座標データ74eとして、NULLデータが記憶される。
ステップS5で“YES”であれば、つまりタッチフラグ74iがオンであり、現在タッチ座標データ74dとしてNULLデータが記憶されていなければ、タッチ中であると判断して、ステップS7で、後述する手札更新処理(図20参照)を実行して、ステップS11に進む。一方、ステップS5で“NO”であれば、つまりタッチフラグ74iはオンであるが、現在タッチ座標データ74dとしてNULLデータが記憶されていれば、タッチオフされたと判断して、ステップS9で、後述するリリース処理(図21参照)を実行して、ステップS11に進む。
なお、図示は省略するが、ステップS5で“NO”と判断されたときに、タッチフラグ74iはオフされる。
ステップS11では、後述する場札更新処理(図24−図26)を実行し、ステップS13では、ステップS5と同様に、タッチ中であるかどうかを判断する。ステップS13で“YES”であれば、つまりタッチ中であれば、そのままステップS17に進む。一方、ステップS13で“NO”であれば、つまりタッチ中でなければ、ステップS15で、
プレイヤがタッチオンした場札の列の番号を示す変数Tに「0」を設定してから、ステップS17に進む。
ステップS17では、ゲーム画面更新処理を実行する。詳細な説明は省略するが、ここでは、CPUコア34は、カードデータ74cに従って、すべてのカードオブジェクトOBJをゲームフィールドに描画する。したがって、ゲーム画面(100,200)が更新される。
また、上述したように、手札が無い場合には、ステップS3で“NO”となり、図19に示すステップS19で、タッチオンかどうかを判断する。つまり、CPUコア34は、タッチオフの状態からタッチオンの状態に変化したかどうかを判断する。具体的には、CPUコア34は、タッチフラグ74iがオフであり、かつ、現在タッチ座標データ74dとして座標データが記憶されるとともに、前回タッチ座標データ74eとしてNULLデータが記憶されているかどうかを判断する。
ステップS19で“YES”であれば、つまりタッチフラグ74iがオフであり、かつ、現在タッチ座標データ74dとして座標データが記憶されるとともに、前回タッチ座標データ74eとしてNULLデータが記憶されていれば、タッチオンであると判断して、ステップS21で、後述するタッチオン操作処理(図22参照)を実行して、図18に示したステップS11に進む。
図示は省略するが、ステップS19で“YES”と判断されると、タッチフラグ74iはオンされる。
一方、ステップS19で“NO”であれば、つまりタッチフラグ74iがオンであったり、タッチフラグ74iはオフであるが、前回タッチ座標データ74eとしてNULLデータ以外の座標データが記憶されたり、タッチフラグ74iはオフであるが、現在タッチ座標データ74dとしてNULLデータが記憶されたりしている場合には、タッチオンではないと判断して、ステップS23で、ステップS5と同様に、タッチ中かどうかを判断する。
ステップS23で“NO”であれば、つまりタッチ中でなければ、そのままステップS11に進む。一方、ステップS23で“YES”であれば、つまりタッチ中であれば、ステップS25で、後述するカード取得処理(図23参照)を実行してから、ステップS11に進む。
なお、ステップS3からステップS17までのスキャンタイムが1フレームである。したがって、ゲーム画面(100,200)が1フレーム毎に更新されるのである。
図20は、図18に示したステップS7の手札更新処理のフロー図である。図20に示すように、CPUコア34は、手札更新処理を開始すると、距離データ74fが示すY軸方向の距離Oが0より大きいかどうかを判断する。ここでは、CPUコア34は、タッチ座標が手札のカードオブジェクトOBJよりも上方であるかどうかを判断しているのである。
ステップS41で“NO”であれば、つまりY軸方向の距離Oが0以下であれば、そのままステップS45に進む。一方、ステップS41で“YES”であれば、つまりY軸方向の距離Oが0よりも大きければ、タッチ座標が手札のカードオブジェクトOBJよりも上方であると判断して、ステップS43で、距離OにO−O*0.25を設定して、ステップS45に進む。つまり、CPUコア34は、ステップS43で、距離O
を25%短くして、手札のカードオブジェクトOBJをタッチ座標に近づけるようにしてある。
ステップS45では、距離Oが0より大きいかどうかを判断する。つまり、CPUコア34は、タッチ座標が手札のカードオブジェクトOBJよりも左側であるかどうかを判断しているのである。ステップS45で“NO”であれば、つまり距離Oが0以下であれば、そのままステップS49に進む。ステップS45で“YES”であれば、つまり距離Oが0よりも大きければ、タッチ座標が手札のカードオブジェクトOBJよりも左側であると判断して、ステップS47で、距離OにO−O*0.25を設定して、ステップS49に進む。上述したように、ステップS47では、CPUコア34は、距離Oを25%短くして、手札のカードオブジェクトOBJをタッチ座標に近づけるようにしてある。
ステップS49では、距離Oが−Wよりも小さいかどうかを判断する。ただし、上述したように、定数WはカードオブジェクトOBJの横幅(ドット数)である。つまり、CPUコア34は、タッチ座標が手札のカードオブジェクトOBJよりも右側であるかどうかを判断しているのである。ステップS49で“NO”であれば、つまり距離Oが−W以上であれば、そのままステップS53に進む。一方、ステップS49で“YES”であれば、つまり距離Oが−Wよりも小さければ、ステップS51で、距離Oに、O−(O+W)*0.25を設定して、ステップS53に進む。つまり、CPUコア34は、ステップS51においても、距離Oを25%短くして、手札のカードオブジェクトOBJをタッチ座標に近づけるようにしてある。
ステップS53では、手札(1)の座標に、タッチ座標に距離(O,O)を加算した値を設定する。ここで、手札(1)は、すべての手札のカードオブジェクトOBJのうち、最下層に配置されるカードオブジェクトOBJである。ここでは、手札のカードオブジェクトOBJの各々には、最下層から順に番号(1,2,…,M)が付されている。
したがって、ステップS41−ステップS51に処理よって、タッチ座標と手札(1)とが離れている場合には、手札(1)が次第にタッチ座標に近づくように移動されるのである。
次のステップS55では、変数iに「2」を設定する。ここで、変数iは、手札のカードオブジェクトOBJを個別に識別するために用いられる。続くステップS57では、変数iが最大値M以下であるかどうかを判断する。ここで、最大値Mは、手札のカードオブジェクトOBJの総数である。つまり、CPUコア34は、ステップS57で、手札のすべてのカードオブジェクトOBJについての更新処理を終了したかどうかを判断するのである。
ステップS57で“NO”であれば、つまり変数iが最大値Mを超えていれば、手札のすべてのカードオブジェクトOBJについての更新処理を終了したと判断して、そのままメイン処理にリターンする。一方、ステップS57で“YES”であれば、つまり変数iが最大値M以下であれば、更新処理を実行していない手札のカードオブジェクトOBJが存在すると判断して、ステップS59で、手札(i)の座標に、手札(i)の座標+(手札(i−1)の座標+(0,S)−手札(i)の座標)*0.25を設定する。ただし、Sは、上述したY軸方向の最大間隔である。
そして、ステップS61で、変数iに1加算して、ステップS57に戻る。つまり、次の手札のカードオブジェクトOBJについての更新処理が実行されるのである。ただし、上述したように、次の手札のカードオブジェクトOBJが無ければ、メイン処理にリター
ンする。
このように、ステップS41−S51の処理によって、カードオブジェクトOBJの外側をタッチしてカードオブジェクトOBJを取得した場合に、タッチ座標にカードオブジェクトOBJが移動してくることを実現している。このため、たとえば画面外にあるカードオブジェクトOBJを取得した場合にも、取得したカードオブジェクトOBJが画面内に移動してくるため、取得したカードオブジェクトOBJを容易に識別したり、容易に操作したりすることができる。
また、ステップS57−S61の処理によって、手札(i(ここでは、2以上))のカードオブジェクトOBJは、1つ下層のカードオブジェクトOBJとの間の距離を所定の割合(25%)で短くするように、当該1つ下層のカードオブジェクトOBJを追従するのである。
図21は、図18に示したステップS9のリリース処理のフロー図である。図21に示すように、CPUコア34は、リリース処理を開始すると、ステップS71で、手札(1)から手札(M)を、手札として選択されたときにタッチオンされた場札(T,N(T)+1)から場札(T,N(T)+M)とする。つまり、リリース処理では、手札(1)から手札(M)を元の位置に戻すのである。ただし、N(T)は、すべての場札のカードオブジェクトOBJのうち、タッチオンした列(k)に在るカードオブジェクトOBJの総数である。そして、ステップS73で、変数N(T)に、N(T)+Mを設定して、メイン処理にリターンする。つまり、CPUコア34は、ステップS73で、タッチオンされた列(k)のカードオブジェクトOBJの総数を、元に戻された手札のカードオブジェクトOBJの数だけ加算して、更新しているのである。
図22は図19に示したステップS21のタッチオン操作処理のフロー図である。図22に示すように、CPUコア34は、タッチオン操作処理を開始すると、ステップS81で、変数kに「1」を設定する。ただし、変数kは場札の列を識別するために用いられる。列の番号については上述したとおりである。
次のステップS83では、変数kが最大値L以下であるかどうかを判断する。つまり、CPUコア34は、すべての列についてタッチオン操作の処理を実行したかどうかを判断するのである。ただし、最大値Lは、ゲームの種類や難易度で異なる。ステップS83で“NO”であれば、つまり変数kが最大値Lを超えている場合には、すべての列についてタッチオン操作の処理を実行したと判断して、そのままメイン処理にリターンする。一方、ステップS83で“YES”であれば、つまり変数kが最大値L以下である場合には、タッチオン操作の処理を実行していない列が存在すると判断して、ステップS85で、変数iにN(k)を設定する。ここで、変数iは列(k)のカードオブジェクトOBJを個別に識別するために使用され、N(k)は列(k)に存在するカードオブジェクトOBJの総数である。
続いて、ステップS87で、変数iが0よりも大きいかどうかを判断する。ステップS87で“NO”であれば、つまり変数iが0であれば、列(k)にカードオブジェクトOBJが存在しない、または、列(k)のすべてのカードオブジェクトOBJについてタッチオン操作の有無を判定したと判断して、ステップS89で、変数kに、k+1を設定して、ステップS83に戻る。つまり、CPUコア34は、次の列(k)についてのタッチオン操作の処理に移行する。
一方、ステップS87で“YES”であれば、つまり変数iが0よりも大きければ、ステップS91で、タッチ座標が場札(k,i)に重なっているかどうかを判断する。ここ
では、タッチ座標がカードオブジェクトOBJの表示領域に含まれるかどうかを判断する。ただし、場札(k,i)は、列(k)のi番目のカードオブジェクトOBJを意味する。
また、詳細な説明は省略するが、カードオブジェクトOBJの表示位置(配置位置)およびその大きさはカードデータ74cから分かるため、タッチ座標がカードオブジェクトOBJ(場札(k,i))に重なるかどうかを簡単に調べることができる。
また、場札としてのカードオブジェクトOBJは、列毎に重なるように配置されているため、上層のカードオブジェクトOBJと下層のカードオブジェクトOBJとで表示領域も重なるが、この仮想ゲームのルール上、上層のカードオブジェクトOBJが優先されるため、上層のカードオブジェクトOBJから順に調べるようにしてある。
ステップS91で“NO”であれば、つまりタッチ座標が場札(k,i)に重なっていなければ、ステップS93で、変数iに、i−1を設定して、ステップS87に戻る。つまり、CPUコア34は、タッチ座標と1つ下層の(次の)カードオブジェクトOBJとの重なりを判断するのである。
一方、ステップS91で“YES”であれば、つまりタッチ座標が場札(k,i)に重なっていれば、ステップS95で、列(k)においてフォーカス(タッチオン)された列(k)のカードオブジェクトOBJの番号F(k)が0であるか、または、当該番号F(k)が変数iよりも大きいかどうかを判断する。つまり、列(k)において、現在フォーカスされているカードオブジェクトOBJが存在しないか、現在フォーカスされているカードオブジェクトOBJよりも、下層の(優先度の低い)カードオブジェクトOBJのフォーカスが指示されたかどうかを判断しているのである。
ステップS95で“YES”であれば、つまり番号F(k)が0である場合か、または、番号F(k)が変数iよりも大きい場合には、ステップS97で、番号F(k)に、変数iの数値を設定して、ステップS99に進む。つまり、当該列(k)に現在フォーカスされているカードオブジェクトOBJが無い場合には、今回のタッチオンによって、フォーカスされるカードオブジェクトOBJが設定される。また、当該列(k)に現在(既に)フォーカスされているカードオブジェクトOBJが有る場合には、それよりも下層のカードオブジェクトOBJがタッチされた場合に、フォーカスされているカードオブジェクトOBJが更新される。
一方、ステップS95で“NO”であれば、つまり番号F(k)が0で無く、しかも番号F(k)が変数i以下である場合には、そのままステップS99に進む。ステップS99では、フォーカスカウンタ74jのカウント値Fcount(k)に「60」を設定し、タッチ
オンされた列(k)を記憶するための変数Tに当該列(k)を、タッチオンされたカードを記憶するための変数Tに変数iの数値を設定して、メイン処理にリターンする。
図23は、図19に示したステップS25のカード取得処理のフロー図である。図23に示すように、カード取得処理を開始すると、ステップS111で、変数Tが0であるかどうかを判断する。つまり、いずれの列(k)のカードオブジェクトOBJも(場札のカードオブジェクトOBJが)タッチオンされていないかどうかを判断する。ステップS111で“YES”であれば、つまり変数Tが0であれば、いずれの列(k)のカードオブジェクトOBJもタッチオンされていないと判断して、そのままメイン処理にリターンする。
しかし、ステップS111で“NO”であれば、つまり変数Tが0でなければ、列(
k)のカードオブジェクトOBJのいずれかがタッチオンされていると判断して、ステップS113で、前フレームのタッチ座標と、現フレームのタッチ座標との差が一定以上であるかどうかを判断する。具体的には、前回タッチ座標データ74eが示すタッチ座標(前タッチ座標)と、現在タッチ座標データ74dが示すタッチ座標(現タッチ座標)との差分(絶対値)を検出し、当該差分が一定値(一定の閾値)を超えているかどうかを判断する。ここで、一定値(一定の閾値)は、ドラッグ操作を開始したか否かを判断するための値であり、実験等によって経験的に得られた値が設定される。
ステップS113で“NO”であれば、前タッチ座標と現タッチ座標との差分が一定未満であれば、ドラッグ操作を開始していないと判断して、そのままメイン処理にリターンする。一方、ステップS113で“YES”であれば、前タッチ座標と現タッチ座標との差分が一定以上であれば、ドラッグ操作を開始したと判断して、ステップS115で、変数iに、タッチオンされている列(k)のカードオブジェクトOBJの総数を設定する。
続いて、ステップS117では、変数iがタッチオンされた場札(T,i)の番号T以上であるかどうかを判断する。ステップS117で“NO”であれば、つまり変数iがタッチオンされた場札(T,i)の番号T未満であれば、そのままステップS125に進む。一方、ステップS117で“YES”であれば、つまり変数iがタッチオンされた場札(T,i)の番号T以上であれば、ステップS119で、タッチオンされた場札(T,i)が手に取れるかどうかを判断する。つまり、CPUコア34は、タッチオンされた場札(T,i)が表向きであり、この実施例の仮想ゲームの所定のルールに違反していないかどうかを判断するのである。ただし、所定のルールは、上述したように、クロンダイクとスパイダーとで異なる。
ステップS119で“YES”であれば、つまりタッチオンされた場札(T,i)を手に取ることができる場合には、ステップS121で、変数iに、i−1を設定して、ステップS117に戻る。つまり、当該列(k)の下層の(次の)カードオブジェクトOBJを手に取ることができるか否かが判断されるのである。一方、ステップS119で“NO”であれば、つまりタッチオンされた場札(T,i)を手に取ることができない場合には、ステップS123で、変数iに、i+1を設定して、ステップS125に進む。ステップS123の処理により、手に取ることができると判断された1つ上層の(前の)カードオブジェクトOBJに変数iが戻されるのである。
ステップS125では、タッチオンされた列(k)の場札(T,i)から場札(T,N(T))までを、手札(1)から手札(N(T)−i)として設定する。つまり、タッチ座標のY座標よりも下方であり、手に取ることができる1または連続的に重なっている複数のカードオブジェクトOBJが手札として選択されるのである。したがって、上述したように、直接的にタッチオンしていないカードオブジェクトOBJであっても、手札として自動的に選択することができるのである。
なお、詳細な説明は省略するが、このとき、カードデータ74cが更新される。上述したように、識別データにおいて、場札の情報は消去されずに、手札の情報が追加される。その後、カードオブジェクトOBJが他の列に移動されると、手札の情報が消去され、場札の情報が更新される。
続いて、ステップS127では、手札の総数Mに、N(T)−iを設定するとともに、列(k)のカードオブジェクトOBJの総数N(T)に、変数iの数値を設定する。そして、ステップS129で、距離(O,O)に、手札(1)の座標−タッチ座標(現タッチ座標)を設定して、メイン処理にリターンする。
図24−図26は、図18に示したステップS11の場札更新処理のフロー図である。図24に示すように、CPUコア34は、場札更新処理を開始すると、ステップS141で、変数kに「1」を設定する。つまり、最初に、場札のうちの列(1)についての更新処理が実行される。続くステップS143では、変数kが最大値L以下であるかどうかを判断する。ここで、最大値Lは、場札の列(k)の総数である。
ステップS143で“NO”であれば、つまり変数kが最大値Lを超えていれば、すべての列(k)についての更新処理を終了したと判断して、メイン処理にリターンする。一方、ステップS143で“YES”であれば、つまり変数kが最大値L以下であれば、更新処理を終了していない列(k)が存在すると判断して、ステップS145で、タッチ中かどうかを判断する。このステップS145の処理は、上述したメイン処理のステップS5と同じであるため、詳細な説明は省略することにする。
ステップS145で“YES”であれば、つまりタッチ中であれば、そのままステップS153に進む。一方、ステップS145で“NO”であれば、つまりタッチ中でなければ、ステップS147で、カウント値Fcount(k)に、Fcount(k)−1を設定し、ステップS149で、カウント値Fcount(k)が0以下であるかどうかを判断する。つまり、フォーカ
スされている一定時間(60フレーム)が経過したかどうかが判断される。
ステップS149で“NO”であれば、つまりカウント値Fcount(k)が0よりも大きけ
れば、フォーカスされている一定時間が経過していないと判断して、そのままステップS153に進む。一方、ステップS149で“YES”であれば、つまりカウント値Fcount(k)が0以下であれば、フォーカスされている一定時間が経過したと判断して、ステップ
S151で、変数F(k)に「0」を設定して、ステップS153に進む。ただし、変数F(k)は、フォーカス(タッチオン)されている列(k)を示すために用いられる。
ステップS153では、変数iに「1」を設定するとともに、変数yに「Y1」を設定する。ここで、変数iは、当該列(k)内のカードオブジェクトOBJを識別するために用いられる。また、変数yは重なり合うカードオブジェクトOBJのY座標間隔aを設定するために用いられる。さらに、定数Y1は、場札の列(k)において、最下層のカードオブジェクトOBJの原点P(左上の頂点)が配置されるべき位置のワールド座標系におけるY座標である。
図25に示すように、次のステップS155では、変数iが最大値N(k)以下であるかどうかを判断する。つまり、当該列(k)のすべてのカードオブジェクトOBJについて更新処理を実行したかどうかが判断される。ステップS155で“NO”であれば、つまり変数iが最大値N(k)よりも大きければ、当該列(k)のすべてのカードオブジェクトOBJについての更新処理を実行したと判断して、図26に示すステップS171に進む。一方、ステップS155で“YES”であれば、つまり変数iが最大値N(k)以下であれば、更新処理を実行していないカードオブジェクトOBJが当該列(k)に存在すると判断して、ステップS157で、場札(k,i)が裏向きであるかどうかを判断する。つまり、CPUコア34は、カードデータ74cを参照して、当該場札(k,i)の状態判別フラグがオフであるかどうかを判断するのである。
ステップS157で“NO”であれば、つまり場札(k,i)が表向きであれば、図26に示すステップS163に進む。一方、ステップS157で“YES”であれば、つまり場札(k,i)が裏向きであれば、ステップS159で、場札(k,i)のY座標に、場札(k,i)のY座標+(y−場札(k,i)のY座標)*0.25を設定する。そして、ステップS161で、変数yに、y+Sを設定するとともに、変数iに、i+1を設定して、ステップS155に戻る。ただし、定数Sは、裏向きのカードオブジェクト
OBJのY座標間隔である。
上述したように、場札(k,i)が表向きであれば、ステップS157で“NO”となり、図26に示すステップS163で、変数aに、(Y2−y)/(N(k)−i−1)を設定する。ここで、変数aは、上述したように、表向きのカードオブジェクトOBJのY座標間隔であり、定数Y2は、場札の表示領域(102,202)の下端のY座標である。つまり、CPUコア34は、ステップS163で、場札の表示領域(102,202)のY軸方向の長さから裏向きのカードオブジェクトOBJを表示するためのY軸方向の長さを引いた長さ(Y2−y)を、表向きのカードオブジェクトのY座標間隔aが均等になるように分けているのである。
次のステップS165では、変数aが最大間隔Sよりも大きいかどうかを判断する。ステップS165で“NO”であれば、つまり変数aが最大間隔S以下であれば、そのままステップS169に進む。一方、ステップS165で“YES”であれば、つまり変数aが最大間隔Sよりも大きければ、ステップS167で、変数aに、最大間隔Sを設定して、ステップS169に進む。つまり、Y座標間隔aが最大間隔Sを超えないように補正(制限)されるのである。
ステップS169では、ステップS155と同様に、変数iが最大値N(k)以下であるかどうかを判断する。ステップS169で“NO”であれば、つまり変数iが最大値N(k)を超えると、ステップS171で、変数kに、k+1を設定して、図24に示したステップS143に戻る。つまり、次の列(k)についての更新処理が実行される。
しかし、ステップS169で“YES”であれば、つまり変数iが最大値N(k)以下であれば、ステップS173で、変数F(k)と変数iが等しいかどうかを判断する。つまり、着目するカードオブジェクトOBJが、フォーカスされているカードオブジェクトOBJであるかどうかが判断される。ステップS173で“NO”であれば、つまり変数F(k)と変数iとが等しくなければ、そのままステップS177に進む。一方、ステップS173で“YES”であれば、つまり変数F(k)と変数iとが等しければ、Y座標間隔aを最大間隔Sに設定して、ステップS177に進む。
ステップS177では、ステップS159と同様に、場札(k,i)Y座標に、場札(k,i)のY座標+(y−場札(k,i)のY座標)*0.25を設定する。そして、ステップS179で、変数yに、y+aを設定するとともに、変数iに、i+1を設定して、ステップS169に戻る。
この実施例によれば、プレイヤがカードオブジェクトをタッチオンしたときに、下層のカードオブジェクトの内容が見えるように、カードオブジェクトを移動させるので、表示画面の大きさに制限されることなく、カードオブジェクトの内容を容易に知ることができる。また、表示画面の大きさに起因して、カードオブジェクトの総数が制限されたり、カードオブジェクトの表示数が制限されたりすることがない。
なお、この実施例では、プレイヤがタッチオンしたカードオブジェクトよりも上層のカードオブジェクトを下方向(ワールド座標のY軸のプラス方向)に移動させることにより、下層のカードオブジェクトの露出量を増加させて、そのマークおよび文字が見えるようにしたが、これに限定される必要はない。下層のオブジェクトを上方向(ワールド座標のY軸のマイナス方向)に移動させてもよいし、上層および下層のオブジェクトを上下方向で互いに逆の向きに移動させてもよい。または、上層のカードオブジェクトを、右方向(ワールド座標のX軸のプラス方向)や左方向(ワールド座標のX軸のマイナス方向)に移動させてもよいし、上層および下層のオブジェクトを左右方向で互いに逆向きに移動させ
てもよい。さらには、上層または下層のオブジェクトを、上下左右のいずれかの方向または斜め方向に移動させてもよいし、上層および下層のカードオブジェクトを、上下左右のいずれかの方向または斜め方向で互いに逆向きまたは互いに離れる方向に移動させてもよい。
また、この実施例では、ゲーム装置を用いて、トランプゲームをプレイする場合のカードオブジェクトの表示制御について説明したが、これに限定される必要はない。表示画面に複数のオブジェクトが表示される場合に、ユーザの指示に従って、下層のオブジェクトの内容が見えるように、上層または下層のオブジェクトをずらす点に着目されたい。つまり、この実施例では、情報処理プログラムの一例としてゲームプログラムが実行される場合について示したが、これに限定されるべきではない。
さらに、この実施例では、タッチオンされたカードオブジェクトを含み、その上層のすべてのカードオブジェクトのY座標間隔が最大間隔になるように、カードオブジェクトを移動させるようにしたが、これに限定されるべきではない。たとえば、タッチオンされたカードオブジェクトの種類のみが見えるように、それより上層のすべてのカードオブジェクトをまとめて移動させるようにしてもよい。また、タッチオンされたカードオブジェクトおよびその近辺(前後数枚または上層あるいは下層の数枚)のカードオブジェクトのY座標間隔だけを最大間隔にするように移動させるようにしてもよい。または、タッチオンしたカードオブジェクトが属する列のすべてのカードオブジェクト(表向きのカードオブジェクトのみでも可)のY座標間隔が最大間隔になるように、カードオブジェクトを移動させるようにしてもよい。
さらにまた、この実施例では、トランプゲームのルールに従うため、選択可能なカードオブジェクトは、そのルールに従って重なっているカードオブジェクトとしたが、これに限定される必要はない。タッチオンされたオブジェクトと同じ属性を有しているような関連するオブジェクトが選択されてもよい。たとえば、オブジェクトの属性としては、実施例におけるマーク(色、模様)や数字のみならず、オブジェクトの形状や大きさなども含む。
また、タッチオンされたオブジェクトと所定の関係を有する位置に配置されたオブジェクトが関連するオブジェクトとして選択されてもよい。たとえば、タッチオンされたオブジェクトの位置を1つの頂点とした場合に、正三角形や正方形のような所定の図形を形成するような位置に配置されたオブジェクトが選択されたり、所定の点を中心とした場合に、タッチオンされたオブジェクトと点対称や線対称となる位置に配置されているオブジェクトが選択されたりしてもよい。
さらに、この実施例では、タッチオン操作によりカードオブジェクトがフォーカスされると、タッチオフ操作後に、一定時間(60フレーム)が経過すると、Y座標間隔が最大間隔に移動されていたすべてのカードオブジェクトを元の位置に戻すようにしたが、タッチオフ操作後、直ぐに元の位置に戻すようにしてもよい。
また、ゲーム装置の構成は、上述の実施例の構成に限定されるべきでない。たとえば、LCDは1つでもよく、タッチパネルは2つのLCDのそれぞれに設けるようにしてもよい。
10 …ゲーム装置
12,14 …LCD
16,16a,16b …ハウジング
22 …操作スイッチ
24 …タッチパネル
26 …スティック
28 …メモリカード
28a …ROM
28b,42 …RAM
34 …CPUコア
36a,36b …スピーカ
44,46 …GPU
48 …I/F回路
50 …LCDコントローラ
52,54 …VRAM

Claims (26)

  1. 情報処理装置のコンピュータによって実行される情報処理プログラムであって、
    ポインティングデバイスからの信号に基づいて座標データを検出する入力検出ステップ、
    前記入力検出ステップによって検出された座標データに基づいて、表示装置の表示領域に対して第1操作が行われたかどうかを判断する第1操作判定ステップ、および
    前記第1操作判定ステップによって第1操作が行われたことが判定されたとき、前記表示領域において重なった状態で配置された複数のオブジェクトのうちの少なくとも1つのオブジェクトを移動させて、下層のオブジェクトの露出量を増加させるオブジェクト移動制御ステップを実行させる、情報処理プログラム。
  2. 前記オブジェクト移動制御ステップは、前記座標データが示す位置に対応するオブジェクト以外のオブジェクトを移動させる、請求項1記載の情報処理プログラム。
  3. 前記オブジェクト移動制御ステップは、前記少なくとも1つのオブジェクトを前記座標データが示す位置から離れる方向に移動させる、請求項1記載の情報処理プログラム。
  4. 前記複数のオブジェクトの重なり具合を算出する重なり算出ステップをさらに実行させ、
    前記オブジェクト移動制御ステップは、前記重なり算出ステップで算出された前記複数のオブジェクトの重なり具合に応じて、前記複数のオブジェクトの少なくとも1つを移動させる、請求項1記載の情報処理プログラム。
  5. 前記重なり算出ステップは、前記複数のオブジェクトの重なり具合を示す値を算出し、
    前記オブジェクト移動制御ステップは、前記第1操作判定ステップによって第1操作が行われたと判定され、かつ、重なり算出ステップによって算出された重なり具合を示す値が所定値以上であるときに、前記複数のオブジェクトのうちの少なくとも1つのオブジェクトを移動させる、請求項4記載の情報処理プログラム。
  6. 前記入力検出ステップによって検出された座標データに基づいて前記第1操作とは異なる第2操作が行われたか否かを判定する第2操作判定ステップ、および
    前記第2操作判定ステップによって第2操作が行われたことが判定されたときに、前記入力検出ステップによって検出された座標データと前記重なった状態の複数のオブジェクトとに基づいて、選択可能なオブジェクトのうち、少なくとも1つのオブジェクトを自動的に選択するオブジェクト選択ステップをさらに実行させる、請求項1ないし5のいずれかに記載の情報処理プログラム。
  7. 前記複数のオブジェクトから選択可能なオブジェクトを決定する選択可能オブジェクト決定ステップをさらに実行させ、
    前記オブジェクト選択ステップは、前記第2操作判定ステップによって第2操作が行われたことが判定されたときに、前記選択可能オブジェクト決定ステップによって決定された選択可能なオブジェクトのうち、少なくとも1つのオブジェクトを自動的に選択する、請求項6記載の情報処理プログラム。
  8. 前記オブジェクト選択ステップは、前記選択可能なオブジェクトのうち、前記入力検出ステップによって検出された座標データが示す位置に最も近い位置に配置されているオブジェクトを選択する、請求項6または7記載の情報処理プログラム。
  9. 前記オブジェクト選択ステップは、前記第2操作判定ステップによって第2操作が行わ
    れたことが判定され、かつ、前記座標データが示す位置に対応するオブジェクトが選択可能でないときに、選択可能なオブジェクトのうち、少なくとも1つのオブジェクトを自動的に選択する、請求項6または7記載の情報処理プログラム。
  10. 前記オブジェクト選択ステップは、前記入力検出ステップによって検出された座標データが示す位置に最も近い位置に配置されているオブジェクトに関連するオブジェクトをさらに選択する、請求項6ないし9のいずれかに記載の情報処理プログラム。
  11. 前記オブジェクト選択ステップによって選択された少なくとも1つのオブジェクトを前記表示装置に表示させる表示ステップをさらに実行させる、請求項6ないし10のいずれかに記載の情報処理プログラム。
  12. 前記表示ステップは、前記オブジェクト選択ステップによって選択された前記少なくとも1つのオブジェクトを、前記入力検出ステップによって検出された座標データ示す位置に応じた前記表示領域の位置に表示させる、請求項11記載の情報処理プログラム。
  13. 前記移動制御ステップは、前記重なった状態の複数のオブジェクトの露出量が一定量になるように、当該複数のオブジェクトのうちの少なくとも1つを移動させる、請求項1ないし12のいずれかに記載の情報処理プログラム。
  14. 前記ポインティングデバイスは、タッチパネルを含み、
    前記入力検出ステップは、前記タッチパネルへのタッチオンの位置に対する前記表示領域の座標に対応する座標データを検出する、請求項1ないし13のいずれかに記載の情報処理プログラム。
  15. 前記第1操作判定手段は、前記入力検出ステップによって検出された座標データに基づいて、前記タッチパネルへのタッチオン操作を検出したとき、前記第1操作が有ることを判定する、請求項14記載の情報処理プログラム。
  16. 前記第2操作判定手段は、前記入力検出ステップによって検出された座標データに基づいて、前記タッチパネルへのドラッグ操作を検出したとき、前記第2操作が有ることを判定する、請求項14または15記載の情報処理プログラム。
  17. 前記移動制御ステップによって前記少なくとも1つのオブジェクトを移動して前記第1操作判定ステップで第1操作が行われなくなったと判定されたときに、当該少なくとも1つのオブジェクトを移動前の位置に戻す復元ステップをさらに実行させる、請求項1ないし16のいずれかに記載の情報処理プログラム。
  18. 前記復元ステップは、前記移動制御ステップによって前記少なくとも1つのオブジェクトを移動して前記第1操作判定ステップで第1操作が行われなくなったと判定されたときから一定時間が経過したとき、当該少なくとも1つのオブジェクトを移動前の位置に戻す、請求項17記載の情報処理プログラム。
  19. 前記オブジェクト選択ステップによって選択された前記少なくとも1つのオブジェクトを、前記入力検出ステップによって検出された座標データが示す位置に追従するように移動させる選択オブジェクト移動制御ステップをさらに実行させる、請求項6ないし請求項18のいずれかに記載の情報処理プログラム。
  20. 内容を視認可能なオブジェクトと内容を視認不能なオブジェクトとが存在し、
    前記オブジェクト選択ステップは、前記内容を視認可能なオブジェクトから、前記少な
    くとも1つのオブジェクトを選択する、請求項6ないし19のいずれかに記載の情報処理プログラム。
  21. 内容を視認可能なオブジェクトと内容を視認不能なオブジェクトとが存在し、
    前記オブジェクト移動制御ステップは、前記内容を視認可能なオブジェクトから、前記少なくとも1つのオブジェクトを移動させる、請求項1ないし19のいずれかに記載の情報処理プログラム。
  22. 前記オブジェクトは、内容を視認可能な状態と内容を視認不能な状態とを有する、請求項20または21記載の情報処理プログラム。
  23. 1または複数のオブジェクトによって構成される複数のグループが存在し、
    前記重なり判断ステップは、前記入力検出ステップによって検出された座標データが示す位置によって指示された1つのグループ内において、重なった状態で複数のオブジェクトが配置されているかどうかを判断し、
    前記移動制御オブジェクトは、前記重なり判断ステップによって、重なった状態で複数のオブジェクトが配置されていると判断されたとき、当該複数のオブジェクトのうちの少なくとも1つを移動させて、下層のオブジェクトの露出量を増加させる、請求項1記載の情報処理プログラム。
  24. 前記グループに含まれるオブジェクトの数に応じて、前記複数のグループの各々におけるオブジェクトの重なり具合が異なる、請求項23記載の情報処理プログラム。
  25. 1の前記グループに含まれるオブジェクトは他の前記グループに移動可能である、請求項23または24記載の情報処理プログラム。
  26. ポインティングデバイスからの信号に基づいて座標データを検出する入力検出手段、
    前記入力検出手段によって検出された座標データに基づいて、表示装置の表示領域に対して所定の操作が行われたかどうかを判断する操作判定手段、および
    前記操作判定手段によって所定の操作が行われたことが判定されたとき、前記表示領域において重なった状態で配置された複数のオブジェクトのうちの少なくとも1つのオブジェクトを移動させて、下層のオブジェクトの露出量を増加させるオブジェクト移動制御手段を備える、情報処理装置。
JP2013028511A 2013-02-18 2013-02-18 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法 Active JP5705894B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013028511A JP5705894B2 (ja) 2013-02-18 2013-02-18 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013028511A JP5705894B2 (ja) 2013-02-18 2013-02-18 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009011522A Division JP5374170B2 (ja) 2009-01-22 2009-01-22 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法

Publications (2)

Publication Number Publication Date
JP2013149260A true JP2013149260A (ja) 2013-08-01
JP5705894B2 JP5705894B2 (ja) 2015-04-22

Family

ID=49046647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013028511A Active JP5705894B2 (ja) 2013-02-18 2013-02-18 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法

Country Status (1)

Country Link
JP (1) JP5705894B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019150414A (ja) * 2018-03-06 2019-09-12 株式会社スクウェア・エニックス ゲームプログラム及びゲームシステム
JP2021020085A (ja) * 2020-10-15 2021-02-18 株式会社スクウェア・エニックス ゲームプログラム及びゲームシステム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1185788A (ja) * 1997-09-09 1999-03-30 Fujitsu Ltd 記事検索支援装置、及び記録媒体
JP2000298679A (ja) * 1999-04-15 2000-10-24 Minolta Co Ltd マップ上に複数のオブジェクトを配置する情報処理装置及びそのオブジェクト配置方法
JP2005310059A (ja) * 2004-04-26 2005-11-04 Sharp Corp コンテンツ再生装置、携帯電話、コンテンツ再生方法、コンテンツ再生プログラム、およびコンテンツ再生プログラムを記録する記録媒体
JP2007328456A (ja) * 2006-06-06 2007-12-20 Univ Of Tokyo オブジェクト表示処理装置、オブジェクト表示処理方法、およびオブジェクト表示処理用プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1185788A (ja) * 1997-09-09 1999-03-30 Fujitsu Ltd 記事検索支援装置、及び記録媒体
JP2000298679A (ja) * 1999-04-15 2000-10-24 Minolta Co Ltd マップ上に複数のオブジェクトを配置する情報処理装置及びそのオブジェクト配置方法
JP2005310059A (ja) * 2004-04-26 2005-11-04 Sharp Corp コンテンツ再生装置、携帯電話、コンテンツ再生方法、コンテンツ再生プログラム、およびコンテンツ再生プログラムを記録する記録媒体
JP2007328456A (ja) * 2006-06-06 2007-12-20 Univ Of Tokyo オブジェクト表示処理装置、オブジェクト表示処理方法、およびオブジェクト表示処理用プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019150414A (ja) * 2018-03-06 2019-09-12 株式会社スクウェア・エニックス ゲームプログラム及びゲームシステム
JP2021020085A (ja) * 2020-10-15 2021-02-18 株式会社スクウェア・エニックス ゲームプログラム及びゲームシステム

Also Published As

Publication number Publication date
JP5705894B2 (ja) 2015-04-22

Similar Documents

Publication Publication Date Title
JP5374170B2 (ja) 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法
JP5220278B2 (ja) ゲーム装置および手書き入力プログラム
US8113954B2 (en) Game apparatus, storage medium storing game program and game controlling method for touch input monitoring
US7775867B2 (en) Storage medium storing a game program, game apparatus, and game control method
JP5606669B2 (ja) 3次元パズルゲーム装置、ゲームプログラム、3次元パズルゲームシステムおよびゲーム制御方法
EP1716897A2 (en) Storage medium having game program stored thereon and game apparatus
JP6185123B1 (ja) プログラム、制御方法、及び情報処理装置
JP2006146556A (ja) 画像表示処理プログラムおよび画像表示処理装置
JP5210547B2 (ja) 移動制御プログラムおよび移動制御装置
JP4731149B2 (ja) 情報処理装置および情報入力プログラム
JP4317774B2 (ja) タッチパネルを用いたゲーム装置およびゲームプログラム
JP5000132B2 (ja) トレーニングプログラム、トレーニング装置、トレーニングシステム、トレーニング制御方法、ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法
JP2005204720A (ja) タッチパネルを用いたゲーム装置およびゲームプログラム
JP2008183423A (ja) タッチパネルを用いたゲーム装置
JP5705894B2 (ja) 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法
JP5031261B2 (ja) ゲームプログラムおよびゲーム装置
US20080300033A1 (en) Storage medium storing puzzle game program, puzzle game apparatus, and puzzle game controlling method
JP5395387B2 (ja) パズルゲームプログラム、パズルゲーム装置、パズルゲームシステムおよびゲーム制御方法
JP4287764B2 (ja) 競争ゲーム装置および競争ゲームプログラム
JP4061278B2 (ja) ゲーム装置およびゲームプログラム
JP5009349B2 (ja) 手書き学習支援プログラムおよび手書き学習支援装置
JP2006284861A (ja) 手書き学習支援プログラムおよび手書き学習支援装置
JP4447046B2 (ja) 手書き学習支援プログラムおよび手書き学習支援装置
JP4979779B2 (ja) 情報処理装置および情報入力プログラム
JP2008200538A (ja) 競争ゲーム装置および競争ゲームプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140801

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150225

R150 Certificate of patent or registration of utility model

Ref document number: 5705894

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250