(57)【要約】【課題】ゲームにおける処理負荷を低減させる。【解決手段】領域規定部は、第１位置（４１）を内部に含む円形領域（５０）を規定する。外縁部分特定部は、第２位置（４２）に対応する第１外縁部分（５１）を特定する。判定部は、第２位置（４２）と第１外縁部分（５１）との位置関係を判定する。ゲーム実行部は、判定結果に応じたゲーム処理を実行する。【選択図】図７
2019177001.tif 000002
【特許請求の範囲】
【請求項１】
ゲームプログラムであって、
前記ゲームプログラムは、プロセッサ、メモリ、およびタッチスクリーンを備えるコンピュータにより実行され、
前記ゲームプログラムは、前記プロセッサに、
前記タッチスクリーンにゲーム画面を表示するステップと、
前記タッチスクリーンに対する、互いに関連付けられる第１接触点および第２接触点を検出するステップと、
前記第１接触点に関連付けられる第１位置と、前記第２接触点に関連付けられる第２位置とを特定するステップと、
第１軸および前記第１軸に直交する第２軸を有し、かつ前記第１位置を原点として有する座標系を定義するステップと、
前記座標系において、前記第１位置を内部に含む判定領域を規定するステップと、
前記第１位置と前記第２位置との相対的な位置関係に基づいて、前記判定領域の外縁を構成する複数の外縁部分のうち前記第２位置に対応する外縁部分を特定するステップと、
前記第２位置と、特定された前記外縁部分との位置関係を判定するステップと、
前記判定するステップにおける判定結果に応じたゲーム処理を実行するステップとを実行させる、ゲームプログラム。
【請求項２】
特定された前記外縁部分は、数式によって規定され、
前記ゲームプログラムは、前記プロセッサに、
前記第１軸における前記第２位置の第１座標を、前記数式に代入することによって、閾値を算出するステップをさらに実行させ、
前記判定するステップにおいて、前記第２軸における前記第２位置の第２座標と、前記閾値とを比較することによって、前記第２位置と前記判定領域との位置関係を判定する、請求項１に記載のゲームプログラム。
【請求項３】
前記ゲームプログラムは、前記プロセッサに、前記座標系を構成する４つの異なる象限のうち、前記第２位置が含まれる象限を特定するステップをさらに実行させ、
前記外縁部分を特定するステップにおいて、前記複数の外縁部分のうち、特定された象限に含まれる前記外縁部分を、前記第２位置に対応する前記外縁部分として特定する、請求項２に記載のゲームプログラム。
【請求項４】
前記象限を特定するステップにおいて、前記第２軸における正の座標を有する前記象限を特定し、
前記判定するステップにおいて、前記第２座標が前記閾値を上回る場合は前記第２位置が前記判定領域に含まれないと判定し、前記第２座標が前記閾値以下である場合は前記第２位置が前記判定領域に含まれると判定する、請求項３に記載のゲームプログラム。
【請求項５】
前記象限を特定するステップにおいて、前記第２軸における正の座標を有する前記象限を特定し、
前記判定するステップにおいて、前記第２座標が前記閾値以上の場合は前記第２位置が前記判定領域に含まれないと判定し、前記第２座標が前記閾値を下回る場合は前記第２位置が前記判定領域に含まれると判定する、請求項３に記載のゲームプログラム。
【請求項６】
前記象限を特定するステップにおいて、前記第２軸における負の座標を有する前記象限を特定し、
前記判定するステップにおいて、前記第２座標が前記閾値を下回る場合は前記第２位置が前記判定領域に含まれないと判定し、前記第２座標が前記閾値以上である場合は前記第２位置が前記判定領域に含まれると判定する、請求項３に記載のゲームプログラム。
【請求項７】
前記象限を特定するステップにおいて、前記第２軸における負の座標を有する前記象限を特定し、
前記判定するステップにおいて、前記第２座標が前記閾値以下である場合は前記第２位置が前記判定領域に含まれないと判定し、前記第２座標が前記閾値を上回る場合は前記第２位置が前記判定領域に含まれると判定する、請求項３に記載のゲームプログラム。
【請求項８】
前記判定領域は、多角形、円形、または楕円形のいずれかの形状を有する、請求項１〜７のいずれか１項に記載のゲームプログラム。
【請求項９】
前記判定領域を規定するステップにおいて、前記第１接触点および前記第２接触点のうち少なくともいずれかが検出された時点においてゲームに登場するシーンに応じた前記判定領域を規定する、請求項１〜８のいずれか１項に記載のゲームプログラム。
【請求項１０】
前記判定領域を規定するステップにおいて、規定される前記判定領域を、ゲームの進行に応じてリアルタイムに異ならせる、請求項１〜９のいずれか１項に記載のゲームプログラム。
【請求項１１】
前記ゲーム処理を実行するステップにおいて、前記第２位置が前記判定領域に含まれない場合は第１ゲーム処理を実行し、前記第２位置が前記判定領域に含まれる場合は前記第１ゲーム処理とは異なる第２ゲーム処理を実行する、請求項１〜１０のいずれか１項に記載のゲームプログラム。
【請求項１２】
前記ゲームプログラムは、前記プロセッサに、前記第１位置から前記第２位置に向かう第１方向を算出するステップをさらに実行させ、
前記ゲーム処理を実行するステップにおいて、前記ゲーム画面において前記第１方向と平行な第２方向にキャラクタを移動させるゲーム処理を実行する、請求項１〜１１のいずれか１項に記載のゲームプログラム。
【請求項１３】
前記ゲームプログラムは、前記プロセッサに、前記第１位置から前記第２位置に向かって弾性変形する弾性体を、前記ゲーム画面に表示するステップをさらに実行させる、請求項１〜１２のいずれか１項に記載のゲームプログラム。
【請求項１４】
コンピュータがゲームプログラムを実行する方法であって、
前記コンピュータは、プロセッサ、メモリ、およびタッチスクリーンを備え、
前記方法は、前記プロセッサが、
前記タッチスクリーンにゲーム画面を表示するステップと、
前記タッチスクリーンに対する、互いに関連付けられる第１接触点および第２接触点を検出するステップと、
前記第１接触点に関連付けられる第１位置と、前記第２接触点に関連付けられる第２位置とを特定するステップと、
第１軸および前記第１軸に直交する第２軸を有し、かつ前記第１位置を原点として有する座標系を定義するステップと、
前記座標系において、前記第１位置を内部に含む判定領域を規定するステップと、
前記第１位置と前記第２位置との相対的な位置関係に基づいて、前記判定領域の外縁を構成する複数の外縁部分のうち前記第２位置に対応する外縁部分を特定するステップと、
前記第２位置と、特定された前記外縁部分との位置関係を判定するステップと、
前記判定するステップにおける判定結果に応じたゲーム処理を実行するステップと実行する、ゲームプログラム。
【請求項１５】
情報処理装置であって、
前記情報処理装置は、
タッチスクリーンと、
ゲームプログラムを記憶する記憶部と、
該ゲームプログラムを実行することにより、情報処理装置の動作を制御する制御部とを備えており、
前記制御部は、
前記タッチスクリーンにゲーム画面を表示し、
前記タッチスクリーンに対する、互いに関連付けられる第１接触点および第２接触点を検出し、
前記第１接触点に関連付けられる第１位置と、前記第２接触点に関連付けられる第２位置とを特定し、
第１軸および前記第１軸に直交する第２軸を有し、かつ前記第１位置を原点として有する座標系を定義し、
前記座標系において、前記第１位置を内部に含む判定領域を規定し、
前記第１位置と前記第２位置との相対的な位置関係に基づいて、前記判定領域の外縁を構成する複数の外縁部分のうち前記第２位置に対応する外縁部分を特定し、
前記第２位置と、特定された前記外縁部分との位置関係を判定し、
前記判定するステップにおける判定結果に応じたゲーム処理を実行する、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はゲームプログラム、ゲームプログラムを実行する方法および情報処理装置に関する。
【背景技術】
【０００２】
特許文献１に、携帯端末のタッチパネル上で弾性オブジェクトの形状を変形して表示するユーザインタフェースプログラムの一例が開示される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５８４８８５７号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の技術には、ゲームにおける処理負荷を低減できる余地がある。
【０００５】
本開示の一態様は、ゲームにおける処理負荷を低減させることを目的とする。
【課題を解決するための手段】
【０００６】
本開示に係るゲームプログラムは、プロセッサ、メモリ、およびタッチスクリーンを備えるコンピュータにより実行される。ゲームプログラムは、プロセッサに、タッチスクリーンにゲーム画面を表示するステップと、前記タッチスクリーンに対する、互いに関連付けられる第１接触点および第２接触点を検出するステップと、前記第１接触点に関連付けられる第１位置、および前記第２接触点に関連付けられる第２位置を特定するステップと、第１軸および前記第１軸に直交する第２軸を有し、かつ前記第１位置を原点として有する座標系を定義するステップと、前記座標系において、前記第１位置を内部に含む判定領域を規定するステップと、前記第１位置と前記第２位置との相対的な位置関係に基づいて、前記判定領域の外縁を構成する複数の外縁部分のうち前記第２位置に対応する前記外縁部分を特定するステップと、前記第２位置と、特定された前記外縁部分との位置関係を判定するステップと、前記判定するステップにおける判定結果に応じたゲーム処理をとを実行させる。
【発明の効果】
【０００７】
本開示の一態様によれば、ゲームにおける処理負荷を低減することができる効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】ゲームシステムのハードウェア構成を示す図である。
【図２】ゲームシステムに含まれるサーバおよびユーザ端末の機能的構成を示すブロック図である。
【図３】操作受付部が入力操作の種類を検知する処理を説明する図である。
【図４】実施形態１に係る、ユーザ端末が、ゲームプログラムに基づいて実行する処理の流れを示すフローチャートである。
【図５】実施形態１に係るゲーム画面を示す図である。
【図６】実施形態１に係るゲーム画面を示す図である。
【図７】実施形態１に係る円形領域の詳細を示す図である。
【図８】実施形態１に係る判定テーブルの一例を示す図である。
【図９】実施形態１に係るゲーム画面を示す図である。
【図１０】実施形態１に係るゲーム画面を示す図である。
【図１１】実施形態１に係る円形領域の詳細を示す図である。
【図１２】実施形態１に係るゲーム画面を示す図である。
【図１３】実施形態１に係る判定テーブルの一例を示す図である。
【図１４】実施形態２において、ユーザ端末が、ゲームプログラムに基づいて実行する処理の流れを示すフローチャートである。
【図１５】実施形態２に係るゲーム画面を示す図である。
【図１６】実施形態２に係るゲーム画面を示す図である。
【図１７】実施形態２に係る菱形領域の詳細を示す図である。
【図１８】実施形態２に係る判定テーブルの一例を示す図である。
【図１９】実施形態２に係るゲーム画面を示す図である。
【図２０】実施形態２に係るゲーム画面を示す図である。
【図２１】実施形態２に係る菱形領域の詳細を示す図である。
【図２２】実施形態２に係るゲーム画面を示す図である。
【図２３】実施形態２に係る判定テーブルの一例を示す図である。
【図２４】実施形態３において、ユーザ端末が、ゲームプログラムに基づいて実行する処理の流れを示すフローチャートである。
【図２５】実施形態３に係るゲーム画面を示す図である。
【図２６】実施形態３に係るゲーム画面を示す図である。
【図２７】実施形態３に係る楕円形領域の詳細を示す図である。
【図２８】実施形態３に係る判定テーブルの一例を示す図である。
【図２９】実施形態３に係るゲーム画面を示す図である。
【図３０】実施形態３に係るゲーム画面を示す図である。
【図３１】実施形態３に係る楕円形領域の詳細を示す図である。
【図３２】実施形態３に係るゲーム画面を示す図である。
【図３３】実施形態３に係る判定テーブルの一例を示す図である。
【図３４】実施形態４において、ユーザ端末が、ゲームプログラムに基づいて実行する処理の流れを示すフローチャートである。
【図３５】実施形態４に係るゲーム画面を示す図である。
【図３６】実施形態４に係るゲーム画面を示す図である。
【図３７】実施形態４に係る六角形領域の詳細を示す図である。
【図３８】実施形態４に係る判定テーブルの一例を示す図である。
【図３９】実施形態４に係るゲーム画面を示す図である。
【図４０】実施形態４に係るゲーム画面を示す図である。
【図４１】実施形態４に係る六角形領域の詳細を示す図である。
【図４２】実施形態４に係るゲーム画面を示す図である。
【図４３】実施形態４に係る判定テーブルの一例を示す図である。
【図４４】実施形態５において、ユーザ端末が、ゲームプログラムに基づいて実行する処理の流れを示すフローチャートである。
【図４５】実施形態５に係るゲーム画面を示す図である。
【図４６】実施形態５に係るゲーム画面を示す図である。
【図４７】実施形態５に係る菱形領域の詳細を示す図である。
【図４８】実施形態５に係る判定テーブルの一例を示す図である。
【図４９】実施形態５に係るゲーム画面を示す図である。
【図５０】実施形態５に係るゲーム画面を示す図である。
【図５１】実施形態５に係る菱形領域の詳細を示す図である。
【図５２】実施形態５に係るゲーム画面を示す図である。
【図５３】実施形態５に係る判定テーブルの一例を示す図である。
【発明を実施するための形態】
【０００９】
〔実施形態１〕
本開示に係るゲームシステムは、複数のユーザにゲームを提供するためのシステムである。以下、ゲームシステムについて図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が本発明に含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
【００１０】
＜ゲームシステム１のハードウェア構成＞
図１は、ゲームシステム１のハードウェア構成を示す図である。ゲームシステム１は図示の通り、複数のユーザ端末１００と、サーバ２００とを含む。各ユーザ端末１００は、サーバ２００とネットワーク２を介して接続する。ネットワーク２は、インターネットおよび図示しない無線基地局によって構築される各種移動通信システム等で構成される。この移動通信システムとしては、例えば、所謂３Ｇ、４Ｇ移動通信システム、ＬＴＥ（Long Term Evolution）、および所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク（例えばWi-Fi（登録商標））等が挙げられる。
【００１１】
サーバ２００（コンピュータ、情報処理装置）は、ワークステーションまたはパーソナルコンピュータ等の汎用コンピュータであってよい。サーバ２００は、プロセッサ２０と、メモリ２１と、ストレージ２２と、通信ＩＦ２３と、入出力ＩＦ２４とを備える。サーバ２００が備えるこれらの構成は、通信バスによって互いに電気的に接続される。
【００１２】
ユーザ端末１００（コンピュータ、情報処理装置）は、スマートフォン、フィーチャーフォン、ＰＤＡ（Personal Digital Assistant）、またはタブレット型コンピュータ等の携帯端末であってよい。ユーザ端末１００は、ゲームプレイに適したゲーム装置であってもよい。ユーザ端末１００は図示の通り、プロセッサ１０と、メモリ１１と、ストレージ１２と、通信インターフェース（ＩＦ）１３と、入出力ＩＦ１４と、タッチスクリーン１５（表示部）と、カメラ１７と、測距センサ１８とを備える。ユーザ端末１００が備えるこれらの構成は、通信バスによって互いに電気的に接続される。なお、ユーザ端末１００は、タッチスクリーン１５に代えて、または、加えて、ユーザ端末１００本体とは別に構成されたディスプレイ（表示部）を接続可能な入出力ＩＦ１４を備えていてもよい。
【００１３】
また、図１に示すように、ユーザ端末１００は、１つ以上のコントローラ１０２０と通信可能に構成されることとしてもよい。コントローラ１０２０は、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の通信規格に従って、ユーザ端末１００と通信を確立する。コントローラ１０２０は、１つ以上のボタン等を有していてもよく、該ボタン等に対するユーザの入力操作に基づく出力値をユーザ端末１００へ送信する。また、コントローラ１０２０は、加速度センサ、および、角速度センサ等の各種センサを有していてもよく、該各種センサの出力値をユーザ端末１００へ送信する。
【００１４】
なお、ユーザ端末１００がカメラ１７および測距センサ１８を備えることに代えて、または、加えて、コントローラ１０２０がカメラ１７および測距センサ１８を有していてもよい。
【００１５】
ユーザ端末１００は、例えばゲーム開始時に、コントローラ１０２０を使用するユーザに、該ユーザの名前またはログインＩＤ等のユーザ識別情報を、該コントローラ１０２０を介して入力させることが望ましい。これにより、ユーザ端末１００は、コントローラ１０２０とユーザとを紐付けることが可能となり、受信した出力値の送信元（コントローラ１０２０）に基づいて、該出力値がどのユーザのものであるかを特定することができる。
【００１６】
ユーザ端末１００が複数のコントローラ１０２０と通信する場合、各コントローラ１０２０を各ユーザが把持することで、ネットワーク２を介してサーバ２００などの他の装置と通信せずに、該１台のユーザ端末１００でマルチプレイを実現することができる。また、各ユーザ端末１００が無線ＬＡＮ（Local Area Network）規格等の無線規格により互いに通信接続する（サーバ２００を介さずに通信接続する）ことで、複数台のユーザ端末１００によりローカルでマルチプレイを実現することもできる。１台のユーザ端末１００によりローカルで上述のマルチプレイを実現する場合、ユーザ端末１００は、さらに、サーバ２００が備える後述する種々の機能の少なくとも一部を備えていてもよい。また、複数のユーザ端末１００によりローカルで上述のマルチプレイを実現する場合、複数のユーザ端末１００は、サーバ２００が備える後述する種々の機能を分散して備えていてもよい。
【００１７】
なお、ローカルで上述のマルチプレイを実現する場合であっても、ユーザ端末１００はサーバ２００と通信を行ってもよい。例えば、あるゲームにおける成績または勝敗等のプレイ結果を示す情報と、ユーザ識別情報とを対応付けてサーバ２００に送信してもよい。
【００１８】
また、コントローラ１０２０は、ユーザ端末１００に着脱可能な構成であるとしてもよい。この場合、ユーザ端末１００の筐体における少なくともいずれかの面に、コントローラ１０２０との結合部が設けられていてもよい。該結合部を介して有線によりユーザ端末１００とコントローラ１０２０とが結合している場合は、ユーザ端末１００とコントローラ１０２０とは、有線を介して信号を送受信する。
【００１９】
図１に示すように、ユーザ端末１００は、外部のメモリカード等の記憶媒体１０３０の装着を、入出力ＩＦ１４を介して受け付けてもよい。これにより、ユーザ端末１００は、記憶媒体１０３０に記録されるプログラム及びデータを読み込むことができる。記憶媒体１０３０に記録されるプログラムは、例えばゲームプログラムである。
【００２０】
ユーザ端末１００は、サーバ２００等の外部の装置と通信することにより取得したゲームプログラムをユーザ端末１００のメモリ１１に記憶してもよいし、記憶媒体１０３０から読み込むことにより取得したゲームプログラムをメモリ１１に記憶してもよい。
【００２１】
以上で説明したとおり、ユーザ端末１００は、該ユーザ端末１００に対して情報を入力する機構の一例として、通信ＩＦ１３、入出力ＩＦ１４、タッチスクリーン１５、カメラ１７、および、測距センサ１８を備える。入力する機構としての上述の各部は、ユーザの入力操作を受け付けるように構成された操作部と捉えることができる。
【００２２】
例えば、操作部が、カメラ１７および測距センサ１８の少なくともいずれか一方で構成される場合、該操作部が、ユーザ端末１００の近傍の物体１０１０を検出し、当該物体の検出結果から入力操作を特定する。一例として、物体１０１０としてのユーザの手、予め定められた形状のマーカーなどが検出され、検出結果として得られた物体１０１０の色、形状、動き、または、種類などに基づいて入力操作が特定される。より具体的には、ユーザ端末１００は、カメラ１７の撮影画像からユーザの手が検出された場合、該撮影画像に基づき検出されるジェスチャ（ユーザの手の一連の動き）を、ユーザの入力操作として特定し、受け付ける。なお、撮影画像は静止画であっても動画であってもよい。
【００２３】
あるいは、操作部がタッチスクリーン１５で構成される場合、ユーザ端末１００は、タッチスクリーン１５の入力部１５１に対して実施されたユーザの操作をユーザの入力操作として特定し、受け付ける。あるいは、操作部が通信ＩＦ１３で構成される場合、ユーザ端末１００は、コントローラ１０２０から送信される信号（例えば、出力値）をユーザの入力操作として特定し、受け付ける。あるいは、操作部が入出力ＩＦ１４で構成される場合、該入出力ＩＦ１４と接続されるコントローラ１０２０とは異なる入力装置（図示せず）から出力される信号をユーザの入力操作として特定し、受け付ける。
【００２４】
＜各装置のハードウェア構成要素＞
プロセッサ１０は、ユーザ端末１００全体の動作を制御する。プロセッサ２０は、サーバ２００全体の動作を制御する。プロセッサ１０および２０は、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、およびＧＰＵ（Graphics Processing Unit）を含む。
【００２５】
プロセッサ１０は後述するストレージ１２からプログラムを読み出し、後述するメモリ１１に展開する。プロセッサ２０は後述するストレージ２２からプログラムを読み出し、後述するメモリ２１に展開する。プロセッサ１０およびプロセッサ２０は展開したプログラムを実行する。
【００２６】
メモリ１１および２１は主記憶装置である。メモリ１１および２１は、ＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）等の記憶装置で構成される。メモリ１１は、プロセッサ１０が後述するストレージ１２から読み出したプログラムおよび各種データを一時的に記憶することにより、プロセッサ１０に作業領域を提供する。メモリ１１は、プロセッサ１０がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ２１は、プロセッサ２０が後述するストレージ２２から読み出した各種プログラムおよびデータを一時的に記憶することにより、プロセッサ２０に作業領域を提供する。メモリ２１は、プロセッサ２０がプログラムに従って動作している間に生成した各種データも一時的に記憶する。
【００２７】
本実施形態においてプログラムとは、ゲームをユーザ端末１００により実現するためのゲームプログラムであってもよい。あるいは、該プログラムは、該ゲームをユーザ端末１００とサーバ２００との協働により実現するためのゲームプログラムであってもよい。なお、ユーザ端末１００とサーバ２００との協働により実現されるゲームは、一例として、ユーザ端末１００において起動されたブラウザ上で実行されるゲームであってもよい。あるいは、該プログラムは、該ゲームを複数のユーザ端末１００の協働により実現するためのゲームプログラムであってもよい。また、各種データとは、ユーザ情報およびゲーム情報などのゲームに関するデータ、ならびに、ユーザ端末１００とサーバ２００との間または複数のユーザ端末１００間で送受信する指示または通知を含んでいる。
【００２８】
ストレージ１２および２２は補助記憶装置である。ストレージ１２および２２は、フラッシュメモリまたはＨＤＤ（Hard Disk Drive）等の記憶装置で構成される。ストレージ１２およびストレージ２２には、ゲームに関する各種データが格納される。
【００２９】
通信ＩＦ１３は、ユーザ端末１００における各種データの送受信を制御する。通信ＩＦ２３は、サーバ２００における各種データの送受信を制御する。通信ＩＦ１３および２３は例えば、無線ＬＡＮ（Local Area Network）を介する通信、有線ＬＡＮ、無線ＬＡＮ、または携帯電話回線網を介したインターネット通信、ならびに近距離無線通信等を用いた通信を制御する。
【００３０】
入出力ＩＦ１４は、ユーザ端末１００がデータの入力を受け付けるためのインターフェースであり、またユーザ端末１００がデータを出力するためのインターフェースである。入出力ＩＦ１４は、ＵＳＢ（Universal Serial Bus）等を介してデータの入出力を行ってもよい。入出力ＩＦ１４は、例えば、ユーザ端末１００の物理ボタン、カメラ、マイク、または、スピーカ等を含み得る。サーバ２００の入出力ＩＦ２４は、サーバ２００がデータの入力を受け付けるためのインターフェースであり、またサーバ２００がデータを出力するためのインターフェースである。入出力ＩＦ２４は、例えば、マウスまたはキーボード等の情報入力機器である入力部と、画像を表示出力する機器である表示部とを含み得る。
【００３１】
ユーザ端末１００のタッチスクリーン１５は、入力部１５１と表示部１５２とを組み合わせた電子部品である。入力部１５１は、例えばタッチセンシティブなデバイスであり、例えばタッチパッドによって構成される。表示部１５２は、例えば液晶ディスプレイ、または有機ＥＬ（Electro-Luminescence）ディスプレイ等によって構成される。
【００３２】
入力部１５１は、入力面に対しユーザの操作（主にタッチ操作、スライド操作、スワイプ操作、およびタップ操作等の物理的接触操作）が入力された位置を検知して、位置を示す情報を入力信号として送信する機能を備える。入力部１５１は、図示しないタッチセンシング部を備えていればよい。タッチセンシング部は、静電容量方式または抵抗膜方式等のどのような方式を採用したものであってもよい。
【００３３】
図示していないが、ユーザ端末１００は、該ユーザ端末１００の保持姿勢を特定するための１以上のセンサを備えていてもよい。このセンサは、例えば、加速度センサ、または、角速度センサ等であってもよい。ユーザ端末１００がセンサを備えている場合、プロセッサ１０は、センサの出力からユーザ端末１００の保持姿勢を特定して、保持姿勢に応じた処理を行うことも可能になる。例えば、プロセッサ１０は、ユーザ端末１００が縦向きに保持されているときには、縦長の画像を表示部１５２に表示させる縦画面表示としてもよい。一方、ユーザ端末１００が横向きに保持されているときには、横長の画像を表示部に表示させる横画面表示としてもよい。このように、プロセッサ１０は、ユーザ端末１００の保持姿勢に応じて縦画面表示と横画面表示とを切り替え可能であってもよい。
【００３４】
カメラ１７は、イメージセンサ等を含み、レンズから入射する入射光を電気信号に変換することで撮影画像を生成する。
【００３５】
測距センサ１８は、測定対象物までの距離を測定するセンサである。測距センサ１８は、例えば、パルス変換した光を発する光源と、光を受ける受光素子とを含む。測距センサ１８は、光源からの発光タイミングと、該光源から発せられた光が測定対象物にあたって反射されて生じる反射光の受光タイミングとにより、測定対象物までの距離を測定する。測距センサ１８は、指向性を有する光を発する光源を有することとしてもよい。
【００３６】
ここで、ユーザ端末１００が、カメラ１７と測距センサ１８とを用いて、ユーザ端末１００の近傍の物体１０１０を検出した検出結果を、ユーザの入力操作として受け付ける例をさらに説明する。カメラ１７および測距センサ１８は、例えば、ユーザ端末１００の筐体の側面に設けられてもよい。カメラ１７の近傍に測距センサ１８が設けられてもよい。カメラ１７としては、例えば赤外線カメラを用いることができる。この場合、赤外線を照射する照明装置および可視光を遮断するフィルタ等が、カメラ１７に設けられてもよい。これにより、屋外か屋内かにかかわらず、カメラ１７の撮影画像に基づく物体の検出精度をいっそう向上させることができる。
【００３７】
プロセッサ１０は、カメラ１７の撮影画像に対して、例えば以下の（１）〜（５）に示す処理のうち１つ以上の処理を行ってもよい。（１）プロセッサ１０は、カメラ１７の撮影画像に対し画像認識処理を行うことで、該撮影画像にユーザの手が含まれているか否かを特定する。プロセッサ１０は、上述の画像認識処理において採用する解析技術として、例えばパターンマッチング等の技術を用いてよい。（２）また、プロセッサ１０は、ユーザの手の形状から、ユーザのジェスチャを検出する。プロセッサ１０は、例えば、撮影画像から検出されるユーザの手の形状から、ユーザの指の本数（伸びている指の本数）を特定する。プロセッサ１０はさらに、特定した指の本数から、ユーザが行ったジェスチャを特定する。例えば、プロセッサ１０は、指の本数が５本である場合、ユーザが「パー」のジェスチャを行ったと判定する。また、プロセッサ１０は、指の本数が０本である（指が検出されなかった）場合、ユーザが「グー」のジェスチャを行ったと判定する。また、プロセッサ１０は、指の本数が２本である場合、ユーザが「チョキ」のジェスチャを行ったと判定する。（３）プロセッサ１０は、カメラ１７の撮影画像に対し、画像認識処理を行うことにより、ユーザの指が人差し指のみ立てた状態であるか、ユーザの指がはじくような動きをしたかを検出する。（４）プロセッサ１０は、カメラ１７の撮影画像の画像認識結果、および、測距センサ１８の出力値等の少なくともいずれか１つに基づいて、ユーザ端末１００の近傍の物体１０１０（ユーザの手など）とユーザ端末１００との距離を検出する。例えば、プロセッサ１０は、カメラ１７の撮影画像から特定されるユーザの手の形状の大小により、ユーザの手がユーザ端末１００の近傍（例えば所定値未満の距離）にあるのか、遠く（例えば所定値以上の距離）にあるのかを検出する。なお、撮影画像が動画の場合、プロセッサ１０は、ユーザの手がユーザ端末１００に接近しているのか遠ざかっているのかを検出してもよい。（５）カメラ１７の撮影画像の画像認識結果等に基づいて、ユーザの手が検出されている状態で、ユーザ端末１００とユーザの手との距離が変化していることが判明した場合、プロセッサ１０は、ユーザが手をカメラ１７の撮影方向において振っていると認識する。カメラ１７の撮影範囲よりも指向性が強い測距センサ１８において、物体が検出されたりされなかったりする場合に、プロセッサ１０は、ユーザが手をカメラの撮影方向に直交する方向に振っていると認識する。
【００３８】
このように、プロセッサ１０は、カメラ１７の撮影画像に対する画像認識により、ユーザが手を握りこんでいるか否か（「グー」のジェスチャであるか、それ以外のジェスチャ（例えば「パー」）であるか）を検出する。また、プロセッサ１０は、ユーザの手の形状とともに、ユーザがこの手をどのように移動させているかを検出する。また、プロセッサ１０は、ユーザがこの手をユーザ端末１００に対して接近させているのか遠ざけているのかを検出する。このような操作は、例えば、マウスまたはタッチパネルなどのポインティングデバイスを用いた操作に対応させることができる。ユーザ端末１００は、例えば、ユーザの手の移動に応じて、タッチスクリーン１５においてポインタを移動させ、ユーザのジェスチャ「グー」を検出する。この場合、ユーザ端末１００は、ユーザが選択操作を継続中であると認識する。選択操作の継続とは、例えば、マウスがクリックされて押し込まれた状態が維持されること、または、タッチパネルに対してタッチダウン操作がなされた後タッチされた状態が維持されることに対応する。また、ユーザ端末１００は、ユーザのジェスチャ「グー」が検出されている状態で、さらにユーザが手を移動させると、このような一連のジェスチャを、スワイプ操作（またはドラッグ操作）に対応する操作として認識することもできる。また、ユーザ端末１００は、カメラ１７の撮影画像によるユーザの手の検出結果に基づいて、ユーザが指をはじくようなジェスチャを検出した場合に、当該ジェスチャを、マウスのクリックまたはタッチパネルへのタップ操作に対応する操作として認識してもよい。
【００３９】
＜ゲームシステム１の機能的構成＞
図２は、ゲームシステム１に含まれるサーバ２００およびユーザ端末１００の機能的構成を示すブロック図である。サーバ２００およびユーザ端末１００のそれぞれは、図示しない、一般的なコンピュータとして機能する場合に必要な機能的構成、および、ゲームにおける公知の機能を実現するために必要な機能的構成を含み得る。
【００４０】
ユーザ端末１００は、ユーザの入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能を有する。ユーザ端末１００は、プロセッサ１０、メモリ１１、ストレージ１２、通信ＩＦ１３、および入出力ＩＦ１４等の協働によって、制御部１１０および記憶部１２０として機能する。
【００４１】
サーバ２００は、各ユーザ端末１００と通信して、ユーザ端末１００がゲームを進行させるのを支援する機能を有する。例えば、有価データの販売、サービスの提供などを実行する。ゲームがマルチプレイゲームである場合には、サーバ２００は、ゲームに参加する各ユーザ端末１００と通信して、ユーザ端末１００同士のやりとりを仲介する機能を有していてもよい。サーバ２００は、プロセッサ２０、メモリ２１、ストレージ２２、通信ＩＦ２３、および入出力ＩＦ２４等の協働によって、制御部２１０および記憶部２２０として機能する。
【００４２】
記憶部１２０および記憶部２２０は、ゲームプログラム１３１、ゲーム情報１３２およびユーザ情報１３３を格納する。ゲームプログラム１３１は、ユーザ端末１００およびサーバ２００で実行するゲームプログラムである。ゲーム情報１３２は、制御部１１０および制御部２１０がゲームプログラム１３１を実行する際に参照するデータである。ユーザ情報１３３は、ユーザのアカウントに関するデータである。記憶部２２０において、ゲーム情報１３２およびユーザ情報１３３は、ユーザ端末１００ごとに格納されている。
【００４３】
（ユーザ端末１００の機能的構成）
制御部１１０は、記憶部１２０に格納されたゲームプログラム１３１を実行することにより、ユーザ端末１００を統括的に制御する。例えば、制御部１１０は、ゲームプログラム１３１およびユーザの操作にしたがって、ゲームを進行させる。また、制御部１１０は、ゲームを進行させている間、必要に応じて、サーバ２００と通信して、情報の送受信を行う。
【００４４】
制御部１１０は、ゲームプログラム１３１の記述に応じて、操作受付部１１１、位置特定部１１２、領域規定部１１３、外縁部分特定部１１４、判定部１１５、ゲーム実行部１１６、および表示制御部１１７として機能する。制御部１１０は、実行するゲームの性質に応じて、ゲームを進行させるために、図示しないその他の機能ブロックとしても機能することができる。
【００４５】
操作受付部１１１は、タッチスクリーン１５（入力部１５１）の出力に基づいて、ユーザの入力操作を受け付ける。具体的には、操作受付部１１１は、ユーザの指などがタッチスクリーン１５に接近したことを、タッチスクリーン１５を構成する面の横軸及び縦軸からなる座標系の座標として検出する。例えば、操作受付部１１１は、入力部１５１に対する入力操作を受け付け、該入力操作の入力位置の座標を検出し、該入力操作の種類を特定する。操作受付部１１１は、入力操作の種類として、例えばタッチ操作、スライド操作、スワイプ操作、およびタップ操作等を特定する。また、操作受付部１１１は、連続して検知されていた入力が途切れると、タッチスクリーン１５から接触入力が解除されたことを検知する。
【００４６】
操作受付部１１１は、タッチスクリーン１５に対するユーザの操作を判別する。操作受付部１１１は、例えば、（１）「接近操作」、（２）「リリース操作」、（３）「タップ操作」、（４）「ダブルタップ操作」、（５）「長押し操作（ロングタッチ操作）」、（６）「ドラッグ操作（スワイプ操作）」、（７）「ムーブ操作」、（８）「フリック操作」、その他のユーザの操作を判別する。操作受付部１１１が判別するユーザの操作は、上記に限られない。例えば、タッチスクリーン１５が、ユーザがタッチスクリーン１５に対して押下する圧力の大きさを検出可能な機構を有する場合、操作受付部１１１は、ユーザにより押下された圧力の大きさを判別する。
【００４７】
（１）「接近操作」とは、ユーザが指などをタッチスクリーン１５に接近させる操作である。タッチスクリーン１５は、ユーザの指などが接近したこと（ユーザの指などがタッチスクリーン１５に接触したことを含む）をタッチスクリーン１５により検出し、検出したタッチスクリーン１５の座標に応じた信号を制御部１１０へ出力する。制御部１１０は、タッチスクリーン１５へのユーザの指などの接近を検出しない状態から、接近を検出したときに、状態が「タッチオン状態」になったと判別する。
【００４８】
（２）「リリース操作」とは、ユーザがタッチスクリーン１５を接近操作している状態を止める操作である。操作受付部１１１は、例えば、ユーザが指などをタッチスクリーン１５に接触させている状態から、指を離す操作をしたときに、ユーザの操作を「リリース操作」と判別する。制御部１１０は、タッチスクリーン１５へのユーザの指などの接近を検出している状態から、接近を検出しない状態になったときに、状態が「タッチオン状態」から「タッチオフ状態」になったと判別する。
【００４９】
（３）「タップ操作」とは、ユーザがタッチスクリーン１５に対して指などを接近させる接近操作をした後に、接近操作をした位置でリリース操作を行うことである。操作受付部１１１は、接近操作が検出されない状態（ユーザの指などがタッチスクリーン１５から離れており、タッチスクリーン１５がユーザの指などの接近を検出していない状態）から、タッチスクリーン１５の出力に基づいて、ユーザの指などが接近したことを検出した場合に、その検出した座標を「初期タッチ位置」として保持する。操作受付部１１１は、初期タッチ位置の座標と、リリース操作をした座標とがほぼ同一である場合（接近操作が検出された座標から一定範囲内の座標においてリリース操作の座標が検出された場合）に、ユーザの操作を「タップ操作」と判別する。
【００５０】
（４）「ダブルタップ操作」とは、ユーザがタップ操作を一定時間内に２回行う操作である。操作受付部１１１は、例えば、ユーザの操作をタップ操作と判別してから一定時間内に、タップ操作にかかる座標で再びタップ操作を判別した場合に、ユーザの操作を「ダブルタップ操作」と判別する。
【００５１】
（５）「長押し操作」とは、ユーザがタッチスクリーン１５を押し続ける操作である。タッチスクリーン１５は、ユーザの操作を検出して接近操作を判別してから、接近操作が検出された座標において接近操作が継続している時間が一定時間を超えた場合に、ユーザの操作を「長押し操作」（「長押し操作」を、「ロングタッチ操作」と称することもある）と判別する。
【００５２】
（６）「ドラッグ操作」とは、ユーザがタッチスクリーン１５に指などを接近させた接近状態を維持したまま、指をスライドさせる操作である。
【００５３】
（７）「ムーブ操作」とは、ユーザがタッチスクリーン１５において、接近操作を維持しつつ、タッチスクリーン１５に指などを接近させている位置を移動させてリリース操作を行う一連の操作をいう。
【００５４】
（８）「フリック操作」は、ユーザがムーブ操作を予め定められた時間よりも短い時間で行う操作をいう。フリック操作は、ユーザがタッチスクリーン１５で指を弾くような操作である。
【００５５】
図３は、操作受付部１１１が入力操作の種類を検知する処理を説明する図である。図３の例では、ユーザ情報１３３を記憶する記憶部１２０の配列ｆｐ［０］〜配列ｆｐ［１０］までの１１個の配列のそれぞれに、タッチスクリーン１５により検知されたタッチスクリーン１５上の位置を示す履歴情報が格納されている。履歴情報は、所定の期間毎（例えば、フレームレート毎）に履歴情報テーブルに格納される。履歴情報が格納される配列の個数は限定されず、任意の個数であってよい。また、履歴情報テーブルでは、タッチオフからタッチオンになった場合に検知された履歴情報を、初期位置座標として記憶部１２０に記憶してもよい。
【００５６】
図３に示されるように、例えば、配列ｆｐ［０］〜配列ｆｐ［９］に、履歴情報（ｘ０、ｙ０）が格納されており、配列ｆｐ［１０］にｎｕｌｌ値が格納された場合、操作受付部１１１は、入力操作はタップ操作であると判別する。また、例えば、タッチナウ状態において履歴情報が変化した後に、ｎｕｌｌ値が格納された場合、操作受付部１１１はｎｕｌｌ値が格納された配列ｆｐ［５］の直前の配列ｆｐ［３］および配列ｆｐ［４］に格納されている履歴情報を参照する。そして、操作受付部１１１は、配列ｆｐ［３］および配列ｆｐ［４］の履歴情報がそれぞれ示す位置の間の距離が予め設定された閾値以上である場合、入力操作はフリック操作であると判別する。また、操作受付部１１１は、タッチナウ状態において履歴情報が変化した後に、例えば配列ｆｐ［４］〜ｆｐ［１０］に履歴情報（ｘ１５、ｙ１５）が格納された場合、入力操作はスライド操作（移動操作）であると判別する。
【００５７】
位置特定部１１２は、タッチスクリーン１５に対する、互いに関連付けられるユーザの第１接触点および第２接触点が検出された場合、第１接触点に関連付けられる第１位置と、第２接触点に関連付けられる第２位置とを特定する。
【００５８】
領域規定部１１３は、第１位置および第２位置が特定された場合、ｘ軸（第１軸）およびｘ軸に直交する第ｙ軸（第２軸）を有し、かつ第１位置を原点として有する座標系を定義する。領域規定部１１３は、さらに、座標系において、第１位置を内部に含む判定領域を規定する。判定領域は、例えば、第１位置を中心に含む領域である。判定領域は、第１位置を中心以外の任意の箇所に含む領域でもあり得る。判定領域の具体例は後述する。
【００５９】
外縁部分特定部１１４は、第１位置と第２位置との相対的な位置関係に基づいて、判定領域の外縁を構成する複数の外縁部分のうち、第２位置に対応する外縁部分を特定する。
【００６０】
判定部１１５は、第２位置と、特定された外縁部分との位置関係を判定する。
【００６１】
ゲーム実行部１１６は、ユーザの操作に応じて、各種のプログラムを呼び出すなどによりゲームを進行させる処理を行う。例えば、ゲーム実行部１１６は、サーバ２００と通信し、ゲームの進行に応じてサーバ２００にデータを送信する処理、サーバ２００からゲームに関連するデータを受信する処理、ゲームの進行に応じてユーザに報酬を付与する処理、時間の経過を計測する処理、その他の処理を行う。ゲーム実行部１１６は、判定部１１５による判定結果に応じたゲーム処理を実行することもできる。
【００６２】
表示制御部１１７は、タッチスクリーン１５の表示部１５２に対して、上述の各要素によって実行された処理結果が反映されたゲーム画面を出力する。表示制御部１１７は、各種オブジェクトのモーションを示すアニメーションを含むゲーム画面を、表示部１５２に表示してもよい。また、表示制御部１１７は、ＵＩ（User  Interface）オブジェクトを、ゲーム画面に重畳して描画してもよい。
【００６３】
図２に示すユーザ端末１００の機能は、一例にすぎない。サーバ２００は、ユーザ端末１００が備える機能の少なくとも一部を備えていてもよい。また、ユーザ端末１００は、サーバ２００が備える機能の少なくとも一部を備えていてもよい。さらに、ユーザ端末１００およびサーバ２００以外の他の装置をゲームシステム１の構成要素とし、該他の装置にゲームシステム１における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラムを実行するコンピュータは、ユーザ端末１００、サーバ２００、および他の装置の何れであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。
【００６４】
＜処理フロー＞
図４は、実施形態１に係る、ユーザ端末１００が、ゲームプログラム１３１に基づいて実行する処理の流れを示すフローチャートである。図５は、実施形態１に係るゲーム画面３０１を示す図である。
【００６５】
ステップＳ１１において、表示制御部１１７は、例えば図５に示すゲーム画面３０１を表示部１５２に表示する。ゲーム画面３０１は、ゲームプログラム１３１に基づくゲームに登場する一場面を表す。ゲーム画面３０１の中央に、キャラクタ３１が配置される。キャラクタ３１は、ゲームオブジェクトの一種であり、タッチスクリーン１５に対するユーザの操作に応じて、ゲーム画面３０１内を移動することができる。ゲーム画面３０１には、ゲームに関する背景画像も含まれる。
【００６６】
図６は、実施形態１に係るゲーム画面３０１を示す図である。ユーザは、ゲーム中にキャラクタ３１を移動させるために、タッチスクリーン１５に対して第１操作を入力する。第１操作は、例えば、タッチスクリーン１５における第１接触点から第２接触点までの移動操作である。移動操作は、例えば、タッチスクリーン１５に対するスライド操作である。第１操作は、タッチスクリーン１５における第１接触点と第２接触点とをユーザが続けてタップする操作でもよい。
【００６７】
図６の例では、ユーザは、キャラクタ３１をゲーム画面３０１の右斜め上側に移動させることを目的として、ゲーム画面３０１における右斜め上側に向かうスライド操作を入力するように、タッチスクリーン１５において指を滑らせる。ステップＳ１２において、操作受付部１１１は、ユーザのスライド操作に応じて、タッチスクリーン１５に対する、互いに関連付けられる第１接触点および第２接触点を検出する。図６において、ユーザのスライド操作の方向４３は、第１接触点に関連付けられる第１位置４１から第２接触点に関連付けられる第２位置４２までの、ゲーム画面３０１の右斜め上側に向かう方向である。
【００６８】
ステップＳ１３において、位置特定部１１２は、第１接触点に関連付けられる第１位置４１と、第２接触点に関連付けられる第２位置４２とを特定する。ステップＳ１４において、領域規定部１１３は、第１位置４１を原点とする座標系を定義する。座標系は、ゲーム画面３０１の横方向に平行なｘ軸と、ゲーム画面３０１の縦方向に平行なｙ軸とを含む。ｙ軸は、ｘ軸に直交している。ステップＳ１５において、領域規定部１１３は、座標系において、第１位置４１を中心に含む円形領域５０を規定する。
【００６９】
円形領域５０は、第２位置４２が円形領域５０に含まれるか否かを判定するために用いられる一種の判定領域である。領域規定部１１３は、タッチスクリーン１５の画面サイズ（言い換えれば、ゲーム画面３０１のサイズ）に応じた大きさの円形領域５０を、規定することができる。領域規定部１１３は、ゲームの実行中における如何なる時点で規定された場合にも常に同一の大きさである円形領域５０を、規定することができる。領域規定部１１３は、あるいは、スライド操作が受け付けられた時点でのゲームの進行状況に応じて異なる大きさの円形領域５０を、規定することもできる。領域規定部１１３は、さらに、ユーザの指の大きさに応じた大きさの円形領域５０を規定することもできる。
【００７０】
図６では、座標系（ｘ軸，ｙ軸）および円形領域５０が含まれるゲーム画面３０１を図示している。これは説明の便宜のためであり、ゲーム画面３０１に座標系および円形領域５０が必ず表示されることを意図するものではない。言い換えれば、座標系および円形領域５０を規定することは、ゲーム画面３０１に座標系および円形領域５０を表示することと必ずしも同義ではない。表示制御部１１７は、ゲーム画面３０１に座標系および円形領域５０を表示してもよいし、しなくてもよい。言い換えれば、表示制御部１１７は、ゲーム画面３０１に表示されない座標系および円形領域５０を規定することができる。表示制御部１１７がゲーム画面３０１に座標系および円形領域５０を表示しない場合、座標系および円形領域５０がユーザに視認されないので、ユーザをゲームにより集中させることができる。
【００７１】
図７は、実施形態１に係る円形領域５０の詳細を示す図である。図７に示す円形領域５０は、図６に示す円形領域５０に対応している。図７では、円形領域５０は、半径＝１００の円形状を有する領域である。円形領域５０の外縁は、第１外縁部分５１、第２外縁部分５２、第３外縁部分５３、および第４外縁部分５４を含む複数の外縁部分によって構成される。第１外縁部分５１は、円形領域５０の外縁のうち座標系の第１象限に含まれる部分である。第２外縁部分５２は、円形領域５０の外縁のうち座標系の第２象限に含まれる部分である。第３外縁部分５３は、円形領域５０の外縁のうち座標系の第３象限に含まれる部分である。第４外縁部分５４は、円形領域５０の外縁のうち座標系の第４象限に含まれる部分である。図７では、円形領域５０の内部の中心に、第１位置４１が位置する。第２位置４２は、円形領域５０に含まれる。
【００７２】
本実施形態では、第２位置４２の座標を（ｘ１，ｙ１）として表記する。ｘ１は、第２位置４２のｘ座標であり、ｙ１は、第２位置４２のｙ座標である。図７では、ｘ１＝１００であり、かつ、ｙ１＝１００である。第１位置４１は座標系の原点であるため、第１位置４１のｘ座標およびｙ座標は、いずれも「０」である。
【００７３】
ステップＳ１６において、外縁部分特定部１１４は、第１位置４１と第２位置４２との相対的な位置関係に基づいて、第１外縁部分５１〜第４外縁部分５４のうち、第２位置に対応する外縁部分を特定する。外縁部分特定部１１４は、まず、座標系を構成する４つの異なる象限のうち第２位置４２が含まれる象限を特定する。図７の例では、外縁部分特定部１１４は、ｘ１が正の値でありかつｙ１が正の値であることに応じて、第２位置４２が含まれる象限として、ｘ軸における正の座標およびｙ軸における正の座標を有する第１象限を特定する。外縁部分特定部１１４は、特定された第１象限に含まれる第１外縁部分５１を、第２位置４２に対応する外縁部分として特定する。
【００７４】
図８は、実施形態１に係る判定テーブル５０１の一例を示す図である。本実施形態では、図８に示す判定テーブル５０１が、ゲーム情報１３２の一部として、記憶部１２０に予め格納されている。判定テーブル５０１は、第２位置４２が円形領域５０に含まれるか否かを判定するために、制御部１１０によって参照されるテーブルである。判定部１１５は、象限ＩＤと、数式と、判定条件とを、互いに関連付けて格納している。
【００７５】
象限ＩＤは、座標系を構成する４つの異なる象限のうちいずれかを識別するための識別子である。判定テーブル５０１には、４つの異なる象限ＩＤ１〜ＩＤ４が格納されている。象限ＩＤ１は、座標系を構成する第１象限を識別するための識別子であり、その値は１である。象限ＩＤ２は、座標系を構成する第２象限を識別するための識別子であり、その値は２である。象限ＩＤ３は、座標系を構成する第３象限を識別するための識別子であり、その値は３である。象限ＩＤ４は、座標系を構成する第４象限を識別するための識別子であり、その値は４である。
【００７６】
判定テーブル５０１は、象限ＩＤ１に数式５１１および判定条件５２１を関連付けて格納している。数式５１１は、円形領域５０の外縁のうち第１外縁部分５１を規定する数式である。数式５１１は、第２位置４２が第１象限に含まれる場合のｙｔｈを算出するために用いられる。数式５１１は、詳細には、次の式（１）である。
【００７７】
【数１】
2019177001.tif 000003
判定条件５２１は、第１象限において第２位置４２が円形領域５０に含まれない場合に成立する条件である。判定条件５２１は、詳細には、「ｙ１＞ｙｔｈ」である。これは、ｙ１がｙｔｈを上回ることである。判定部１１５は、第２位置４２が第１象限に含まれ、かつ、判定条件５２１が成立する場合、第２位置４２が円形領域５０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを上回る場合、第２位置４２が円形領域５０に含まれないと判定し、ｙ１がｙｔｈ以下である場合、第２位置４２が円形領域５０に含まれると判定する。
【００７８】
判定テーブル５０１は、象限ＩＤ２に数式５１２および判定条件５２２を関連付けて格納している。数式５１２は、円形領域５０の外縁のうち第２外縁部分５２を規定する数式である。数式５１２は、第２位置４２が第２象限に含まれる場合のｙｔｈを算出するために用いられる。数式５１２は、詳細には、次の式（２）である。
【００７９】
【数２】
2019177001.tif 000004
判定条件５２２は、第２象限において第２位置４２が円形領域５０に含まれない場合に成立する条件である。判定条件５２２は、詳細には、「ｙ１＞ｙｔｈ」である。判定部１１５は、第２位置４２が第２象限に含まれ、かつ、判定条件５２２が成立する場合、第２位置４２が円形領域５０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを上回る場合、第２位置４２が円形領域５０に含まれないと判定し、ｙ１がｙｔｈ以下である場合、第２位置４２が円形領域５０に含まれると判定する。
【００８０】
判定テーブル５０１は、象限ＩＤ３に数式５１３および判定条件５２３を関連付けて格納している。数式５１３は、円形領域５０の外縁のうち第３外縁部分５３を規定する数式である。数式５１３は、第２位置４２が第３象限に含まれる場合のｙｔｈを算出するために用いられる。数式５１３は、詳細には、次の式（３）である。
【００８１】
【数３】
2019177001.tif 000005
判定条件５２３は、第３象限において第２位置４２が円形領域５０に含まれない場合に成立する条件である。判定条件５２３は、詳細には、「ｙ１＜ｙｔｈ」である。これは、ｙ１がｙｔｈを下回ることである。判定部１１５は、第２位置４２が第３象限に含まれ、かつ、判定条件５２３が成立する場合、第２位置４２が円形領域５０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを下回る場合、第２位置４２が円形領域５０に含まれないと判定し、ｙ１がｙｔｈ以上である場合、第２位置４２が円形領域５０に含まれると判定する。
【００８２】
判定テーブル５０１は、象限ＩＤ４に数式５１４および判定条件５２４を関連付けて格納している。数式５１４は、円形領域５０の外縁のうち第４外縁部分５４の外周を規定する数式である。数式５１４は、第２位置４２が第４象限に含まれる場合のｙｔｈを算出するために用いられる。数式５１４は、詳細には、次の式（４）である。
【００８３】
【数４】
2019177001.tif 000006
判定条件５２４は、第４象限において第２位置４２が円形領域５０に含まれない場合に成立する条件である。判定条件５２４は、詳細には、「ｙ１＜ｙｔｈ」である。これは、ｙ１がｙｔｈを下回ることである。判定部１１５は、第２位置４２が第４象限に含まれ、かつ、判定条件５２４が成立する場合、第２位置４２が円形領域５０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを下回る場合、第２位置４２が円形領域５０に含まれないと判定し、ｙ１がｙｔｈ以上である場合、第２位置４２が円形領域５０に含まれると判定する。
【００８４】
ステップＳ１７において、判定部１１５は、第２位置４２と、特定された第１外縁部分５１との位置関係を判定する。この判定のために、判定部１１５は、判定テーブル５０１を参照することによって、特定された第１外縁部分５１を規定する数式を特定する。詳細には、判定部１１５は、特定された第１象限を識別する象限ＩＤ１に関連付けて判定テーブル５０１に格納される数式５１１を特定する。判定部１１５は、特定された数式５１１に第２位置４２のｘ１を代入することによって、ｙｔｈを算出する。図７の例では、判定部１１５は、第２位置４２のｘ１（＝１００）を数式５１１のｘ項に代入することによって、ｙｔｈとして「０」を算出する。
【００８５】
判定部１１５は、第２位置４２のｙ１と、算出されたｙｔｈとを比較することによって、第２位置４２と円形領域５０との位置関係を判定する。判定部１１５は、まず、特定された第１象限を識別する象限ＩＤ１に関連付けて判定テーブル５０１に格納される判定条件５２１（ｙ１＞ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件５２１を満たすか否かを判定する。図７の例では、ｙ１＝１００であり、ｙｔｈ＝０であるため、ｙ１＞ｙｔｈである。したがって、判定部１１５は、ｙ１およびｙｔｈが判定条件５２１を満たすと判定する。判定部１１５は、この判定結果に基づいて、第２位置４２が円形領域５０に含まれないと判定する。実際、図７に示すように第２位置４２は円形領域５０に含まれるため、判定部１１５は、第２位置４２が円形領域５０に含まれることを正しく判定している。
【００８６】
ステップＳ１８において、ゲーム実行部１１６は、判定部１１５による判定結果に応じたゲーム処理を実行する。ゲーム実行部１１６は、例えば、第１位置４１から第２位置４２に向かう方向４３（第１方向）を算出する。ゲーム実行部１１６は、さらに、ゲーム画面３０１において方向４３と平行であり、かつキャラクタ３１を起点とする方向３２（第２方向）に沿って、キャラクタ３１を移動させるゲーム処理を、実行する。より詳細には、ゲーム実行部１１６は、第２位置４２が円形領域５０に含まれないと判定されたことに応じて、ゲーム画面３０１においてキャラクタ３１を走らせる第１ゲーム処理を実行する。
【００８７】
図９は、実施形態１に係るゲーム画面３０２を示す図である。表示制御部１１７は、判定結果に応じたゲーム処理が実行された結果、図９に示すゲーム画面３０２を生成し、表示部１５２に表示する。ゲーム画面３０２では、キャラクタ３１は、方向３２に沿って、言い換えれば、ゲーム画面３０２の右斜め上側に向かって真っ直ぐに走っている。
【００８８】
図９の例では、表示制御部１１７は、第１位置４１を中心とする弾性体４４をゲーム画面３０２に表示する。表示制御部１１７は、ゲーム画面３０２において第１位置４１から第２位置４２に向かって、弾性体４４の一部を伸ばすように、弾性体４４を弾性変形させる。ゲーム画面３０２において弾性体４４が伸びる方向は、キャラクタ３１が移動する方向３２と平行である。ユーザは、弾性変形された弾性体４４を視認することによって、ゲーム画面３０２においてキャラクタ３１が移動する方向３２を直感的に把握することができる。
【００８９】
図１０は、実施形態１に係るゲーム画面３０３を示す図である。図１０の例では、ユーザは、キャラクタ３１をゲーム画面３０３の右斜め下に向かって移動させるために、ゲーム画面３０３の右斜め下に向かうスライド操作をタッチスクリーン１５に対して入力する。領域規定部１１３は、第１位置４１を中心に含む円形領域５０を規定する。
【００９０】
図１１は、実施形態１に係る円形領域５０の詳細を示す図である。図１１に示す円形領域５０は、図１０に示す円形領域５０に対応している。図１１では、第２位置４２は、円形領域５０に含まれない。図１１では、ｘ１＝６０であり、かつ、ｙ１＝−３０である。
【００９１】
外縁部分特定部１１４は、座標系を構成する４つの異なる象限のうち第２位置４２が含まれる象限を特定する。図１１の例では、外縁部分特定部１１４は、ｘ１が正の値であり、かつｙ１が負の値であることに応じて、第２位置４２が第４象限に含まれることを特定する。外縁部分特定部１１４は、特定された第４象限に含まれる第４外縁部分５４を、第２位置４２に対応する外縁部分として特定する。
【００９２】
判定部１１５は、判定テーブル５０１を参照することによって、特定された第４外縁部分５４を規定する数式を特定する。詳細には、判定部１１５は、特定された第４象限を識別する象限ＩＤ４に関連付けて判定テーブル５０１に格納される数式５１４を特定する。判定部１１５は、特定された数式５１４に第２位置４２のｘ座標（ｘ１）を代入することによって、閾値（ｙｔｈ）を算出する。図１１の例では、判定部１１５は、第２位置４２のｘ１（＝６０）を数式５１１のｘ項に代入することによって、ｙｔｈとして「−８０」を算出する。
【００９３】
判定部１１５は、第２位置４２のｙ１と、算出されたｙｔｈとを比較することによって、第２位置４２が円形領域５０に含まれるか否かを判定する。判定部１１５は、まず、特定された第４象限を識別する象限ＩＤ４に関連付けて判定テーブル５０１に格納される判定条件５２４（ｙ１＜ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件５２４を満たすか否かを判定する。図１１の例では、ｙ１＝−３０であり、ｙｔｈ＝−８０であるため、ｙ１≧ｙｔｈである。したがって判定部１１５は、ｙ１およびｙｔｈが判定条件５２４を満たさないと判定する。判定部１１５は、この判定結果に応じて、第２位置４２が円形領域５０に含まれると判定する。実際、図１１に示すように第２位置４２は円形領域５０に含まれるため、判定部１１５は、第２位置４２が円形領域５０に含まれることを正しく判定している。
【００９４】
ゲーム実行部１１６は、判定部１１５による判定結果に応じたゲーム処理を実行する。ゲーム実行部１１６は、例えば、スライド操作の方向４３と平行であり、かつキャラクタ３１を起点とする方向３２に沿って、キャラクタ３１を移動させるゲーム処理を、実行する。より詳細には、ゲーム実行部１１６は、第２位置４２が円形領域５０に含まれると判定されたことに応じて、ゲーム画面３０３においてキャラクタ３１を歩かせる第２ゲーム処理を実行する。
【００９５】
図１２は、実施形態１に係るゲーム画面３０４を示す図である。表示制御部１１７は、判定結果に応じたゲーム処理が実行された結果、図１２に示すゲーム画面３０４を生成し、表示部１５２に表示する。ゲーム画面３０４では、キャラクタ３１は、スライド操作の方向４３と平行な方向３２に沿って、言い換えれば、ゲーム画面３０２の右斜め下側に向かって、真っ直ぐに歩いている。
【００９６】
図１２の例では、表示制御部１１７は、第１位置４１を中心とする弾性体４４をゲーム画面３０４に表示する。表示制御部１１７は、ゲーム画面３０４において第１位置４１から第２位置４２に向かって、弾性体４４の一部を伸ばすように、弾性体４４を弾性変形させる。ゲーム画面３０４において弾性体４４が伸びる方向は、キャラクタ３１が移動する方向３２と平行である。ユーザは、弾性変形された弾性体４４を視認することによって、ゲーム画面３０４においてキャラクタ３１が移動する方向３２を直感的に把握することができる。
【００９７】
以上のように、判定部１１５は、第１位置４１と第２位置４２との距離を用いることなく、第２位置４２が円形領域５０に含まれるか否かを正確に判定することができる。これにより、第１位置４１と第２位置４２の距離を算出するための処理が不要になるため、より低い処理負荷で第２位置４２が円形領域５０に含まれるか否かを判定することができる。
【００９８】
図９および図１２に示すように、ユーザは、スライド操作の距離を適宜異ならせることによって、ゲーム画面３０２においてキャラクタ３１を走らせたり、ゲーム画面３０４においてキャラクタ３１を歩かせたりすることができる。このように、ゲームプログラム１３１は、ユーザによるキャラクタ３１の操作性を高めることができる。
【００９９】
判定部１１５は、第２位置４２が第２象限に含まれる場合も、第２位置４２が円形領域５０に含まれるか否かを判定することができる。例えば、ｘ１＝−５０、ｙ１＝５０であるとする。外縁部分特定部１１４は、ｘ１が負の値であり、かつｙ１が正の値であることに応じて、第２象限を、第２位置４２が含まれる象限として特定する。外縁部分特定部１１４は、特定された第２象限に含まれる第２外縁部分５２を、第２位置４２に対応する外縁部分として特定する。判定部１１５は、判定テーブル５０１を参照することによって、特定された第２外縁部分５２を規定する数式５１２を特定する。判定部１１５は、第２位置４２のｘ１（＝−５０）を数式５１２のｘ項に代入することによって、ｙｔｈとして「−８６」を算出する。
【０１００】
判定部１１５は、象限ＩＤ２に関連付けて判定テーブル５０１に格納される判定条件５２２（ｙ１＞ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件５２２を満たすか否かを判定する。本例では、ｙ１＝５０であり、ｙｔｈ＝８６であるため、ｙ１≦ｙｔｈである。したがって、判定部１１５は、ｙ１およびｙｔｈが判定条件５２２を満たさないと判定する。判定部１１５は、この判定結果に基づいて、第２位置４２が円形領域５０に含まれると判定する。
【０１０１】
判定部１１５は、第２位置４２が第３象限に含まれる場合も、第２位置４２が円形領域５０に含まれるか否かを判定することができる。例えば、ｘ１＝−９０、ｙ１＝−９０であるとする。外縁部分特定部１１４は、ｘ１が負の値であり、かつｙ１が負の値であることに応じて、第３象限を、第２位置４２が含まれる象限として特定する。外縁部分特定部１１４は、特定された第３象限に含まれる第３外縁部分５３を、第２位置４２に対応する外縁部分として特定する。判定部１１５は、判定テーブル５０１を参照することによって、特定された第３外縁部分５３を規定する数式５１３を特定する。判定部１１５は、第２位置４２のｘ１（＝−９０）を数式５１３のｘ項に代入することによって、ｙｔｈとして「−４４」を算出する。
【０１０２】
判定部１１５は、象限ＩＤ３に関連付けて判定テーブル５０１に格納される判定条件５２３（ｙ１＜ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件５２３を満たすか否かを判定する。本例では、ｙ１＝−９０であり、ｙｔｈ＝−４４であるため、ｙ１＜ｙｔｈである。したがって、判定部１１５は、ｙ１およびｙｔｈが判定条件５２３を満たすと判定する。判定部１１５は、この判定結果に基づいて、第２位置４２が円形領域５０に含まれないと判定する。
【０１０３】
図１３は、実施形態１に係る判定テーブル５０２の一例を示す図である。本実施形態では、図１３に示す判定テーブル５０２が、ゲーム情報１３２の一部として、記憶部１２０に予め格納されていてもよい。判定テーブル５０２は、第２位置４２が円形領域５０に含まれるか否かを判定するために、制御部１１０によって参照されるテーブルである。判定部１１５は、象限ＩＤと、数式と、判定条件とを、互いに関連付けて格納している。判定テーブル５０２には、４つの異なる象限ＩＤ１〜ＩＤ４が格納されている。
【０１０４】
判定テーブル５０２は、象限ＩＤ１に数式５３１および判定条件５４１を関連付けて格納している。数式５３１は、円形領域５０の外縁のうち第１外縁部分５１を規定する数式である。数式５３１は、第２位置４２が第１象限に含まれる場合のｘｔｈを算出するために用いられる。数式５３１は、詳細には、次の式（５）である。
【０１０５】
【数５】
2019177001.tif 000007
判定条件５４１は、第１象限において第２位置４２が円形領域５０に含まれない場合に成立する条件である。判定条件５４１は、詳細には、「ｘ１＞ｘｔｈ」である。これは、ｘ１がｘｔｈを上回ることである。判定部１１５は、第２位置４２が第１象限に含まれ、かつ、判定条件５４１が成立する場合、第２位置４２が円形領域５０に含まれないと判定する。言い換えれば、判定部１１５は、ｘ１がｘｔｈを上回る場合、第２位置４２が円形領域５０に含まれないと判定し、ｘ１がｘｔｈ以下である場合、第２位置４２が円形領域５０に含まれると判定する。
【０１０６】
判定テーブル５０２は、象限ＩＤ２に数式５３２および判定条件５４２を関連付けて格納している。数式５３２は、円形領域５０の外縁のうち第２外縁部分５２を規定する数式である。数式５３２は、第２位置４２が第２象限に含まれる場合のｘｔｈを算出するために用いられる。数式５３２は、詳細には、次の式（６）である。
【０１０７】
【数６】
2019177001.tif 000008
判定条件５４２は、第２象限において第２位置４２が円形領域５０に含まれない場合に成立する条件である。判定条件５４２は、詳細には、「ｘ１＜ｘｔｈ」である。これは、ｘ１がｘｔｈを下回ることである。判定部１１５は、第２位置４２が第２象限に含まれ、かつ、判定条件５４２が成立する場合、第２位置４２が円形領域５０に含まれないと判定する。言い換えれば、判定部１１５は、ｘ１がｘｔｈを下回る場合、第２位置４２が円形領域５０に含まれないと判定し、ｘ１がｘｔｈ以上である場合、第２位置４２が円形領域５０に含まれると判定する。
【０１０８】
判定テーブル５０２は、象限ＩＤ３に数式５３３および判定条件５４３を関連付けて格納している。数式５３３は、円形領域５０の外縁のうち第３外縁部分５３を規定する数式である。数式５３３は、第２位置４２が第３象限に含まれる場合のｘｔｈを算出するために用いられる。数式５３３は、詳細には、次の式（７）である。
【０１０９】
【数７】
2019177001.tif 000009
判定条件５４３は、第３象限において第２位置４２が円形領域５０に含まれない場合に成立する条件である。判定条件５４３は、詳細には、「ｘ１＜ｘｔｈ」である。これは、ｘ１がｘｔｈを下回ることである。判定部１１５は、第２位置４２が第３象限に含まれ、かつ、判定条件５４３が成立する場合、第２位置４２が円形領域５０に含まれないと判定する。判定部１１５は、ｘ１がｘｔｈを上回る場合、第２位置４２が円形領域５０に含まれないと判定し、ｘ１がｘｔｈ以下である場合、第２位置４２が円形領域５０に含まれると判定する。
【０１１０】
判定テーブル５０２は、象限ＩＤ４に数式５３４および判定条件５４４を関連付けて格納している。数式５３４は、円形領域５０の外縁のうち第４外縁部分５４の外周を規定する数式である。数式５３４は、第２位置４２が第４象限に含まれる場合のｘｔｈを算出するために用いられる。数式５３４は、詳細には、次の式（８）である。
【０１１１】
【数８】
2019177001.tif 000010
判定条件５４４は、第４象限において第２位置４２が円形領域５０に含まれない場合に成立する条件である。判定条件５４４は、詳細には、「ｘ１＞ｘｔｈ」である。これは、ｘ１がｘｔｈを上回ることである。判定部１１５は、第２位置４２が第４象限に含まれ、かつ、判定条件５４４が成立する場合、第２位置４２が円形領域５０に含まれないと判定する。言い換えれば、判定部１１５は、ｘ１がｘｔｈを上回る場合、第２位置４２が円形領域５０に含まれないと判定し、ｘ１がｘｔｈ以下である場合、第２位置４２が円形領域５０に含まれると判定する。
【０１１２】
判定部１１５は、例えば、図７に示すように第２位置４２が第１象限に含まれる場合、象限ＩＤ１に関連付けて判定テーブル５０２に格納される数式５３１を特定する。判定部１１５は、特定された数式５３１のｙ項に第２位置４２のｙ１（＝１００）を代入することによって、ｘｔｈとして「０」を算出する。判定部１１５は、象限ＩＤ１に関連付けて判定テーブル５０２に格納される判定条件５４１（ｘ１＞ｘｔｈ）を特定する。図７の例では、ｘ１＝１００であり、ｘｔｈ＝０であるため、ｘ１＞ｘｔｈであり、これは判定条件５４１を満たす。判定部１１５は、ｘ１およびｘｔｈが判定条件５４１を満たすことに応じて、第２位置４２が円形領域５０に含まれないと判定する。実際、図７に示すように第２位置４２は円形領域５０に含まれないため、判定部１１５は、第２位置４２が円形領域５０に含まれないことを正しく判定している。
【０１１３】
判定部１１５は、例えば、図１１に示すように第２位置４２が第４象限に含まれる場合、象限ＩＤ４に関連付けて判定テーブル５０２に格納される数式５３４を特定する。判定部１１５は、特定された数式５３４のｙ項に第２位置４２のｙ１（＝−３０）を代入することによって、ｘｔｈとして「９５」を算出する。判定部１１５は、象限ＩＤ４に関連付けて判定テーブル５０２に格納される判定条件５４４（ｘ１＞ｘｔｈ）を特定する。図７の例では、ｘ１＝６０であり、ｘｔｈ＝９５であるため、ｘ１＜ｘｔｈであり、これは判定条件５４４を満たさない。判定部１１５は、ｘ１およびｘｔｈが判定条件５４４を満たさないことに応じて、第２位置４２が円形領域５０に含まれると判定する。実際、図１１に示すように第２位置４２は円形領域５０に含まれるため、判定部１１５は、第２位置４２が円形領域５０に含まれることを正しく判定している。
【０１１４】
〔実施形態２〕
図１４は、実施形態２において、ユーザ端末１００が、ゲームプログラム１３１に基づいて実行する処理の流れを示すフローチャートである。図１５は、実施形態２に係るゲーム画面３０５を示す図である。
【０１１５】
ステップＳ２１において、表示制御部１１７は、例えば図１５に示すゲーム画面３０５を表示部１５２に表示する。ゲーム画面３０５は、ゲームプログラム１３１に基づくゲームに登場する一場面を表す。ゲーム画面３０５の中央に、キャラクタ３１が配置される。キャラクタ３１は、ゲームオブジェクトの一種であり、タッチスクリーン１５に対するユーザの操作に応じて、ゲーム画面３０５内を移動することができる。ゲーム画面３０５には、ゲームに関する背景画像も含まれる。
【０１１６】
図１６は、実施形態２に係るゲーム画面３０５を示す図である。ユーザは、ゲーム中にキャラクタ３１を移動させるために、タッチスクリーン１５に対して第１操作を入力する。第１操作は、例えば、タッチスクリーン１５における第１接触点から第２接触点までの移動操作である。移動操作は、例えば、タッチスクリーン１５に対するスライド操作である。第１操作は、タッチスクリーン１５における第１接触点と第２接触点とをユーザが続けてタップする操作でもよい。
【０１１７】
図１６の例では、ユーザは、キャラクタ３１をゲーム画面３０５の左斜め上側に移動させることを目的として、ゲーム画面３０５の左斜め下側に向かうスライド操作を入力するように、タッチスクリーン１５において指を滑らせる。ステップＳ２２において、操作受付部１１１は、タッチスクリーン１５に対する、互いに関連付けられる第１接触点および第２接触点を検出する。図１６において、ユーザのスライド操作の方向４３は、第１接触点に関連付けられる第１位置４１から第２接触点に関連付けられる第２位置４２までの、ゲーム画面３０５の左斜め上側に向かう方向である。
【０１１８】
ステップＳ２３において、位置特定部１１２は、第１接触点に関連付けられる第１位置４１と、第２接触点に関連付けられる第２位置４２とを特定する。ステップＳ２４において、領域規定部１１３は、第１位置４１を原点とする座標系を定義する。座標系は、ゲーム画面３０５の横方向に平行なｘ軸と、ゲーム画面３０５の縦方向に平行なｙ軸とを含む。ｙ軸は、ｘ軸に直交している。ステップＳ２５において、領域規定部１１３は、座標系において、第１位置４１を中心に含む菱形領域６０を規定する。
【０１１９】
菱形領域６０は、第２位置４２が菱形領域６０に含まれるか否かを判定するために用いられる一種の判定領域である。領域規定部１１３は、タッチスクリーン１５の画面サイズ（言い換えれば、ゲーム画面３０５のサイズ）に応じた大きさの菱形領域６０を、規定することができる。領域規定部１１３は、ゲームの実行中における如何なる時点で規定された場合にも常に同一の大きさである菱形領域６０を、規定することができる。領域規定部１１３は、あるいは、スライド操作が受け付けられた時点でのゲームの進行状況に応じて異なる大きさの菱形領域６０を、規定することもできる。領域規定部１１３は、さらに、ユーザの指の大きさに応じた大きさの菱形領域６０を規定することもできる。
【０１２０】
図１６では、座標系（ｘ軸，ｙ軸）および菱形領域６０が含まれるゲーム画面３０５を図示している。これは説明の便宜のためであり、ゲーム画面３０５に座標系および菱形領域６０が必ず表示されることを意図するものではない。言い換えれば、座標系および菱形領域６０を規定することは、ゲーム画面３０５に座標系および菱形領域６０を表示することと必ずしも同義ではない。表示制御部１１７は、ゲーム画面３０５に座標系および菱形領域６０を表示してもよいし、しなくてもよい。言い換えれば、表示制御部１１７は、ゲーム画面３０５に表示されない座標系および菱形領域６０をゲーム画面３０５に規定することができる。表示制御部１１７がゲーム画面３０５に座標系および菱形領域６０を表示しない場合、座標系および菱形領域６０がユーザに視認されないので、ユーザをゲームにより集中させることができる。
【０１２１】
図１７は、実施形態２に係る菱形領域６０の詳細を示す図である。図１７に示す菱形領域６０は、図１６に示す菱形領域６０に対応している。図１７では、菱形領域６０は、縦方向の幅＝１００かつ横方向の幅＝１００の菱形形状を有する領域である。菱形領域６０の外縁は、第１外縁部分６１、第２外縁部分６２、第３外縁部分６３、および第４外縁部分６４を含む複数の外縁部分によって構成される。第１外縁部分６１は、菱形領域６０の外縁のうち座標系の第１象限に含まれる部分である。第２外縁部分６２は、菱形領域６０の外縁のうち座標系の第２象限に含まれる部分である。第３外縁部分６３は、菱形領域６０の外縁のうち座標系の第３象限に含まれる部分である。第４外縁部分６４は、菱形領域６０の外縁のうち座標系の第４象限に含まれる部分である。図１７では、菱形領域６０の内部の中心に、第１位置４１が位置する。第２位置４２は、菱形領域６０に含まれる。
【０１２２】
本実施形態では、第２位置４２の座標を（ｘ１，ｙ１）として表記する。ｘ１は、第２位置４２のｘ座標であり、ｙ１は、第２位置４２のｙ座標である。図１７では、ｘ１＝１００であり、かつ、ｙ１＝−１００である。第１位置４１は座標系の原点であるため、第１位置４１のｘ座標およびｙ座標は、いずれも「０」である。
【０１２３】
ステップＳ２６において、外縁部分特定部１１４は、第１位置４１と第２位置４２との相対的な位置関係に基づいて、第１外縁部分６１〜第４外縁部分６４のうち、第２位置に対応する外縁部分を特定する。外縁部分特定部１１４は、まず、座標系を構成する４つの異なる象限のうち第２位置４２が含まれる象限を特定する。図１７の例では、外縁部分特定部１１４は、ｘ１が負の値でありかつｙ１が正の値であることに応じて、第２位置４２が含まれる象限として、ｘ軸における負の座標およびｙ軸における正の座標を有する第２象限を特定する。外縁部分特定部１１４は、特定された第２象限に含まれる第２外縁部分６２を、第２位置４２に対応する外縁部分として特定する。
【０１２４】
図１８は、実施形態２に係る判定テーブル６０１の一例を示す図である。本実施形態では、図１８に示す判定テーブル６０１が、ゲーム情報１３２の一部として、記憶部１２０に予め格納されている。判定テーブル６０１は、第２位置４２が菱形領域６０に含まれるか否かを判定するために、制御部１１０によって参照されるテーブルである。判定部１１５は、象限ＩＤと、数式と、判定条件とを、互いに関連付けて格納している。
【０１２５】
象限ＩＤは、座標系を構成する４つの異なる象限のうちいずれかを識別するための識別子である。判定テーブル６０１には、４つの異なる象限ＩＤ１〜ＩＤ４が格納されている。象限ＩＤ１は、座標系を構成する第１象限を識別するための識別子であり、その値は１である。象限ＩＤ２は、座標系を構成する第２象限を識別するための識別子であり、その値は２である。象限ＩＤ３は、座標系を構成する第３象限を識別するための識別子であり、その値は３である。象限ＩＤ４は、座標系を構成する第４象限を識別するための識別子であり、その値は４である。
【０１２６】
判定テーブル６０１は、象限ＩＤ１に数式６１１および判定条件６２１を関連付けて格納している。数式６１１は、菱形領域６０の外縁のうち第１外縁部分６１を規定する数式である。数式６１１は、第２位置４２が第１象限に含まれる場合のｙｔｈを算出するために用いられる。数式６１１は、詳細には、次の式（９）である。
【０１２７】
【数９】
2019177001.tif 000011
判定条件６２１は、第１象限において第２位置４２が菱形領域６０に含まれない場合に成立する条件である。判定条件６２１は、詳細には、「ｙ１＞ｙｔｈ」である。これは、ｙ１がｙｔｈを上回ることである。判定部１１５は、第２位置４２が第１象限に含まれ、かつ、判定条件６２１が成立する場合、第２位置４２が菱形領域６０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを上回る場合、第２位置４２が菱形領域６０に含まれないと判定し、ｙ１がｙｔｈ以下である場合、第２位置４２が菱形領域６０に含まれると判定する。
【０１２８】
判定テーブル６０１は、象限ＩＤ２に数式６１２および判定条件６２２を関連付けて格納している。数式６１２は、菱形領域６０の外縁のうち第２外縁部分６２を規定する数式である。数式６１２は、第２位置４２が第２象限に含まれる場合のｙｔｈを算出するために用いられる。数式６１２は、詳細には、次の式（１０）である。
【０１２９】
【数１０】
2019177001.tif 000012
判定条件６２２は、第２象限において第２位置４２が菱形領域６０に含まれない場合に成立する条件である。判定条件６２２は、詳細には、「ｙ１＞ｙｔｈ」である。判定部１１５は、第２位置４２が第２象限に含まれ、かつ、判定条件６２２が成立する場合、第２位置４２が菱形領域６０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを上回る場合、第２位置４２が菱形領域６０に含まれないと判定し、ｙ１がｙｔｈ以下である場合、第２位置４２が菱形領域６０に含まれると判定する。
【０１３０】
判定テーブル６０１は、象限ＩＤ３に数式６１３および判定条件６２３を関連付けて格納している。数式６１３は、菱形領域６０の外縁のうち第３外縁部分６３を規定する数式である。数式６１３は、第２位置４２が第３象限に含まれる場合のｙｔｈを算出するために用いられる。数式６１３は、詳細には、次の式（１１）である。
【０１３１】
【数１１】
2019177001.tif 000013
判定条件６２３は、第３象限において第２位置４２が菱形領域６０に含まれない場合に成立する条件である。判定条件６２３は、詳細には、「ｙ１＜ｙｔｈ」である。これは、ｙ１がｙｔｈを下回ることである。判定部１１５は、第２位置４２が第３象限に含まれ、かつ、判定条件６２３が成立する場合、第２位置４２が菱形領域６０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを下回る場合、第２位置４２が菱形領域６０に含まれないと判定し、ｙ１がｙｔｈ以上である場合、第２位置４２が菱形領域６０に含まれると判定する。
【０１３２】
判定テーブル６０１は、象限ＩＤ４に数式６１４および判定条件６２４を関連付けて格納している。数式６１４は、菱形領域６０の外縁のうち第４外縁部分６４の外周を規定する数式である。数式６１４は、第２位置４２が第４象限に含まれる場合のｙｔｈを算出するために用いられる。数式６１４は、詳細には、次の式（１２）である。
【０１３３】
【数１２】
2019177001.tif 000014
判定条件６２４は、第４象限において第２位置４２が菱形領域６０に含まれない場合に成立する条件である。判定条件６２４は、詳細には、「ｙ１＜ｙｔｈ」である。これは、ｙ１がｙｔｈを下回ることである。判定部１１５は、第２位置４２が第４象限に含まれ、かつ、判定条件６２４が成立する場合、第２位置４２が菱形領域６０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを下回る場合、第２位置４２が菱形領域６０に含まれないと判定し、ｙ１がｙｔｈ以上である場合、第２位置４２が菱形領域６０に含まれると判定する。
【０１３４】
ステップＳ２７において、判定部１１５は、第２位置４２と、特定された第２外縁部分６２との位置関係を判定する。この判定のために、判定部１１５は、判定テーブル６０１を参照することによって、特定された第２外縁部分６２を規定する数式を特定する。詳細には、判定部１１５は、特定された第２象限を識別する象限ＩＤ２に関連付けて判定テーブル６０１に格納される数式６１２を特定する。判定部１１５は、特定された数式６１２に第２位置４２のｘ１を代入することによって、ｙｔｈを算出する。図１７の例では、判定部１１５は、第２位置４２のｘ１（＝−１００）を数式６１２のｘ項に代入することによって、ｙｔｈとして「０」を算出する。
【０１３５】
判定部１１５は、第２位置４２のｙ１と、算出されたｙｔｈとを比較することによって、第２位置４２と菱形領域６０との位置関係を判定する。判定部１１５は、まず、特定された第２象限を識別する象限ＩＤ２に関連付けて判定テーブル６０１に格納される判定条件６２２（ｙ＞ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件６２２を満たすか否かを判定する。図１７の例では、ｙ１＝１００であり、ｙｔｈ＝０であるため、ｙ１＞ｙｔｈである。したがって、判定部１１５は、ｙ１およびｙｔｈが判定条件６２２を満たすと判定する。判定部１１５は、この判定結果に基づいて、第２位置４２が菱形領域６０に含まれないと判定する。実際、図１７に示すように第２位置４２は菱形領域６０に含まれないため、判定部１１５は、第２位置４２が菱形領域６０に含まれないことを正しく判定している。
【０１３６】
ステップＳ２８において、ゲーム実行部１１６は、判定部１１５による判定結果に応じたゲーム処理を実行する。ゲーム実行部１１６は、例えば、第１位置４１から第２位置４２に向かう方向４３（第１方向）を算出する。ゲーム実行部１１６は、例えば、方向４３（第１方向）と平行であり、かつキャラクタ３１を起点とする方向３２（第２方向）に沿って、キャラクタ３１を移動させるゲーム処理を、実行する。より詳細には、ゲーム実行部１１６は、第２位置４２が菱形領域６０に含まれないと判定されたことに応じて、ゲーム画面３０５においてキャラクタ３１を走らせる第１ゲーム処理を実行する。
【０１３７】
図１９は、実施形態２に係るゲーム画面３０６を示す図である。表示制御部１１７は、判定結果に応じたゲーム処理が実行された結果、図１９に示すゲーム画面３０６を生成し、表示部１５２に表示する。ゲーム画面３０６では、キャラクタ３１は、方向３２に沿って、言い換えれば、ゲーム画面３０６の左斜め上側に向かって真っ直ぐに走っている。
【０１３８】
図１９の例では、表示制御部１１７は、第１位置４１を中心とする弾性体４４をゲーム画面３０６に表示する。表示制御部１１７は、ゲーム画面３０６において第１位置４１から第２位置４２に向かって、弾性体４４の一部を伸ばすように、弾性体４４を弾性変形させる。ゲーム画面３０６において弾性体４４が伸びる方向は、キャラクタ３１が移動する方向３２と平行である。ユーザは、弾性変形された弾性体４４を視認することによって、ゲーム画面３０６においてキャラクタ３１が移動する方向３２を直感的に把握することができる。
【０１３９】
図２０は、実施形態２に係るゲーム画面３０７を示す図である。図２０の例では、ユーザは、キャラクタ３１をゲーム画面３０７の左斜め下に向かって移動させるために、ゲーム画面３０７の左斜め下に向かうスライド操作をタッチスクリーン１５に対して入力する。領域規定部１１３は、第１位置４１を中心に含む菱形領域６０を規定する。
【０１４０】
図２１は、実施形態２に係る菱形領域６０の詳細を示す図である。図２１に示す菱形領域６０は、図２０に示す菱形領域６０に対応している。図２１では、第２位置４２は、菱形領域６０に含まれない。図２１では、ｘ１＝−６０であり、かつ、ｙ１＝−３０である。
【０１４１】
外縁部分特定部１１４は、座標系を構成する４つの異なる象限のうち第２位置４２が含まれる象限を特定する。図２１の例では、外縁部分特定部１１４は、ｘ１が負の値であり、かつｙ１が負の値であることに応じて、第２位置４２が第３象限に含まれることを特定する。外縁部分特定部１１４は、特定された第３象限に含まれる第３外縁部分６３を、第２位置４２に対応する外縁部分として特定する。
【０１４２】
判定部１１５は、判定テーブル６０１を参照することによって、特定された第３外縁部分６３を規定する数式を特定する。詳細には、判定部１１５は、特定された第３象限を識別する象限ＩＤ３に関連付けて判定テーブル６０１に格納される数式６１３を特定する。判定部１１５は、特定された数式６１３に第２位置４２のｘ座標（ｘ１）を代入することによって、閾値（ｙｔｈ）を算出する。図２１の例では、判定部１１５は、第２位置４２のｘ１（＝−６０）を数式６１３のｘ項に代入することによって、ｙｔｈとして「−４０」を算出する。
【０１４３】
判定部１１５は、第２位置４２のｙ１と、算出されたｙｔｈとを比較することによって、第２位置４２が菱形領域６０に含まれるか否かを判定する。判定部１１５は、まず、特定された第３象限を識別する象限ＩＤ３に関連付けて判定テーブル６０１に格納される判定条件６２３（ｙ１＜ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件６２３を満たすか否かを判定する。図２０の例では、ｙ１＝−３０であり、ｙｔｈ＝−４０であるため、ｙ１≧ｙｔｈである。したがって判定部１１５は、ｙ１およびｙｔｈが判定条件６２３を満たさないと判定する。判定部１１５は、この判定結果に応じて、第２位置４２が菱形領域６０に含まれると判定する。実際、図２１に示すように第２位置４２は菱形領域６０に含まれるため、判定部１１５は、第２位置４２が菱形領域６０に含まれることを正しく判定している。
【０１４４】
ゲーム実行部１１６は、判定部１１５による判定結果に応じたゲーム処理を実行する。ゲーム実行部１１６は、例えば、ゲーム画面３０７においてスライド操作の方向４３と平行であり、かつキャラクタ３１を起点とする方向に沿って、キャラクタ３１を移動させるゲーム処理を、実行する。より詳細には、ゲーム実行部１１６は、第２位置４２が菱形領域６０に含まれないと判定されたことに応じて、ゲーム画面３０７においてキャラクタ３１を歩かせる第２ゲーム処理を実行する。
【０１４５】
図２２は、実施形態２に係るゲーム画面３０８を示す図である。表示制御部１１７は、判定結果に応じたゲーム処理が実行された結果、図２２に示すゲーム画面３０８を生成し、表示部１５２に表示する。ゲーム画面３０８では、キャラクタ３１は、スライド操作の方向４３と平行な方向３２に沿って、言い換えれば、ゲーム画面３０８の左斜め下側に向かって、真っ直ぐに歩いている。
【０１４６】
図２２の例では、表示制御部１１７は、第１位置４１を中心とする弾性体４４をゲーム画面３０８に表示する。表示制御部１１７は、ゲーム画面３０８において第１位置４１から第２位置４２に向かって、弾性体４４の一部を伸ばすように、弾性体４４を弾性変形させる。ゲーム画面３０８において弾性体４４が伸びる方向は、キャラクタ３１が移動する方向３２と平行である。ユーザは、弾性変形された弾性体４４を視認することによって、ゲーム画面３０８においてキャラクタ３１が移動する方向３２を直感的に把握することができる。
【０１４７】
以上のように、判定部１１５は、第１位置４１と第２位置４２との距離を用いることなく、第２位置４２が菱形領域６０に含まれるか否かを正確に判定することができる。これにより、第１位置４１と第２位置４２の距離を算出するための処理が不要になるため、より低い処理負荷で第２位置４２が菱形領域６０に含まれるか否かを判定することができる。
【０１４８】
図１８および図２２に示すように、ユーザは、スライド操作の距離を適宜異ならせることによって、ゲーム画面３０６においてキャラクタ３１を走らせたり、ゲーム画面３０８においてキャラクタ３１を歩かせたりすることができる。このように、ゲームプログラム１３１は、ユーザによるキャラクタ３１の操作性を高めることができる。
【０１４９】
判定部１１５は、第２位置４２が第１象限に含まれる場合も、第２位置４２が菱形領域６０に含まれるか否かを判定することができる。例えば、ｘ１＝３０、ｙ１＝３０であるとする。外縁部分特定部１１４は、ｘ１が正の値であり、かつｙ１が正の値であることに応じて、第１象限を、第２位置４２が含まれる象限として特定する。外縁部分特定部１１４は、特定された第１象限に含まれる第１外縁部分６１を、第２位置４２に対応する外縁部分として特定する。判定部１１５は、判定テーブル６０１を参照することによって、特定された第１外縁部分６１を規定する数式６１１を特定する。判定部１１５は、第２位置４２のｘ１（＝５０）を数式６１１のｘ項に代入することによって、ｙｔｈとして「７０」を算出する。
【０１５０】
判定部１１５は、象限ＩＤ１に関連付けて判定テーブル６０１に格納される判定条件６２１（ｙ１＞ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件６２１を満たすか否かを判定する。本例では、ｙ１＝３０であり、ｙｔｈ＝７０であるため、ｙ１≦ｙｔｈである。したがって、判定部１１５は、ｙ１およびｙｔｈが判定条件６２１を満たさないと判定する。判定部１１５は、この判定結果に基づいて、第２位置４２が菱形領域６０に含まれると判定する。
【０１５１】
判定部１１５は、第２位置４２が第４象限に含まれる場合も、第２位置４２が菱形領域６０に含まれるか否かを判定することができる。例えば、ｘ１＝９０、ｙ１＝−９０であるとする。外縁部分特定部１１４は、ｘ１が正の値であり、かつｙ１が負の値であることに応じて、第４象限を、第２位置４２が含まれる象限として特定する。外縁部分特定部１１４は、特定された第４象限に含まれる第４外縁部分６４を、第２位置４２に対応する外縁部分として特定する。判定部１１５は、判定テーブル６０１を参照することによって、菱形領域６０の外縁のうち、特定された第４外縁部分６４を規定する数式６１４を特定する。判定部１１５は、第２位置４２のｘ１（＝９０）を数式６１４のｘ項に代入することによって、ｙｔｈとして「−１０」を算出する。
【０１５２】
判定部１１５は、象限ＩＤ４に関連付けて判定テーブル６０１に格納される判定条件６２４（ｙ１＜ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件６２３を満たすか否かを判定する。本例では、ｙ１＝−９０であり、ｙｔｈ＝−１０であるため、ｙ１＜ｙｔｈである。したがって、判定部１１５は、ｙ１およびｙｔｈが判定条件６２４を満たすと判定する。判定部１１５は、この判定結果に基づいて、第２位置４２が菱形領域６０に含まれないと判定する。
【０１５３】
図２３は、実施形態２に係る判定テーブル６０２の一例を示す図である。本実施形態では、図２３に示す判定テーブル６０２が、ゲーム情報１３２の一部として、記憶部１２０に予め格納されていてもよい。判定テーブル６０２は、第２位置４２が菱形領域６０に含まれるか否かを判定するために、制御部１１０によって参照されるテーブルである。判定部１１５は、象限ＩＤと、数式と、判定条件とを、互いに関連付けて格納している。判定テーブル６０２には、４つの異なる象限ＩＤ１〜ＩＤ４が格納されている。
【０１５４】
判定テーブル６０２は、象限ＩＤ１に数式６３１および判定条件６４１を関連付けて格納している。数式６３１は、菱形領域６０の外縁のうち第１外縁部分６１を規定する数式である。数式６３１は、第２位置４２が第１象限に含まれる場合のｘｔｈを算出するために用いられる。数式６３１は、詳細には、次の式（１３）である。
【０１５５】
【数１３】
2019177001.tif 000015
判定条件６４１は、第１象限において第２位置４２が菱形領域６０に含まれない場合に成立する条件である。判定条件６４１は、詳細には、「ｘ１＞ｘｔｈ」である。これは、ｘ１がｘｔｈを上回ることである。判定部１１５は、第２位置４２が第１象限に含まれ、かつ、判定条件６４１が成立する場合、第２位置４２が菱形領域６０に含まれないと判定する。言い換えれば、判定部１１５は、ｘ１がｘｔｈを上回る場合、第２位置４２が菱形領域６０に含まれないと判定し、ｘ１がｘｔｈ以下である場合、第２位置４２が菱形領域６０に含まれると判定する。
【０１５６】
判定テーブル６０２は、象限ＩＤ２に数式６３２および判定条件６４２を関連付けて格納している。数式６３２は、菱形領域６０の外縁のうち第２外縁部分６２を規定する数式である。数式６３２は、第２位置４２が第２象限に含まれる場合のｘｔｈを算出するために用いられる。数式６３２は、詳細には、次の式（１４）である。
【０１５７】
【数１４】
2019177001.tif 000016
判定条件６４２は、第２象限において第２位置４２が菱形領域６０に含まれない場合に成立する条件である。判定条件６４２は、詳細には、「ｘ１＜ｘｔｈ」である。これは、ｘ１がｘｔｈを下回ることである。判定部１１５は、第２位置４２が第２象限に含まれ、かつ、判定条件６４２が成立する場合、第２位置４２が菱形領域６０に含まれないと判定する。言い換えれば、判定部１１５は、ｘ１がｘｔｈを下回る場合、第２位置４２が菱形領域６０に含まれないと判定し、ｘ１がｘｔｈ以上である場合、第２位置４２が菱形領域６０に含まれると判定する。
【０１５８】
判定テーブル６０２は、象限ＩＤ３に数式６３３および判定条件６４３を関連付けて格納している。数式６３３は、菱形領域６０の外縁のうち第３外縁部分６３を規定する数式である。数式６３３は、第２位置４２が第３象限に含まれる場合のｘｔｈを算出するために用いられる。数式６３３は、詳細には、次の式（１５）である。
【０１５９】
【数１５】
2019177001.tif 000017
判定条件６４３は、第３象限において第２位置４２が菱形領域６０に含まれない場合に成立する条件である。判定条件６４３は、詳細には、「ｘ１＜ｘｔｈ」である。これは、ｘ１がｘｔｈを下回ることである。判定部１１５は、第２位置４２が第３象限に含まれ、かつ、判定条件６４３が成立する場合、第２位置４２が菱形領域６０に含まれないと判定する。判定部１１５は、ｘ１がｘｔｈを上回る場合、第２位置４２が菱形領域６０に含まれないと判定し、ｘ１がｘｔｈ以下である場合、第２位置４２が菱形領域６０に含まれると判定する。
【０１６０】
判定テーブル６０２は、象限ＩＤ４に数式６３４および判定条件６４４を関連付けて格納している。数式６３４は、菱形領域６０の外縁のうち第４外縁部分６４の外周を規定する数式である。数式６３４は、第２位置４２が第４象限に含まれる場合のｘｔｈを算出するために用いられる。数式６３４は、詳細には、次の式（１６）である。
【０１６１】
【数１６】
2019177001.tif 000018
判定条件６４４は、第４象限において第２位置４２が菱形領域６０に含まれない場合に成立する条件である。判定条件６４４は、詳細には、「ｘ１＞ｘｔｈ」である。これは、ｘ１がｘｔｈを上回ることである。判定部１１５は、第２位置４２が第４象限に含まれ、かつ、判定条件６４４が成立する場合、第２位置４２が菱形領域６０に含まれないと判定する。言い換えれば、判定部１１５は、ｘ１がｘｔｈを上回る場合、第２位置４２が菱形領域６０に含まれないと判定し、ｘ１がｘｔｈ以下である場合、第２位置４２が菱形領域６０に含まれると判定する。
【０１６２】
判定部１１５は、例えば、図１７に示すように第２位置４２が第２象限に含まれる場合、象限ＩＤ２に関連付けて判定テーブル６０２に格納される数式６３２を特定する。判定部１１５は、特定された数式６３２のｙ項に第２位置４２のｙ１（＝１００）を代入することによって、ｘｔｈとして「０」を算出する。判定部１１５は、象限ＩＤ２に関連付けて判定テーブル６０２に格納される判定条件６４２（ｘ１＜ｘｔｈ）を特定する。図１７の例では、ｘ１＝−１００であり、ｘｔｈ＝０であるため、ｘ１＜ｘｔｈであり、これは判定条件６４２を満たす。判定部１１５は、ｘ１およびｘｔｈが判定条件６４２を満たすことに応じて、第２位置４２が菱形領域６０に含まれないと判定する。実際、図１７に示すように第２位置４２は菱形領域６０に含まれないため、判定部１１５は、第２位置４２が菱形領域６０に含まれないことを正しく判定している。
【０１６３】
判定部１１５は、例えば、図２０に示すように第２位置４２が第３象限に含まれる場合、象限ＩＤ３に関連付けて判定テーブル６０２に格納される数式６３３を特定する。判定部１１５は、特定された数式６３３のｙ項に第２位置４２のｙ１（＝−３０）を代入することによって、ｘｔｈとして「−７０」を算出する。判定部１１５は、象限ＩＤ３に関連付けて判定テーブル６０２に格納される判定条件６４３（ｘ１＜ｘｔｈ）を特定する。図１７の例では、ｘ１＝−６０であり、ｘｔｈ＝−７０であるため、ｘ１≧ｘｔｈであり、これは判定条件６４３を満たさない。判定部１１５は、ｘ１およびｘｔｈが判定条件６４３を満たさないことに応じて、第２位置４２が菱形領域６０に含まれると判定する。実際、図２１に示すように第２位置４２は菱形領域６０に含まれるため、判定部１１５は、第２位置４２が菱形領域６０に含まれることを正しく判定している。
【０１６４】
〔実施形態３〕
図２４は、実施形態３において、ユーザ端末１００が、ゲームプログラム１３１に基づいて実行する処理の流れを示すフローチャートである。図２５は、実施形態３に係るゲーム画面３０９を示す図である。
【０１６５】
ステップＳ３１において、表示制御部１１７は、例えば図２５に示すゲーム画面３０９を表示部１５２に表示する。ゲーム画面３０９は、ゲームプログラム１３１に基づくゲームに登場する一場面を表す。ゲーム画面３０９の中央に、キャラクタ３１が配置される。キャラクタ３１は、ゲームオブジェクトの一種であり、タッチスクリーン１５に対するユーザの操作に応じて、ゲーム画面３０９内を移動することができる。ゲーム画面３０９には、ゲームに関する背景画像も含まれる。
【０１６６】
図２６は、実施形態３に係るゲーム画面３０９を示す図である。ユーザは、ゲーム中にキャラクタ３１を移動させるために、タッチスクリーン１５に対して第１操作を入力する。第１操作は、例えば、タッチスクリーン１５における第１接触点から第２接触点までの移動操作である。移動操作は、例えば、タッチスクリーン１５に対するスライド操作である。第１操作は、タッチスクリーン１５における第１接触点と第２接触点とをユーザが続けてタップする操作でもよい。
【０１６７】
ユーザは、キャラクタ３１をゲーム画面３０９の右斜め上側に移動させることを目的として、ゲーム画面３０９の左斜め下側に向かうスライド操作を入力するように、タッチスクリーン１５において指を滑らせる。ステップＳ３２において、操作受付部１１１は、タッチスクリーン１５に対する、互いに関連付けられる第１接触点および第２接触点を検出する。図２６において、ユーザのスライド操作の方向４３は、第１接触点に関連付けられる第１位置４１から第２接触点に関連付けられる第２位置４２までの、ゲーム画面３０９の右斜め上側に向かう方向である。
【０１６８】
ステップＳ３３において、位置特定部１１２は、第１接触点に関連付けられる第１位置４１と、第２接触点に関連付けられる第２位置４２とを特定する。ステップＳ３４において、領域規定部１１３は、第１位置４１を原点とする座標系を定義する。座標系は、ゲーム画面３０９の横方向に平行なｘ軸と、ゲーム画面３０９の縦方向に平行なｙ軸とを含む。ｙ軸は、ｘ軸に直交している。ステップＳ３５において、領域規定部１１３は、座標系において、第１位置４１を中心に含む楕円形領域７０を規定する。
【０１６９】
楕円形領域７０は、第２位置４２が楕円形領域７０に含まれるか否かを判定するために用いられる一種の判定領域である。領域規定部１１３は、タッチスクリーン１５の画面サイズ（言い換えれば、ゲーム画面３０９のサイズ）に応じた大きさの楕円形領域７０を、規定することができる。領域規定部１１３は、ゲームの実行中における如何なる時点で規定された場合にも常に同一の大きさである楕円形領域７０を、規定することができる。領域規定部１１３は、あるいは、スライド操作が受け付けられた時点でのゲームの進行状況に応じて異なる大きさの楕円形領域７０を、規定することもできる。領域規定部１１３は、さらに、ユーザの指の大きさに応じた大きさの楕円形領域７０を規定することもできる。
【０１７０】
図２６では、座標系（ｘ軸，ｙ軸）および楕円形領域７０が含まれるゲーム画面３０９を図示している。これは説明の便宜のためであり、ゲーム画面３０９に座標系および楕円形領域７０が必ず表示されることを意図するものではない。言い換えれば、座標系および楕円形領域７０を規定することは、ゲーム画面３０９に座標系および楕円形領域７０を表示することと必ずしも同義ではない。表示制御部１１７は、ゲーム画面３０９に座標系および楕円形領域７０を表示してもよいし、しなくてもよい。言い換えれば、表示制御部１１７は、ゲーム画面３０９に表示されない座標系および楕円形領域７０を規定することができる。表示制御部１１７がゲーム画面３０９に座標系および楕円形領域７０を表示しない場合、座標系および楕円形領域７０がユーザに視認されないので、ユーザをゲームにより集中させることができる。
【０１７１】
図２７は、実施形態３に係る楕円形領域７０の詳細を示す図である。図２７に示す楕円形領域７０は、図２６に示す楕円形領域７０に対応している。図２７では、楕円形領域７０は、縦方向の幅＝１００かつ横方向の幅＝１００の楕円形状を有する領域である。楕円形領域７０の外縁は、第１外縁部分７１、第２外縁部分７２、第３外縁部分７３、および第４外縁部分７４を含む複数の外縁部分によって構成される。第１外縁部分７１は、楕円形領域７０の外縁のうち座標系の第１象限に含まれる部分である。第２外縁部分７２は、楕円形領域７０の外縁のうち座標系の第２象限に含まれる部分である。第３外縁部分７３は、楕円形領域７０の外縁のうち座標系の第３象限に含まれる部分である。第４外縁部分７４は、楕円形領域７０の外縁のうち座標系の第４象限に含まれる部分である。図２７では、楕円形領域７０の内部の中心に、第１位置４１が位置する。第２位置４２は、楕円形領域７０に含まれる。
【０１７２】
本実施形態では、第２位置４２の座標を（ｘ１，ｙ１）として表記する。ｘ１は、第２位置４２のｘ座標であり、ｙ１は、第２位置４２のｙ座標である。図２７では、ｘ１＝１００であり、かつ、ｙ１＝−１００である。第１位置４１は座標系の原点であるため、第１位置４１のｘ座標およびｙ座標は、いずれも「０」である。
【０１７３】
ステップＳ３６において、外縁部分特定部１１４は、第１位置４１と第２位置４２との相対的な位置関係に基づいて、第１外縁部分７１〜第４外縁部分７４のうち、第２位置に対応する外縁部分を特定する。外縁部分特定部１１４は、まず、座標系を構成する４つの異なる象限のうち第２位置４２が含まれる象限を特定する。図２７の例では、判定部１１５は、ｘ１が正の値でありかつｙ１が正の値であることに応じて、第２位置４２が含まれる象限として、ｘ軸における正の座標およびｙ軸における正の座標を有する第１象限を特定する。外縁部分特定部１１４は、特定された第１象限に含まれる第１外縁部分７１を、第２位置４２に対応する外縁部分として特定する。
【０１７４】
図２８は、実施形態３に係る判定テーブル７０１の一例を示す図である。本実施形態では、図２８に示す判定テーブル７０１が、ゲーム情報１３２の一部として、記憶部１２０に予め格納されている。判定テーブル７０１は、第２位置４２が楕円形領域７０に含まれるか否かを判定するために、制御部１１０によって参照されるテーブルである。判定部１１５は、象限ＩＤと、数式と、判定条件とを、互いに関連付けて格納している。
【０１７５】
象限ＩＤは、座標系を構成する４つの異なる象限のうちいずれかを識別するための識別子である。判定テーブル７０１には、４つの異なる象限ＩＤ１〜ＩＤ４が格納されている。象限ＩＤ１は、座標系を構成する第１象限を識別するための識別子であり、その値は１である。象限ＩＤ２は、座標系を構成する第２象限を識別するための識別子であり、その値は２である。象限ＩＤ３は、座標系を構成する第３象限を識別するための識別子であり、その値は３である。象限ＩＤ４は、座標系を構成する第４象限を識別するための識別子であり、その値は４である。
【０１７６】
判定テーブル７０１は、象限ＩＤ１に数式７１１および判定条件７２１を関連付けて格納している。数式７１１は、楕円形領域７０の外縁のうち第１外縁部分７１を規定する数式である。数式７１１は、第２位置４２が第１象限に含まれる場合のｙｔｈを算出するために用いられる。数式７１１は、詳細には、次の式（１７）である。
【０１７７】
【数１７】
2019177001.tif 000019
判定条件７２１は、第１象限において第２位置４２が楕円形領域７０に含まれない場合に成立する条件である。判定条件７２１は、詳細には、「ｙ１＞ｙｔｈ」である。これは、ｙ１がｙｔｈを上回ることである。判定部１１５は、第２位置４２が第１象限に含まれ、かつ、判定条件７２１が成立する場合、第２位置４２が楕円形領域７０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを上回る場合、第２位置４２が楕円形領域７０に含まれないと判定し、ｙ１がｙｔｈ以下である場合、第２位置４２が楕円形領域７０に含まれると判定する。
【０１７８】
判定テーブル７０１は、象限ＩＤ２に数式７１２および判定条件７２２を関連付けて格納している。数式７１２は、楕円形領域７０の外縁のうち第２外縁部分７２を規定する数式である。数式７１２は、第２位置４２が第２象限に含まれる場合のｙｔｈを算出するために用いられる。数式７１２は、詳細には、次の式（１８）である。
【０１７９】
【数１８】
2019177001.tif 000020
判定条件７２２は、第２象限において第２位置４２が楕円形領域７０に含まれない場合に成立する条件である。判定条件７２２は、詳細には、「ｙ１＞ｙｔｈ」である。判定部１１５は、第２位置４２が第２象限に含まれ、かつ、判定条件７２２が成立する場合、第２位置４２が楕円形領域７０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを上回る場合、第２位置４２が楕円形領域７０に含まれないと判定し、ｙ１がｙｔｈ以下である場合、第２位置４２が楕円形領域７０に含まれると判定する。
【０１８０】
判定テーブル７０１は、象限ＩＤ３に数式７１３および判定条件７２３を関連付けて格納している。数式７１３は、楕円形領域７０の外縁のうち第３外縁部分７３を規定する数式である。数式７１３は、第２位置４２が第３象限に含まれる場合のｙｔｈを算出するために用いられる。数式７１３は、詳細には、次の式（１９）である。
【０１８１】
【数１９】
2019177001.tif 000021
判定条件７２３は、第３象限において第２位置４２が楕円形領域７０に含まれない場合に成立する条件である。判定条件７２３は、詳細には、「ｙ１＜ｙｔｈ」である。これは、ｙ１がｙｔｈを下回ることである。判定部１１５は、第２位置４２が第３象限に含まれ、かつ、判定条件７２３が成立する場合、第２位置４２が楕円形領域７０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを下回る場合、第２位置４２が楕円形領域７０に含まれないと判定し、ｙ１がｙｔｈ以上である場合、第２位置４２が楕円形領域７０に含まれると判定する。
【０１８２】
判定テーブル７０１は、象限ＩＤ４に数式７１４および判定条件７２４を関連付けて格納している。数式７１４は、楕円形領域７０の外縁のうち第４外縁部分７４の外周を規定する数式である。数式７１４は、第２位置４２が第４象限に含まれる場合のｙｔｈを算出するために用いられる。数式７１４は、詳細には、次の式（２０）である。
【０１８３】
【数２０】
2019177001.tif 000022
判定条件７２４は、第４象限において第２位置４２が楕円形領域７０に含まれない場合に成立する条件である。判定条件７２３は、詳細には、「ｙ１＜ｙｔｈ」である。これは、ｙ１がｙｔｈを下回ることである。判定部１１５は、第２位置４２が第４象限に含まれ、かつ、判定条件７２４が成立する場合、第２位置４２が楕円形領域７０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを下回る場合、第２位置４２が楕円形領域７０に含まれないと判定し、ｙ１がｙｔｈ以上である場合、第２位置４２が楕円形領域７０に含まれると判定する。
【０１８４】
ステップＳ３７において、判定部１１５は、第２位置４２と、特定された第１外縁部分７１との位置関係を判定する。この判定のために、判定部１１５は、判定テーブル７０１を参照することによって、特定された第１外縁部分７１を規定する数式を特定する。詳細には、判定部１１５は、特定された第１象限を識別する象限ＩＤ１に関連付けて判定テーブル７０１に格納される数式７１１を特定する。判定部１１５は、特定された数式７１１に第２位置４２のｘ１を代入することによって、ｙｔｈを算出する。図２７の例では、判定部１１５は、第２位置４２のｘ１（＝８０）を数式７１１のｘ項に代入することによって、ｙｔｈとして「３０」を算出する。
【０１８５】
判定部１１５は、第２位置４２のｙ１と、算出されたｙｔｈとを比較することによって、第２位置４２と楕円形領域７０との位置関係を判定する。判定部１１５は、まず、特定された第１象限を識別する象限ＩＤ１に関連付けて判定テーブル７０１に格納される判定条件７２１（ｙ１＞ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件７２１を満たすか否かを判定する。図２７の例では、ｙ１＝８０であり、ｙｔｈ＝３０であるため、ｙ１＞ｙｔｈである。したがって、判定部１１５は、ｙ１およびｙｔｈが判定条件７２１を満たすと判定する。判定部１１５は、この判定結果に基づいて、第２位置４２が楕円形領域７０に含まれないと判定する。実際、図２７に示すように第２位置４２は楕円形領域７０に含まれないため、判定部１１５は、第２位置４２が楕円形領域７０に含まれないことを正しく判定している。
【０１８６】
ステップＳ３８において、ゲーム実行部１１６は、判定部１１５による判定結果に応じたゲーム処理を実行する。ゲーム実行部１１６は、例えば、第１位置４１から第２位置４２に向かう方向４３（第１方向）を算出する。ゲーム実行部１１６は、例えば、ゲーム画面３０９において方向４３と平行であり、かつキャラクタ３１を起点とする方向３２（第２方向）に沿って、キャラクタ３１を移動させるゲーム処理を、実行する。より詳細には、ゲーム実行部１１６は、第２位置４２が楕円形領域７０に含まれないと判定されたことに応じて、ゲーム画面３０９においてキャラクタ３１を走らせる第１ゲーム処理を実行する。
【０１８７】
図２９は、実施形態３に係るゲーム画面３１０を示す図である。表示制御部１１７は、判定結果に応じたゲーム処理が実行された結果、図２９に示すゲーム画面３１０を生成し、表示部１５２に表示する。ゲーム画面３１０では、キャラクタ３１は、方向３２に沿って、言い換えれば、ゲーム画面３１０の左斜め上側に向かって真っ直ぐに走っている。
【０１８８】
図２９の例では、表示制御部１１７は、第１位置４１を中心とする弾性体４４をゲーム画面３１０に表示する。表示制御部１１７は、ゲーム画面３１０において第１位置４１から第２位置４２に向かって、弾性体４４の一部を伸ばすように、弾性体４４を弾性変形させる。ゲーム画面３１０において弾性体４４が伸びる方向は、キャラクタ３１が移動する方向３２と平行である。ユーザは、弾性変形された弾性体４４を視認することによって、ゲーム画面３１０においてキャラクタ３１が移動する方向３２を直感的に把握することができる。
【０１８９】
図３０は、実施形態３に係るゲーム画面３１１を示す図である。図３０の例では、ユーザは、キャラクタ３１をゲーム画面３１１の左斜め上に向かって移動させるために、ゲーム画面３１１の左斜め上に向かうスライド操作をタッチスクリーン１５に対して入力する。領域規定部１１３は、第１位置４１を中心に含む楕円形領域７０を規定する。
【０１９０】
図３１は、実施形態３に係る楕円形領域７０の詳細を示す図である。図３１に示す楕円形領域７０は、図３０に示す楕円形領域７０に対応している。図３１では、第２位置４２は、楕円形領域７０に含まれない。図３１では、ｘ１＝−３０であり、かつ、ｙ１＝３０である。
【０１９１】
外縁部分特定部１１４は、座標系を構成する４つの異なる象限のうち第２位置４２が含まれる象限を特定する。図３１の例では、外縁部分特定部１１４は、ｘ１が負の値であり、かつｙ１が正の値であることに応じて、第２位置４２が第２象限に含まれることを特定する。外縁部分特定部１１４は、特定された第２象限に含まれる第２外縁部分７２を、第２位置４２に対応する外縁部分として特定する。
【０１９２】
判定部１１５は、判定テーブル７０１を参照することによって、特定された第２外縁部分７２を規定する数式を特定する。詳細には、判定部１１５は、特定された第２象限を識別する象限ＩＤ２に関連付けて判定テーブル７０１に格納される数式７１２を特定する。判定部１１５は、特定された数式７１２に第２位置４２のｘ座標（ｘ１）を代入することによって、閾値（ｙｔｈ）を算出する。図３１の例では、判定部１１５は、第２位置４２のｘ１（＝−３０）を数式７１３のｘ項に代入することによって、ｙｔｈとして「４７」を算出する。
【０１９３】
判定部１１５は、第２位置４２のｙ１と、算出されたｙｔｈとを比較することによって、第２位置４２が楕円形領域７０に含まれるか否かを判定する。判定部１１５は、まず、特定された第２象限を識別する象限ＩＤ２に関連付けて判定テーブル７０１に格納される判定条件７２２（ｙ１＞ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件７２２を満たすか否かを判定する。図３１の例では、ｙ１＝３０であり、ｙｔｈ＝４７であるため、ｙ１はｙｔｈ以下（ｙ１≦ｙｔｈ）である。したがって判定部１１５は、ｙ１およびｙｔｈが判定条件７２２を満たさないと判定する。判定部１１５は、この判定結果に応じて、第２位置４２が楕円形領域７０に含まれると判定する。実際、図３１に示すように第２位置４２は楕円形領域７０に含まれるため、判定部１１５は、第２位置４２が楕円形領域７０に含まれることを正しく判定している。
【０１９４】
ゲーム実行部１１６は、判定部１１５による判定結果に応じたゲーム処理を実行する。ゲーム実行部１１６は、例えば、ゲーム画面３１１においてスライド操作の方向４３と平行であり、かつキャラクタ３１を起点とする方向３２に沿って、キャラクタ３１を移動させるゲーム処理を、実行する。より詳細には、ゲーム実行部１１６は、第２位置４２が楕円形領域７０に含まれると判定されたことに応じて、ゲーム画面３１１においてキャラクタ３１を歩かせる第２ゲーム処理を実行する。
【０１９５】
図３２は、実施形態３に係るゲーム画面３１２を示す図である。表示制御部１１７は、判定結果に応じたゲーム処理が実行された結果、図３２に示すゲーム画面３１２を生成し、表示部１５２に表示する。ゲーム画面３１２では、キャラクタ３１は、スライド操作の方向４３と平行な方向３２に沿って、言い換えれば、ゲーム画面３１２の左斜め上側に向かって、真っ直ぐに歩いている。
【０１９６】
図３２の例では、表示制御部１１７は、第１位置４１を中心とする弾性体４４をゲーム画面３１２に表示する。表示制御部１１７は、ゲーム画面３１２において第１位置４１から第２位置４２に向かって、弾性体４４の一部を伸ばすように、弾性体４４を弾性変形させる。ゲーム画面３１２において弾性体４４が伸びる方向は、キャラクタ３１が移動する方向３２と平行である。ユーザは、弾性変形された弾性体４４を視認することによって、ゲーム画面３１２においてキャラクタ３１が移動する方向３２を直感的に把握することができる。
【０１９７】
以上のように、判定部１１５は、第１位置４１と第２位置４２との距離を用いることなく、第２位置４２が楕円形領域７０に含まれるか否かを正確に判定することができる。これにより、第１位置４１と第２位置４２の距離を算出するための処理が不要になるため、より低い処理負荷で第２位置４２が楕円形領域７０に含まれるか否かを判定することができる。
【０１９８】
図２８および図３２に示すように、ユーザは、スライド操作の距離を適宜異ならせることによって、ゲーム画面３１０においてキャラクタ３１を走らせたり、ゲーム画面３１２においてキャラクタ３１を歩かせたりすることができる。このように、ゲームプログラム１３１は、ユーザによるキャラクタ３１の操作性を高めることができる。
【０１９９】
判定部１１５は、第２位置４２が第３象限に含まれる場合も、第２位置４２が楕円形領域７０に含まれるか否かを判定することができる。例えば、ｘ１＝−３０、ｙ１＝−３０であるとする。外縁部分特定部１１４は、ｘ１が負の値であり、かつｙ１が負の値であることに応じて、第３象限を、第２位置４２が含まれる象限として特定する。外縁部分特定部１１４は、特定された第３象限に含まれる第３外縁部分７３を、第２位置４２に対応する外縁部分として特定する。判定部１１５は、判定テーブル７０１を参照することによって、特定された第３外縁部分７３を規定する数式７１３を特定する。判定部１１５は、第２位置４２のｘ１（＝−３０）を数式７１１のｘ項に代入することによって、ｙｔｈとして「−４７」を算出する。
【０２００】
判定部１１５は、象限ＩＤ３に関連付けて判定テーブル７０１に格納される判定条件７２３（ｙ１＜ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件７２３を満たすか否かを判定する。本例では、ｙ１＝−３０であり、ｙｔｈ＝−４７であるため、ｙ１≧ｙｔｈである。したがって、判定部１１５は、ｙ１およびｙｔｈが判定条件７２３を満たさないと判定する。判定部１１５は、この判定結果に基づいて、第２位置４２が楕円形領域７０に含まれると判定する。
【０２０１】
判定部１１５は、第２位置４２が第４象限に含まれる場合も、第２位置４２が楕円形領域７０に含まれるか否かを判定することができる。例えば、ｘ１＝９０、ｙ１＝−９０であるとする。外縁部分特定部１１４は、ｘ１が正の値であり、かつｙ１が負の値であることに応じて、第４象限を、第２位置４２が含まれる象限として特定する。外縁部分特定部１１４は、特定された第４象限に含まれる第４外縁部分７４を、第２位置４２に対応する外縁部分として特定する。判定部１１５は、判定テーブル７０１を参照することによって、特定された第４外縁部分７４を規定する数式７１４を特定する。判定部１１５は、第２位置４２のｘ１（＝９０）を数式７１４のｘ項に代入することによって、ｙｔｈとして「−２２」を算出する。
【０２０２】
判定部１１５は、象限ＩＤ４に関連付けて判定テーブル７０１に格納される判定条件７２４（ｙ１＜ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件７２４を満たすか否かを判定する。本例では、ｙ１＝−９０であり、ｙｔｈ＝−２２であるため、ｙ１＜ｙｔｈである。したがって、判定部１１５は、ｙ１およびｙｔｈが判定条件７２４を満たすと判定する。判定部１１５は、この判定結果に基づいて、第２位置４２が楕円形領域７０に含まれないと判定する。
【０２０３】
図３３は、実施形態３に係る判定テーブル７０２の一例を示す図である。本実施形態では、図３３に示す判定テーブル７０２が、ゲーム情報１３２の一部として、記憶部１２０に予め格納されていてもよい。判定テーブル７０２は、第２位置４２が楕円形領域７０に含まれるか否かを判定するために、制御部１１０によって参照されるテーブルである。判定部１１５は、象限ＩＤと、数式と、判定条件とを、互いに関連付けて格納している。判定テーブル７０２には、４つの異なる象限ＩＤ１〜ＩＤ４が格納されている。
【０２０４】
判定テーブル７０２は、象限ＩＤ１に数式７３１および判定条件７４１を関連付けて格納している。数式７３１は、楕円形領域７０の外縁のうち第１外縁部分７１を規定する数式である。数式７３１は、第２位置４２が第１象限に含まれる場合のｘｔｈを算出するために用いられる。数式７３１は、詳細には、次の式（２１）である。
【０２０５】
【数２１】
2019177001.tif 000023
判定条件７４１は、第１象限において第２位置４２が楕円形領域７０に含まれない場合に成立する条件である。判定条件７４１は、詳細には、「ｘ１＞ｘｔｈ」である。これは、ｘ１がｘｔｈを上回ることである。判定部１１５は、第２位置４２が第１象限に含まれ、かつ、判定条件７４１が成立する場合、第２位置４２が楕円形領域７０に含まれないと判定する。言い換えれば、判定部１１５は、ｘ１がｘｔｈを上回る場合、第２位置４２が楕円形領域７０に含まれないと判定し、ｘ１がｘｔｈ以下である場合、第２位置４２が楕円形領域７０に含まれると判定する。
【０２０６】
判定テーブル７０２は、象限ＩＤ２に数式７３２および判定条件７４２を関連付けて格納している。数式７３２は、楕円形領域７０の外縁のうち第２外縁部分７２を規定する数式である。数式７３２は、第２位置４２が第２象限に含まれる場合のｘｔｈを算出するために用いられる。数式７３２は、詳細には、次の式（２２）である。
【０２０７】
【数２２】
2019177001.tif 000024
判定条件７４２は、第２象限において第２位置４２が楕円形領域７０に含まれない場合に成立する条件である。判定条件７４２は、詳細には、「ｘ１＜ｘｔｈ」である。これは、ｘ１がｘｔｈを下回ることである。判定部１１５は、第２位置４２が第２象限に含まれ、かつ、判定条件７４２が成立する場合、第２位置４２が楕円形領域７０に含まれないと判定する。言い換えれば、判定部１１５は、ｘ１がｘｔｈを下回る場合、第２位置４２が楕円形領域７０に含まれないと判定し、ｘ１がｘｔｈ以上である場合、第２位置４２が楕円形領域７０に含まれると判定する。
【０２０８】
判定テーブル７０２は、象限ＩＤ３に数式７３３および判定条件７４３を関連付けて格納している。数式７３３は、楕円形領域７０の外縁のうち第３外縁部分７３を規定する数式である。数式７３３は、第２位置４２が第３象限に含まれる場合のｘｔｈを算出するために用いられる。数式７３３は、詳細には、次の式（２３）である。
【０２０９】
【数２３】
2019177001.tif 000025
判定条件７４３は、第３象限において第２位置４２が楕円形領域７０に含まれない場合に成立する条件である。判定条件７４３は、詳細には、「ｘ１＜ｘｔｈ」である。これは、ｘ１がｘｔｈを下回ることである。判定部１１５は、第２位置４２が第３象限に含まれ、かつ、判定条件７４３が成立する場合、第２位置４２が楕円形領域７０に含まれないと判定する。判定部１１５は、ｘ１がｘｔｈを上回る場合、第２位置４２が楕円形領域７０に含まれないと判定し、ｘ１がｘｔｈ以下である場合、第２位置４２が楕円形領域７０に含まれると判定する。
【０２１０】
判定テーブル７０２は、象限ＩＤ４に数式７３４および判定条件７４４を関連付けて格納している。数式７３４は、楕円形領域７０の外縁のうち第４外縁部分７４の外周を規定する数式である。数式７３４は、第２位置４２が第４象限に含まれる場合のｘｔｈを算出するために用いられる。数式７３４は、詳細には、次の式（２４）である。
【０２１１】
【数２４】
2019177001.tif 000026
判定条件７４４は、第４象限において第２位置４２が楕円形領域７０に含まれない場合に成立する条件である。判定条件７４４は、詳細には、「ｘ１＞ｘｔｈ」である。これは、ｘ１がｘｔｈを上回ることである。判定部１１５は、第２位置４２が第４象限に含まれ、かつ、判定条件７４４が成立する場合、第２位置４２が楕円形領域７０に含まれないと判定する。言い換えれば、判定部１１５は、ｘ１がｘｔｈを上回る場合、第２位置４２が楕円形領域７０に含まれないと判定し、ｘ１がｘｔｈ以下である場合、第２位置４２が楕円形領域７０に含まれると判定する。
【０２１２】
判定部１１５は、例えば、図２７に示すように第２位置４２が第１象限に含まれる場合、象限ＩＤ１に関連付けて判定テーブル７０２に格納される数式７３１を特定する。判定部１１５は、特定された数式７３１のｙ項に第２位置４２のｙ１（＝８０）を代入することによって、ｘｔｈとして虚数の値を算出する。この場合、判定部１１５は、ｘｔｈの値を「０」として算出し直す。判定部１１５は、象限ＩＤ１に関連付けて判定テーブル７０２に格納される判定条件７４１（ｘ１＞ｘｔｈ）を特定する。図２７の例では、ｘ１＝８０であり、ｘｔｈ＝０であるため、ｘ１＞ｘｔｈであり、これは判定条件７４１を満たす。判定部１１５は、ｘ１およびｘｔｈが判定条件７４１を満たすことに応じて、第２位置４２が楕円形領域７０に含まれないと判定する。実際、図２７に示すように第２位置４２は楕円形領域７０に含まれないため、判定部１１５は、第２位置４２が楕円形領域７０に含まれないことを正しく判定している。
【０２１３】
判定部１１５は、例えば、図３１に示すように第２位置４２が第２象限に含まれる場合、象限ＩＤ２に関連付けて判定テーブル７０２に格納される数式７３２を特定する。判定部１１５は、特定された数式７３２のｙ項に第２位置４２のｙ１（＝３０）を代入することによって、ｘｔｈとして「−８０」を算出する。判定部１１５は、象限ＩＤ２に関連付けて判定テーブル７０２に格納される判定条件７４２（ｘ１＜ｘｔｈ）を特定する。図３１の例では、ｘ１＝−３０であり、ｘｔｈ＝−８０であるため、ｘ１≧ｘｔｈであり、これは判定条件７４２を満たさない。判定部１１５は、ｘ１およびｘｔｈが判定条件７４２を満たさないことに応じて、第２位置４２が楕円形領域７０に含まれると判定する。実際、図３１に示すように第２位置４２は楕円形領域７０に含まれるため、判定部１１５は、第２位置４２が楕円形領域７０に含まれることを正しく判定している。
【０２１４】
〔実施形態４〕
図３４は、実施形態４において、ユーザ端末１００が、ゲームプログラム１３１に基づいて実行する処理の流れを示すフローチャートである。図３５は、実施形態４に係るゲーム画面３１３を示す図である。
【０２１５】
ステップＳ４１において、表示制御部１１７は、例えば図３５に示すゲーム画面３１３を表示部１５２に表示する。ゲーム画面３１３は、ゲームプログラム１３１に基づくゲームに登場する一場面を表す。ゲーム画面３１３の中央に、キャラクタ３１が配置される。キャラクタ３１は、ゲームオブジェクトの一種であり、タッチスクリーン１５に対するユーザの操作に応じて、ゲーム画面３１３内を移動することができる。ゲーム画面３１３には、ゲームに関する背景画像も含まれる。
【０２１６】
図３６は、実施形態４に係るゲーム画面３１３を示す図である。ユーザは、ゲーム中にキャラクタ３１を移動させるために、タッチスクリーン１５に対して第１操作を入力する。第１操作は、例えば、タッチスクリーン１５における第１接触点から第２接触点までの移動操作である。移動操作は、例えば、タッチスクリーン１５に対するスライド操作である。第１操作は、タッチスクリーン１５における第１接触点と第２接触点とをユーザが続けてタップする操作でもよい。
【０２１７】
図３６の例では、ユーザは、キャラクタ３１をゲーム画面３１３の右斜め下側に移動させることを目的として、ゲーム画面３１３の右斜め下側に向かうスライド操作を入力するように、タッチスクリーン１５において指を滑らせる。ステップＳ４２において、操作受付部１１１は、タッチスクリーン１５に対する、互いに関連付けられる第１接触点および第２接触点を検出する。図３６において、ユーザのスライド操作の方向４３は、第１接触点に関連付けられる第１位置４１から第２接触点に関連付けられる第２位置４２までの、ゲーム画面３１３の右斜め下側に向かう方向である。
【０２１８】
ステップＳ４３において、位置特定部１１２は、第１接触点に関連付けられる第１位置４１と、第２接触点に関連付けられる第２位置４２とを特定する。ステップＳ４４において、領域規定部１１３は、第１位置４１を原点とする座標系を定義する。座標系は、ゲーム画面３１３の横方向に平行なｘ軸と、ゲーム画面３１３の縦方向に平行なｙ軸とを含む。ｙ軸は、ｘ軸に直交している。ステップＳ４５において、領域規定部１１３は、座標系において、第１位置４１を中心に含む六角形領域８０を規定する。
【０２１９】
六角形領域８０は、第２位置４２が六角形領域８０に含まれるか否かを判定するために用いられる一種の判定領域である。領域規定部１１３は、タッチスクリーン１５の画面サイズ（言い換えれば、ゲーム画面３１３のサイズ）に応じた大きさの六角形領域８０を、規定することができる。領域規定部１１３は、ゲームの実行中における如何なる時点で規定された場合にも常に同一の大きさである六角形領域８０を、規定することができる。領域規定部１１３は、あるいは、スライド操作が受け付けられた時点でのゲームの進行状況に応じて異なる大きさの六角形領域８０を、規定することもできる。領域規定部１１３は、さらに、ユーザの指の大きさに応じた大きさの六角形領域８０を規定することもできる。
【０２２０】
図３６では、座標系（ｘ軸，ｙ軸）および六角形領域８０が含まれるゲーム画面３１３を図示している。これは説明の便宜のためであり、ゲーム画面３１３に座標系および六角形領域８０が必ず表示されることを意図するものではない。言い換えれば、座標系および六角形領域８０を規定することは、ゲーム画面３１３に座標系および六角形領域８０を表示することと必ずしも同義ではない。表示制御部１１７は、ゲーム画面３１３に座標系および六角形領域８０を表示してもよいし、しなくてもよい。言い換えれば、表示制御部１１７は、ゲーム画面３１３に表示されない座標系および六角形領域８０をゲーム画面３１３に規定することができる。表示制御部１１７がゲーム画面３１３に座標系および六角形領域８０を表示しない場合、座標系および六角形領域８０がユーザに視認されないので、ユーザをゲームにより集中させることができる。
【０２２１】
図３７は、実施形態４に係る六角形領域８０の詳細を示す図である。図３７に示す六角形領域８０は、図３６に示す六角形領域８０に対応している。図３７では、六角形領域８０は、縦方向の幅＝１００かつ横方向の幅＝１００の六角形形状を有する領域である。六角形領域８０の外縁は、第１外縁部分８１、第２外縁部分８２、第３外縁部分８３、および第４外縁部分８４を含む複数の外縁部分によって構成される。第１外縁部分８１は、六角形領域８０のうち座標系の第１象限に含まれる部分である。第２外縁部分８２は、六角形領域８０のうち座標系の第２象限に含まれる部分である。第３外縁部分８３は、六角形領域８０のうち座標系の第３象限に含まれる部分である。第４外縁部分８４は、六角形領域８０のうち座標系の第４象限に含まれる部分である。図３７では、六角形領域８０の内部の中心に、第１位置４１が位置する。第２位置４２は、六角形領域８０に含まれる。
【０２２２】
本実施形態では、第２位置４２の座標を（ｘ１，ｙ１）として表記する。ｘ１は、第２位置４２のｘ座標であり、ｙ１は、第２位置４２のｙ座標である。図３７では、ｘ１＝１００であり、かつ、ｙ１＝−４０である。第１位置４１は座標系の原点であるため、第１位置４１のｘ座標およびｙ座標は、いずれも「０」である。
【０２２３】
ステップＳ４６において、外縁部分特定部１１４は、第１位置４１と第２位置４２との相対的な位置関係に基づいて、第１外縁部分６１〜第４外縁部分６４のうち、第２位置に対応する外縁部分を特定する。外縁部分特定部１１４は、まず、座標系を構成する４つの異なる象限のうち第２位置４２が含まれる象限を特定する。図３７の例では、判定部１１５は、ｘ１が正の値でありかつｙ１が負の値であることに応じて、第２位置４２が含まれる象限として、ｘ軸における正の座標およびｙ軸における負の座標を有する第４象限を特定する。外縁部分特定部１１４は、特定された第４象限に含まれる第４外縁部分８４を、第２位置４２に対応する外縁部分として特定する。
【０２２４】
図３８は、実施形態４に係る判定テーブル８０１の一例を示す図である。本実施形態では、図３８に示す判定テーブル８０１が、ゲーム情報１３２の一部として、記憶部１２０に予め格納されている。判定テーブル８０１は、第２位置４２が六角形領域８０に含まれるか否かを判定するために、制御部１１０によって参照されるテーブルである。判定部１１５は、象限ＩＤと、数式と、判定条件とを、互いに関連付けて格納している。
【０２２５】
象限ＩＤは、座標系を構成する４つの異なる象限のうちいずれかを識別するための識別子である。判定テーブル８０１には、４つの異なる象限ＩＤ１〜ＩＤ４が格納されている。象限ＩＤ１は、座標系を構成する第１象限を識別するための識別子であり、その値は１である。象限ＩＤ２は、座標系を構成する第２象限を識別するための識別子であり、その値は２である。象限ＩＤ３は、座標系を構成する第３象限を識別するための識別子であり、その値は３である。象限ＩＤ４は、座標系を構成する第４象限を識別するための識別子であり、その値は４である。
【０２２６】
判定テーブル８０１は、象限ＩＤ１に数式８１１および判定条件８２１を関連付けて格納している。数式８１１は、六角形領域８０のうち第１外縁部分８１を規定する数式である。数式８１１は、第２位置４２が第１象限に含まれる場合のｙｔｈを算出するために用いられる。数式８１１は、詳細には、次の式（２５）である。
【０２２７】
【数２５】
2019177001.tif 000027
判定条件８２１は、第１象限において第２位置４２が六角形領域８０に含まれない場合に成立する条件である。判定条件８２１は、詳細には、「ｙ１＞ｙｔｈ」である。これは、ｙ１がｙｔｈを上回ることである。判定部１１５は、第２位置４２が第１象限に含まれ、かつ、判定条件８２１が成立する場合、第２位置４２が六角形領域８０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを上回る場合、第２位置４２が六角形領域８０に含まれないと判定し、ｙ１がｙｔｈ以下である場合、第２位置４２が六角形領域８０に含まれると判定する。
【０２２８】
判定テーブル８０１は、象限ＩＤ２に数式８１２および判定条件８２２を関連付けて格納している。数式８１２は、六角形領域８０のうち第２外縁部分８２を規定する数式である。数式８１２は、第２位置４２が第２象限に含まれる場合のｙｔｈを算出するために用いられる。数式８１２は、詳細には、次の式（２６）である。
【０２２９】
【数２６】
2019177001.tif 000028
判定条件８２２は、第２象限において第２位置４２が六角形領域８０に含まれない場合に成立する条件である。判定条件８２２は、詳細には、「ｙ１＞ｙｔｈ」である。判定部１１５は、第２位置４２が第２象限に含まれ、かつ、判定条件８２２が成立する場合、第２位置４２が六角形領域８０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを上回る場合、第２位置４２が六角形領域８０に含まれないと判定し、ｙ１がｙｔｈ以下である場合、第２位置４２が六角形領域８０に含まれると判定する。
【０２３０】
判定テーブル８０１は、象限ＩＤ３に数式８１３および判定条件８２３を関連付けて格納している。数式８１３は、六角形領域８０のうち第３外縁部分８３を規定する数式である。数式８１３は、第２位置４２が第３象限に含まれる場合のｙｔｈを算出するために用いられる。数式８１３は、詳細には、次の式（２７）である。
【０２３１】
【数２７】
2019177001.tif 000029
判定条件８２３は、第３象限において第２位置４２が六角形領域８０に含まれない場合に成立する条件である。判定条件８２３は、詳細には、「ｙ１＜ｙｔｈ」である。これは、ｙ１がｙｔｈを下回ることである。判定部１１５は、第２位置４２が第３象限に含まれ、かつ、判定条件８２３が成立する場合、第２位置４２が六角形領域８０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを下回る場合、第２位置４２が六角形領域８０に含まれないと判定し、ｙ１がｙｔｈ以上である場合、第２位置４２が六角形領域８０に含まれると判定する。
【０２３２】
判定テーブル８０１は、象限ＩＤ４に数式８１４および判定条件８２４を関連付けて格納している。数式８１４は、六角形領域８０のうち第４外縁部分８４の外周を規定する数式である。数式８１４は、第２位置４２が第４象限に含まれる場合のｙｔｈを算出するために用いられる。数式８１４は、詳細には、次の式（２８）である。
【０２３３】
【数２８】
2019177001.tif 000030
判定条件８２４は、第４象限において第２位置４２が六角形領域８０に含まれない場合に成立する条件である。判定条件８２４は、詳細には、「ｙ１＜ｙｔｈ」である。これは、ｙ１がｙｔｈを下回ることである。判定部１１５は、第２位置４２が第４象限に含まれ、かつ、判定条件８２４が成立する場合、第２位置４２が六角形領域８０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを下回る場合、第２位置４２が六角形領域８０に含まれないと判定し、ｙ１がｙｔｈ以上である場合、第２位置４２が六角形領域８０に含まれると判定する。
【０２３４】
ステップＳ４７において、判定部１１５は、第２位置４２と、特定された第４外縁部分８４との位置関係を判定する。この判定のために、判定部１１５は、判定テーブル８０１を参照することによって、特定された第４外縁部分８４を規定する数式を特定する。詳細には、判定部１１５は、特定された第４象限を識別する象限ＩＤ４に関連付けて判定テーブル８０１に格納される数式８１４を特定する。判定部１１５は、特定された数式８１４に第２位置４２のｘ１を代入することによって、ｙｔｈを算出する。図３７の例では、判定部１１５は、第２位置４２のｘ１（＝１００）を数式８１４のｘ項に代入することによって、ｙｔｈとして「０」を算出する。
【０２３５】
判定部１１５は、第２位置４２のｙ１と、算出されたｙｔｈとを比較することによって、第２位置４２と六角形領域８０との位置関係を判定する。判定部１１５は、まず、特定された第４象限を識別する象限ＩＤ４に関連付けて判定テーブル８０１に格納される判定条件８２４（ｙ１＜ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件８２４を満たすか否かを判定する。図３７の例では、ｙ１＝−４０であり、ｙｔｈ＝０であるため、ｙ１＜ｙｔｈである。したがって、判定部１１５は、ｙ１およびｙｔｈが判定条件８２４を満たすと判定する。判定部１１５は、この判定結果に基づいて、第２位置４２が六角形領域８０に含まれないと判定する。実際、図３７に示すように第２位置４２は六角形領域８０に含まれないため、判定部１１５は、第２位置４２が六角形領域８０に含まれないことを正しく判定している。
【０２３６】
ステップＳ４８において、ゲーム実行部１１６は、判定部１１５による判定結果に応じたゲーム処理を実行する。ゲーム実行部１１６は、例えば、第１位置４１から第２位置４２に向かう方向４３（第１方向）を算出する。ゲーム実行部１１６は、例えば、ゲーム画面３１３において方向４３と平行であり、かつキャラクタ３１を起点とする方向３２（第２方向）に沿って、キャラクタ３１を移動させるゲーム処理を、実行する。より詳細には、ゲーム実行部１１６は、第２位置４２が六角形領域８０に含まれないと判定されたことに応じて、ゲーム画面３１３においてキャラクタ３１を走らせる第１ゲーム処理を実行する。
【０２３７】
図３９は、実施形態４に係るゲーム画面３１４を示す図である。表示制御部１１７は、判定結果に応じたゲーム処理が実行された結果、図３９に示すゲーム画面３１４を生成し、表示部１５２に表示する。ゲーム画面３１４では、キャラクタ３１は、方向３２に沿って、言い換えれば、ゲーム画面３１４の右斜め下側に向かって真っ直ぐに走っている。
【０２３８】
図３９の例では、表示制御部１１７は、第１位置４１を中心とする弾性体４４をゲーム画面３１４に表示する。表示制御部１１７は、ゲーム画面３１４において第１位置４１から第２位置４２に向かって、弾性体４４の一部を伸ばすように、弾性体４４を弾性変形させる。ゲーム画面３１４において弾性体４４が伸びる方向は、キャラクタ３１が移動する方向３２と平行である。ユーザは、弾性変形された弾性体４４を視認することによって、ゲーム画面３１４においてキャラクタ３１が移動する方向３２を直感的に把握することができる。
【０２３９】
図４０は、実施形態４に係るゲーム画面３１５を示す図である。図４０の例では、ユーザは、キャラクタ３１をゲーム画面３１５の左斜め下に向かって移動させるために、ゲーム画面３１５の左斜め下に向かうスライド操作をタッチスクリーン１５に対して入力する。領域規定部１１３は、第１位置４１を中心に含む六角形領域８０を規定する。
【０２４０】
図４１は、実施形態４に係る六角形領域８０の詳細を示す図である。図４１に示す六角形領域８０は、図４０に示す六角形領域８０に対応している。図４１では、第２位置４２は、六角形領域８０に含まれない。図４１では、ｘ１＝−６０であり、かつ、ｙ１＝−４０である。
【０２４１】
外縁部分特定部１１４は、座標系を構成する４つの異なる象限のうち第２位置４２が含まれる象限を特定する。図４１の例では、外縁部分特定部１１４は、ｘ１が負の値であり、かつｙ１が負の値であることに応じて、第３象限を、第２位置４２が含まれる象限として特定する。外縁部分特定部１１４は、特定された第３象限に含まれる第３外縁部分８３を、第２位置４２に対応する外縁部分として特定する。
【０２４２】
判定部１１５は、判定テーブル８０１を参照することによって、特定された第３外縁部分８３を規定する数式を特定する。詳細には、判定部１１５は、特定された第３象限を識別する象限ＩＤ３に関連付けて判定テーブル８０１に格納される数式８１３を特定する。判定部１１５は、特定された数式８１３に第２位置４２のｘ座標（ｘ１）を代入することによって、閾値（ｙｔｈ）を算出する。図４１の例では、判定部１１５は、第２位置４２のｘ１（＝−６０）を数式８１３のｘ項に代入することによって、ｙｔｈとして「−８０」を算出する。
【０２４３】
判定部１１５は、第２位置４２のｙ１と、算出されたｙｔｈとを比較することによって、第２位置４２が六角形領域８０に含まれるか否かを判定する。判定部１１５は、まず、特定された第３象限を識別する象限ＩＤ３に関連付けて判定テーブル８０１に格納される判定条件８２３（ｙ１＜ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件８２３を満たすか否かを判定する。図３０の例では、ｙ１＝−４０であり、ｙｔｈ＝−８０であるため、ｙ１≧ｙｔｈである。したがって判定部１１５は、ｙ１およびｙｔｈが判定条件８２３を満たさないと判定する。判定部１１５は、この判定結果に応じて、第２位置４２が六角形領域８０に含まれると判定する。実際、図４１に示すように第２位置４２は六角形領域８０に含まれるため、判定部１１５は、第２位置４２が六角形領域８０に含まれることを正しく判定している。
【０２４４】
ゲーム実行部１１６は、判定部１１５による判定結果に応じたゲーム処理を実行する。ゲーム実行部１１６は、例えば、ゲーム画面３１５においてスライド操作の方向４３と平行であり、かつキャラクタ３１を起点とする方向３２に沿って、キャラクタ３１を移動させるゲーム処理を、実行する。より詳細には、ゲーム実行部１１６は、第２位置４２が六角形領域８０に含まれると判定されたことに応じて、ゲーム画面３１５においてキャラクタ３１を歩かせる第２ゲーム処理を実行する。
【０２４５】
図４２は、実施形態４に係るゲーム画面３１６を示す図である。表示制御部１１７は、判定結果に応じたゲーム処理が実行された結果、図４２に示すゲーム画面３１６を生成し、表示部１５２に表示する。ゲーム画面３１６では、キャラクタ３１は、スライド操作の方向４３と平行な方向３２に沿って、言い換えれば、ゲーム画面３１６の左斜め下側に向かって、真っ直ぐに歩いている。
【０２４６】
図４２の例では、表示制御部１１７は、第１位置４１を中心とする弾性体４４をゲーム画面３１６に表示する。表示制御部１１７は、ゲーム画面３１６において第１位置４１から第２位置４２に向かって、弾性体４４の一部を伸ばすように、弾性体４４を弾性変形させる。ゲーム画面３１６において弾性体４４が伸びる方向は、キャラクタ３１が移動する方向３２と平行である。ユーザは、弾性変形された弾性体４４を視認することによって、ゲーム画面３１６においてキャラクタ３１が移動する方向３２を直感的に把握することができる。
【０２４７】
以上のように、判定部１１５は、第１位置４１と第２位置４２との距離を用いることなく、第２位置４２が六角形領域８０に含まれるか否かを正確に判定することができる。これにより、第１位置４１と第２位置４２の距離を算出するための処理が不要になるため、より低い処理負荷で第２位置４２が六角形領域８０に含まれるか否かを判定することができる。
【０２４８】
図３８および図４２に示すように、ユーザは、スライド操作の距離を適宜異ならせることによって、ゲーム画面３１４においてキャラクタ３１を走らせたり、ゲーム画面３１６においてキャラクタ３１を歩かせたりすることができる。このように、ゲームプログラム１３１は、ユーザによるキャラクタ３１の操作性を高めることができる。
【０２４９】
判定部１１５は、第２位置４２が第１象限に含まれる場合も、第２位置４２が六角形領域８０に含まれるか否かを判定することができる。例えば、ｘ１＝７０、ｙ１＝３０であるとする。外縁部分特定部１１４は、ｘ１が正の値であり、かつｙ１が正の値であることに応じて、第１象限を、第２位置４２が含まれる象限として特定する。外縁部分特定部１１４は、特定された第１象限に含まれる第１外縁部分８１を、第２位置４２に対応する外縁部分として特定する。判定部１１５は、判定テーブル８０１を参照することによって、特定された第１外縁部分８１を規定する数式８１１を特定する。判定部１１５は、第２位置４２のｘ１（＝７０）を数式８１１のｘ項に代入することによって、ｙｔｈとして「６０」を算出する。
【０２５０】
判定部１１５は、象限ＩＤ１に関連付けて判定テーブル８０１に格納される判定条件８２１（ｙ１＞ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件８２１を満たすか否かを判定する。本例では、ｙ１＝３０であり、ｙｔｈ＝６０であるため、ｙ１≦ｙｔｈである。したがって、判定部１１５は、ｙ１およびｙｔｈが判定条件８２１を満たさないと判定する。判定部１１５は、この判定結果に基づいて、第２位置４２が六角形領域８０に含まれると判定する。
【０２５１】
判定部１１５は、第２位置４２が第２象限に含まれる場合も、第２位置４２が六角形領域８０に含まれるか否かを判定することができる。例えば、ｘ１＝−８０、ｙ１＝８０であるとする。外縁部分特定部１１４は、ｘ１が負の値であり、かつｙ１が正の値であることに応じて、第２象限を、第２位置４２が含まれる象限として特定する。外縁部分特定部１１４は、特定された第２象限に含まれる第２外縁部分８２を、第２位置４２に対応する外縁部分として特定する。判定部１１５は、判定テーブル８０１を参照することによって、特定された第２外縁部分８２を規定する数式８１２を特定する。判定部１１５は、第２位置４２のｘ１（＝−８０）を数式８１２のｘ項に代入することによって、ｙｔｈとして「４０」を算出する。
【０２５２】
判定部１１５は、象限ＩＤ２に関連付けて判定テーブル８０１に格納される判定条件８２２（ｙ１＞ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件８２２を満たすか否かを判定する。本例では、ｙ１＝８０であり、ｙｔｈ＝４０であるため、ｙ１＞ｙｔｈである。したがって、判定部１１５は、ｙ１およびｙｔｈが判定条件８２２を満たすと判定する。判定部１１５は、この判定結果に基づいて、第２位置４２が六角形領域８０に含まれないと判定する。
【０２５３】
図４３は、実施形態４に係る判定テーブル８０２の一例を示す図である。本実施形態では、図４３に示す判定テーブル８０２が、ゲーム情報１３２の一部として、記憶部１２０に予め格納されていてもよい。判定テーブル８０２は、第２位置４２が六角形領域８０に含まれるか否かを判定するために、制御部１１０によって参照されるテーブルである。判定部１１５は、象限ＩＤと、数式と、判定条件とを、互いに関連付けて格納している。判定テーブル８０２には、４つの異なる象限ＩＤ１〜ＩＤ４が格納されている。
【０２５４】
判定テーブル８０２は、象限ＩＤ１に数式８３１および判定条件８４１を関連付けて格納している。数式８３１は、六角形領域８０のうち第１外縁部分８１を規定する数式である。数式８３１は、第２位置４２が第１象限に含まれる場合のｘｔｈを算出するために用いられる。数式８３１は、詳細には、次の式（２９）である。
【０２５５】
【数２９】
2019177001.tif 000031
判定条件８４１は、第１象限において第２位置４２が六角形領域８０に含まれない場合に成立する条件である。判定条件８４１は、詳細には、「ｘ１＞ｘｔｈ」である。これは、ｘ１がｘｔｈを上回ることである。判定部１１５は、第２位置４２が第１象限に含まれ、かつ、判定条件８４１が成立する場合、第２位置４２が六角形領域８０に含まれないと判定する。言い換えれば、判定部１１５は、ｘ１がｘｔｈを上回る場合、第２位置４２が六角形領域８０に含まれないと判定し、ｘ１がｘｔｈ以下である場合、第２位置４２が六角形領域８０に含まれると判定する。
【０２５６】
判定テーブル８０２は、象限ＩＤ２に数式８３２および判定条件８４２を関連付けて格納している。数式８３２は、六角形領域８０のうち第２外縁部分８２を規定する数式である。数式８３２は、第２位置４２が第２象限に含まれる場合のｘｔｈを算出するために用いられる。数式８３２は、詳細には、次の式（３０）である。
【０２５７】
【数３０】
2019177001.tif 000032
判定条件８４２は、第２象限において第２位置４２が六角形領域８０に含まれない場合に成立する条件である。判定条件８４２は、詳細には、「ｘ１＜ｘｔｈ」である。これは、ｘ１がｘｔｈを下回ることである。判定部１１５は、第２位置４２が第２象限に含まれ、かつ、判定条件８４２が成立する場合、第２位置４２が六角形領域８０に含まれないと判定する。言い換えれば、判定部１１５は、ｘ１がｘｔｈを下回る場合、第２位置４２が六角形領域８０に含まれないと判定し、ｘ１がｘｔｈ以上である場合、第２位置４２が六角形領域８０に含まれると判定する。
【０２５８】
判定テーブル８０２は、象限ＩＤ３に数式８３３および判定条件８４３を関連付けて格納している。数式８３３は、六角形領域８０のうち第３外縁部分８３を規定する数式である。数式８３３は、第２位置４２が第３象限に含まれる場合のｘｔｈを算出するために用いられる。数式８３３は、詳細には、次の式（３１）である。
【０２５９】
【数３１】
2019177001.tif 000033
判定条件８４３は、第３象限において第２位置４２が六角形領域８０に含まれない場合に成立する条件である。判定条件８４３は、詳細には、「ｘ１＜ｘｔｈ」である。これは、ｘ１がｘｔｈを下回ることである。判定部１１５は、第２位置４２が第３象限に含まれ、かつ、判定条件８４３が成立する場合、第２位置４２が六角形領域８０に含まれないと判定する。判定部１１５は、ｘ１がｘｔｈを上回る場合、第２位置４２が六角形領域８０に含まれないと判定し、ｘ１がｘｔｈ以下である場合、第２位置４２が六角形領域８０に含まれると判定する。
【０２６０】
判定テーブル８０２は、象限ＩＤ４に数式８３４および判定条件８４４を関連付けて格納している。数式８３４は、六角形領域８０のうち第４外縁部分８４の外周を規定する数式である。数式８３４は、第２位置４２が第４象限に含まれる場合のｘｔｈを算出するために用いられる。数式８３４は、詳細には、次の式（３２）である。
【０２６１】
【数３２】
2019177001.tif 000034
判定条件８４４は、第４象限において第２位置４２が六角形領域８０に含まれない場合に成立する条件である。判定条件８４４は、詳細には、「ｘ１＞ｘｔｈ」である。これは、ｘ１がｘｔｈを上回ることである。判定部１１５は、第２位置４２が第４象限に含まれ、かつ、判定条件８４４が成立する場合、第２位置４２が六角形領域８０に含まれないと判定する。言い換えれば、判定部１１５は、ｘ１がｘｔｈを上回る場合、第２位置４２が六角形領域８０に含まれないと判定し、ｘ１がｘｔｈ以下である場合、第２位置４２が六角形領域８０に含まれると判定する。
【０２６２】
判定部１１５は、例えば、図３７に示すように第２位置４２が六角形領域８０に含まれない場合、象限ＩＤ４に関連付けて判定テーブル８０２に格納される数式８３４を特定する。判定部１１５は、特定された数式８３４のｙ項に第２位置４２のｙ１（＝−４０）を代入することによって、ｘｔｈとして「８０」を算出する。判定部１１５は、象限ＩＤ４に関連付けて判定テーブル８０２に格納される判定条件８４４（ｘ１＜ｘｔｈ）を特定する。図３７の例では、ｘ１＝１００であり、ｘｔｈ＝８０であるため、ｘ１＞ｘｔｈであり、これは判定条件８４１を満たす。判定部１１５は、ｘ１およびｘｔｈが判定条件８４１を満たすことに応じて、第２位置４２が六角形領域８０に含まれないと判定する。実際、図３７に示すように第２位置４２は六角形領域８０に含まれないため、判定部１１５は、第２位置４２が六角形領域８０に含まれないことを正しく判定している。
【０２６３】
判定部１１５は、例えば、図４１に示すように第２位置４２が第３象限に含まれる場合、象限ＩＤ３に関連付けて判定テーブル８０２に格納される数式８３３を特定する。判定部１１５は、特定された数式８３３のｙ項に第２位置４２のｙ１（＝−４０）を代入することによって、ｘｔｈとして「−８０」を算出する。判定部１１５は、象限ＩＤ３に関連付けて判定テーブル８０２に格納される判定条件８４３（ｘ１＜ｘｔｈ）を特定する。図４１の例では、ｘ１＝−６０であり、ｘｔｈ＝−８０であるため、ｘ１≧ｘｔｈであり、これは判定条件８４３を満たさない。判定部１１５は、ｘ１およびｘｔｈが判定条件８４３を満たさないことに応じて、第２位置４２が六角形領域８０に含まれると判定する。実際、図４１に示すように第２位置４２は六角形領域８０に含まれるため、判定部１１５は、第２位置４２が六角形領域８０に含まれることを正しく判定している。
【０２６４】
〔実施形態５〕
図４４は、実施形態５において、ユーザ端末１００が、ゲームプログラム１３１に基づいて実行する処理の流れを示すフローチャートである。図４５は、実施形態５に係るゲーム画面３１７を示す図である。
【０２６５】
ステップＳ５１において、表示制御部１１７は、例えば図４５に示すゲーム画面３１７を表示部１５２に表示する。ゲーム画面３１７は、ゲームプログラム１３１に基づくゲームに登場する一場面を表す。ゲーム画面３１７の中央に、キャラクタ３１が配置される。キャラクタ３１は、ゲームオブジェクトの一種であり、タッチスクリーン１５に対するユーザの操作に応じて、ゲーム画面３１７内を移動することができる。ゲーム画面３１７には、ゲームに関する背景画像も含まれる。
【０２６６】
図４６は、実施形態５に係るゲーム画面３１７を示す図である。ユーザは、ゲーム中にキャラクタ３１を移動させるために、タッチスクリーン１５に対して第１操作を入力する。第１操作は、例えば、タッチスクリーン１５における第１接触点から第２接触点までの移動操作である。移動操作は、例えば、タッチスクリーン１５に対するスライド操作である。第１操作は、タッチスクリーン１５における第１接触点と第２接触点とをユーザが続けてタップする操作でもよい。
【０２６７】
図４６の例では、ユーザは、キャラクタ３１をゲーム画面３１７の右斜め下側に移動させることを目的として、ゲーム画面３１７の右斜め下側に向かうスライド操作を入力するように、タッチスクリーン１５において指を滑らせる。ステップＳ５２において、操作受付部１１１は、タッチスクリーン１５に対する、互いに関連付けられる第１接触点および第２接触点を検出する。図４６において、ユーザのスライド操作の方向４３は、第１接触点に関連付けられる第１位置４１から第２接触点に関連付けられる第２位置４２までの、ゲーム画面３１７の右斜め下側に向かう方向である。
【０２６８】
ステップＳ５３において、位置特定部１１２は、第１接触点に関連付けられる第１位置４１と、第２接触点に関連付けられる第２位置４２とを特定する。ステップＳ５４において、領域規定部１１３は、第１位置４１を原点とする座標系を規定する。座標系は、ゲーム画面３１７の横方向に平行なｘ軸と、ゲーム画面３１７の縦方向に平行なｙ軸とを含む。ｙ軸は、ｘ軸に直交している。ステップＳ５５において、領域規定部１１３は、座標系において、第１位置４１を中心に含む菱形領域９０を規定する。
【０２６９】
菱形領域９０は、第２位置４２が菱形領域９０に含まれるか否かを判定するために用いられる一種の判定領域である。領域規定部１１３は、タッチスクリーン１５の画面サイズ（言い換えれば、ゲーム画面３１７のサイズ）に応じた大きさの菱形領域９０を、規定することができる。領域規定部１１３は、ゲームの実行中における如何なる時点で規定された場合にも常に同一の大きさである菱形領域９０を、規定することができる。領域規定部１１３は、あるいは、スライド操作が受け付けられた時点でのゲームの進行状況に応じて異なる大きさの菱形領域９０を、規定することもできる。領域規定部１１３は、さらに、ユーザの指の大きさに応じた大きさの菱形領域９０を規定することもできる。
【０２７０】
図４６では、座標系（ｘ軸，ｙ軸）および菱形領域９０が含まれるゲーム画面３１７を図示している。これは説明の便宜のためであり、ゲーム画面３１７に座標系および菱形領域９０が必ず表示されることを意図するものではない。言い換えれば、座標系および菱形領域９０を規定することは、ゲーム画面３１７に座標系および菱形領域９０を表示することと必ずしも同義ではない。表示制御部１１７は、ゲーム画面３１７に座標系および菱形領域９０を表示してもよいし、しなくてもよい。言い換えれば、表示制御部１１７は、ゲーム画面３１７に表示されない座標系および菱形領域９０を規定することができる。表示制御部１１７がゲーム画面３１７に座標系および菱形領域９０を表示しない場合、座標系および菱形領域９０がユーザに視認されないので、ユーザをゲームにより集中させることができる。
【０２７１】
図４７は、実施形態５に係る菱形領域９０の詳細を示す図である。図４７に示す菱形領域９０は、図４６に示す菱形領域９０に対応している。図４７では、菱形領域９０は、縦方向の幅＝１００かつ横方向の幅＝５０の菱形形状を有する領域である。菱形領域９０の外縁は、第１外縁部分９１、第２外縁部分９２、第３外縁部分９３、および第４外縁部分９４を含む複数の外縁部分によって構成される。第１外縁部分９１は、菱形領域９０の外縁のうち座標系の第１象限に含まれる部分である。第２外縁部分９２は、菱形領域９０の外縁のうち座標系の第２象限に含まれる部分である。第３外縁部分９３は、菱形領域９０の外縁のうち座標系の第３象限に含まれる部分である。第４外縁部分９４は、菱形領域９０の外縁のうち座標系の第４象限に含まれる部分である。図４７では、菱形領域９０の内部の中心に、第１位置４１が位置する。第２位置４２は、菱形領域９０に含まれる。
【０２７２】
本実施形態では、第２位置４２の座標を（ｘ１，ｙ１）として表記する。ｘ１は、第２位置４２のｘ座標であり、ｙ１は、第２位置４２のｙ座標である。図４７では、ｘ１＝８０であり、かつ、ｙ１＝３０である。第１位置４１は座標系の原点であるため、第１位置４１のｘ座標およびｙ座標は、いずれも「０」である。
【０２７３】
ステップＳ５６において、外縁部分特定部１１４は、第１位置４１と第２位置４２との相対的な位置関係に基づいて、第１外縁部分９１〜第４外縁部分９４のうち、第２位置に対応する外縁部分を特定する。外縁部分特定部１１４は、まず、座標系を構成する４つの異なる象限のうち第２位置４２が含まれる象限を特定する。図４７の例では、外縁部分特定部１１４は、ｘ１が正の値でありかつｙ１が正の値であることに応じて、第２位置４２が含まれる象限として、ｘ軸における正の座標およびｙ軸における正の座標を有する第１象限を特定する。外縁部分特定部１１４は、特定された第１象限に含まれる第１外縁部分９１を、第２位置４２に対応する外縁部分として特定する。
【０２７４】
図４８は、実施形態５に係る判定テーブル９０１の一例を示す図である。本実施形態では、図４８に示す判定テーブル９０１が、ゲーム情報１３２の一部として、記憶部１２０に予め格納されている。判定テーブル９０１は、第２位置４２が菱形領域９０に含まれるか否かを判定するために、制御部１１０によって参照されるテーブルである。判定部１１５は、象限ＩＤと、数式と、判定条件とを、互いに関連付けて格納している。
【０２７５】
象限ＩＤは、座標系を構成する４つの異なる象限のうちいずれかを識別するための識別子である。判定テーブル９０１には、４つの異なる象限ＩＤ１〜ＩＤ４が格納されている。象限ＩＤ１は、座標系を構成する第１象限を識別するための識別子であり、その値は１である。象限ＩＤ２は、座標系を構成する第２象限を識別するための識別子であり、その値は２である。象限ＩＤ３は、座標系を構成する第３象限を識別するための識別子であり、その値は３である。象限ＩＤ４は、座標系を構成する第４象限を識別するための識別子であり、その値は４である。
【０２７６】
判定テーブル９０１は、象限ＩＤ１に数式９１１および判定条件９２１を関連付けて格納している。数式９１１は、菱形領域９０の外縁のうち第１外縁部分９１を規定する数式である。数式９１１は、第２位置４２が第１象限に含まれる場合のｙｔｈを算出するために用いられる。数式９１１は、詳細には、次の式（３３）である。
【０２７７】
【数３３】
2019177001.tif 000035
判定条件９２１は、第１象限において第２位置４２が菱形領域９０に含まれない場合に成立する条件である。判定条件９２１は、詳細には、「ｙ１＞ｙｔｈ」である。これは、ｙ１がｙｔｈを上回ることである。判定部１１５は、第２位置４２が第１象限に含まれ、かつ、判定条件９２１が成立する場合、第２位置４２が菱形領域９０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを上回る場合、第２位置４２が菱形領域９０に含まれないと判定し、ｙ１がｙｔｈ以下である場合、第２位置４２が菱形領域９０に含まれると判定する。
【０２７８】
判定テーブル９０１は、象限ＩＤ２に数式９１２および判定条件９２２を関連付けて格納している。数式９１２は、菱形領域９０の外縁のうち第２外縁部分９２を規定する数式である。数式９１２は、第２位置４２が第２象限に含まれる場合のｙｔｈを算出するために用いられる。数式９１２は、詳細には、次の式（３４）である。
【０２７９】
【数３４】
2019177001.tif 000036
判定条件９２２は、第２象限において第２位置４２が菱形領域９０に含まれない場合に成立する条件である。判定条件９２２は、詳細には、「ｙ１＞ｙｔｈ」である。これは、ｙ１がｙｔｈを上回ることである。判定部１１５は、第２位置４２が第２象限に含まれ、かつ、判定条件９２２が成立する場合、第２位置４２が菱形領域９０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを上回る場合、第２位置４２が菱形領域９０に含まれないと判定し、ｙ１がｙｔｈ以下である場合、第２位置４２が菱形領域９０に含まれると判定する。
【０２８０】
判定テーブル９０１は、象限ＩＤ３に数式９１３および判定条件９２３を関連付けて格納している。数式９１３は、菱形領域９０の外縁のうち第３外縁部分９３を規定する数式である。数式９１３は、第２位置４２が第３象限に含まれる場合のｙｔｈを算出するために用いられる。数式９１３は、詳細には、次の式（３５）である。
【０２８１】
【数３５】
2019177001.tif 000037
判定条件９２３は、第３象限において第２位置４２が菱形領域９０に含まれない場合に成立する条件である。判定条件９２３は、詳細には、「ｙ１＜ｙｔｈ」である。これは、ｙ１がｙｔｈを下回ることである。判定部１１５は、第２位置４２が第３象限に含まれ、かつ、判定条件９２３が成立する場合、第２位置４２が菱形領域９０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを下回る場合、第２位置４２が菱形領域９０に含まれないと判定し、ｙ１がｙｔｈ以上である場合、第２位置４２が菱形領域９０に含まれると判定する。
【０２８２】
判定テーブル９０１は、象限ＩＤ４に数式９１４および判定条件９２４を関連付けて格納している。数式９１４は、菱形領域９０の外縁のうち第４外縁部分９４の外周を規定する数式である。数式９１４は、第２位置４２が第４象限に含まれる場合のｙｔｈを算出するために用いられる。数式９１４は、詳細には、次の式（３６）である。
【０２８３】
【数３６】
2019177001.tif 000038
判定条件９２４は、第４象限において第２位置４２が菱形領域９０に含まれない場合に成立する条件である。判定条件９２４は、詳細には、「ｙ１＜ｙｔｈ」である。これは、ｙ１がｙｔｈを下回ることである。判定部１１５は、第２位置４２が第４象限に含まれ、かつ、判定条件９２４が成立する場合、第２位置４２が菱形領域９０に含まれないと判定する。言い換えれば、判定部１１５は、ｙ１がｙｔｈを下回る場合、第２位置４２が菱形領域９０に含まれないと判定し、ｙ１がｙｔｈ以上である場合、第２位置４２が菱形領域９０に含まれると判定する。
【０２８４】
ステップＳ５７において、判定部１１５は、第２位置４２と、特定された第１外縁部分９１との位置関係を判定する。この判定のために、判定部１１５は、判定テーブル９０１を参照することによって、特定された第１外縁部分９１を規定する数式を特定する。詳細には、判定部１１５は、特定された第１象限を識別する象限ＩＤ１に関連付けて判定テーブル９０１に格納される数式９１１を特定する。判定部１１５は、特定された数式９１１に第２位置４２のｘ１を代入することによって、ｙｔｈを算出する。図４７の例では、判定部１１５は、第２位置４２のｘ１（＝８０）を数式９１１のｘ項に代入することによって、ｙｔｈとして「−４０」を算出する。
【０２８５】
判定部１１５は、第２位置４２のｙ１と、算出されたｙｔｈとを比較することによって、第２位置４２と菱形領域９０との位置関係を判定する。判定部１１５は、まず、特定された第１象限を識別する象限ＩＤ１に関連付けて判定テーブル９０１に格納される判定条件９２１（ｙ１＞ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件９２１を満たすか否かを判定する。図４７の例では、ｙ１＝３０であり、ｙｔｈ＝−４０であるため、ｙ１＞ｙｔｈである。したがって、判定部１１５は、ｙ１およびｙｔｈが判定条件９２１を満たすと判定する。判定部１１５は、この判定結果に基づいて、第２位置４２が菱形領域９０に含まれないと判定する。実際、図４７に示すように第２位置４２は菱形領域９０に含まれないため、判定部１１５は、第２位置４２が菱形領域９０に含まれないことを正しく判定している。
【０２８６】
ステップＳ５８において、ゲーム実行部１１６は、判定部１１５による判定結果に応じたゲーム処理を実行する。ゲーム実行部１１６は、例えば、第１位置４１から第２位置４２に向かう方向４３（第１方向）を算出する。ゲーム実行部１１６は、例えば、ゲーム画面３１７において方向４３と平行であり、かつキャラクタ３１を起点とする方向３２（第２方向）に沿って、キャラクタ３１を移動させるゲーム処理を、実行する。より詳細には、ゲーム実行部１１６は、第２位置４２が菱形領域９０に含まれないと判定されたことに応じて、ゲーム画面３１７においてキャラクタ３１を走らせる第１ゲーム処理を実行する。
【０２８７】
図４９は、実施形態５に係るゲーム画面３１８を示す図である。表示制御部１１７は、判定結果に応じたゲーム処理が実行された結果、図４９に示すゲーム画面３１８を生成し、表示部１５２に表示する。ゲーム画面３１８では、キャラクタ３１は、方向３２に沿って、言い換えれば、ゲーム画面３１８の右斜め上側に向かって真っ直ぐに走っている。
【０２８８】
図４９の例では、表示制御部１１７は、第１位置４１を中心とする弾性体４４をゲーム画面３１８に表示する。表示制御部１１７は、ゲーム画面３１８において第１位置４１から第２位置４２に向かって、弾性体４４の一部を伸ばすように、弾性体４４を弾性変形させる。ゲーム画面３１８において弾性体４４が伸びる方向は、キャラクタ３１が移動する方向３２と平行である。ユーザは、弾性変形された弾性体４４を視認することによって、ゲーム画面３１８においてキャラクタ３１が移動する方向３２を直感的に把握することができる。
【０２８９】
図５０は、実施形態５に係るゲーム画面３１９を示す図である。図５０の例では、ユーザは、キャラクタ３１をゲーム画面３１９の左斜め上に向かって移動させるために、ゲーム画面３１９の左斜め上側に向かうスライド操作をタッチスクリーン１５に対して入力る。領域規定部１１３は、第１位置４１を中心に含む菱形領域９０を規定する。
【０２９０】
図５１は、実施形態５に係る菱形領域９０の詳細を示す図である。図５１に示す菱形領域９０は、図５０に示す菱形領域９０に対応している。図５１では、第２位置４２は、菱形領域９０に含まれない。図５１では、ｘ１＝−３０であり、かつ、ｙ１＝２０である。
【０２９１】
外縁部分特定部１１４は、座標系を構成する４つの異なる象限のうち第２位置４２が含まれる象限を特定する。図５１の例では、外縁部分特定部１１４は、ｘ１が負の値であり、かつｙ１が正の値であることに応じて、第２象限を、第２位置４２が含まれる象限として特定する。外縁部分特定部１１４は、特定された第２象限に含まれる第２外縁部分９２を、第２位置４２に対応する外縁部分として特定する。
【０２９２】
判定部１１５は、判定テーブル９０１を参照することによって、特定された第２外縁部分９２を規定する数式を特定する。詳細には、判定部１１５は、特定された第２象限を識別する象限ＩＤ２に関連付けて判定テーブル９０１に格納される数式９１２を特定する。判定部１１５は、特定された数式９１２に第２位置４２のｘ座標（ｘ１）を代入することによって、閾値（ｙｔｈ）を算出する。図５１の例では、判定部１１５は、第２位置４２のｘ１（＝−３０）を数式９１３のｘ項に代入することによって、ｙｔｈとして「４０」を算出する。
【０２９３】
判定部１１５は、第２位置４２のｙ１と、算出されたｙｔｈとを比較することによって、第２位置４２が菱形領域９０に含まれるか否かを判定する。判定部１１５は、まず、特定された第２象限を識別する象限ＩＤ２に関連付けて判定テーブル９０１に格納される判定条件９２２（ｙ１＞ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件９２２を満たすか否かを判定する。図５１の例では、ｙ１＝２０であり、ｙｔｈ＝４０であるため、ｙ１はｙｔｈ以下（ｙ１≦ｙｔｈ）である。したがって判定部１１５は、ｙ１およびｙｔｈが判定条件９２２を満たさないと判定する。判定部１１５は、この判定結果に応じて、第２位置４２が菱形領域９０に含まれると判定する。実際、図５１に示すように第２位置４２は菱形領域９０に含まれるため、判定部１１５は、第２位置４２が菱形領域９０に含まれることを正しく判定している。
【０２９４】
ゲーム実行部１１６は、判定部１１５による判定結果に応じたゲーム処理を実行する。ゲーム実行部１１６は、例えば、ゲーム画面３１９においてスライド操作の方向４３と平行であり、かつキャラクタ３１を起点とする方向に沿って、キャラクタ３１を移動させるゲーム処理を、実行する。より詳細には、ゲーム実行部１１６は、第２位置４２が菱形領域９０に含まれると判定されたことに応じて、ゲーム画面３１９においてキャラクタ３１を歩かせる第２ゲーム処理を実行する。
【０２９５】
図５２は、実施形態５に係るゲーム画面３２０を示す図である。表示制御部１１７は、判定結果に応じたゲーム処理が実行された結果、図５２に示すゲーム画面３２０を生成し、表示部１５２に表示する。ゲーム画面３２０では、キャラクタ３１は、スライド操作の方向４３と平行な方向３２に沿って、言い換えれば、ゲーム画面３２０の左斜め上側に向かって、真っ直ぐに歩いている。
【０２９６】
図５２の例では、表示制御部１１７は、第１位置４１を中心とする弾性体４４をゲーム画面３２０に表示する。表示制御部１１７は、ゲーム画面３２０において第１位置４１から第２位置４２に向かって、弾性体４４の一部を伸ばすように、弾性体４４を弾性変形させる。ゲーム画面３２０において弾性体４４が伸びる方向は、キャラクタ３１が移動する方向３２と平行である。ユーザは、弾性変形された弾性体４４を視認することによって、ゲーム画面３２０においてキャラクタ３１が移動する方向３２を直感的に把握することができる。
【０２９７】
以上のように、判定部１１５は、第１位置４１と第２位置４２との距離を用いることなく、第２位置４２が菱形領域９０に含まれるか否かを正確に判定することができる。これにより、第１位置４１と第２位置４２の距離を算出するための処理が不要になるため、より低い処理負荷で第２位置４２が菱形領域９０に含まれるか否かを判定することができる。
【０２９８】
図４８および図５２に示すように、ユーザは、スライド操作の距離を適宜異ならせることによって、ゲーム画面３１８においてキャラクタ３１を走らせたり、ゲーム画面３２０においてキャラクタ３１を歩かせたりすることができる。このように、ゲームプログラム１３１は、ユーザによるキャラクタ３１の操作性を高めることができる。
【０２９９】
判定部１１５は、第２位置４２が第３象限に含まれる場合も、第２位置４２が菱形領域９０に含まれるか否かを判定することができる。例えば、ｘ１＝−３０、ｙ１＝−１０であるとする。外縁部分特定部１１４は、ｘ１が負の値であり、かつｙ１が負の値であることに応じて、第３象限を、第２位置４２が含まれる象限として特定する。外縁部分特定部１１４は、特定された第３象限に含まれる第３外縁部分９３を、第２位置４２に対応する外縁部分として特定する。判定部１１５は、判定テーブル９０１を参照することによって、特定された第３外縁部分９３を規定する数式９１３を特定する。判定部１１５は、第２位置４２のｘ１（＝−３０）を数式９１３のｘ項に代入することによって、ｙｔｈとして「−４０」を算出する。
【０３００】
判定部１１５は、象限ＩＤ３に関連付けて判定テーブル９０１に格納される判定条件９２３（ｙ１＜ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件９２３を満たすか否かを判定する。本例では、ｙ１＝−１０であり、ｙｔｈ＝−３０であるため、ｙ１≧ｙｔｈである。したがって、判定部１１５は、ｙ１およびｙｔｈが判定条件９２３を満たさないと判定する。判定部１１５は、この判定結果に基づいて、第２位置４２が菱形領域９０に含まれると判定する。
【０３０１】
判定部１１５は、第２位置４２が第４象限に含まれる場合も、第２位置４２が菱形領域９０に含まれるか否かを判定することができる。例えば、ｘ１＝３０、ｙ１＝−８０であるとする。外縁部分特定部１１４は、ｘ１が正の値であり、かつｙ１が負の値であることに応じて、第４象限を、第２位置４２が含まれる象限として特定する。外縁部分特定部１１４は、特定された第４象限に含まれる第４外縁部分９４を、第２位置４２に対応する外縁部分として特定する。判定部１１５は、判定テーブル９０１を参照することによって、特定された第４外縁部分９４を規定する数式９１４を特定する。判定部１１５は、第２位置４２のｘ１（＝３０）を数式９１４のｘ項に代入することによって、ｙｔｈとして「−４０」を算出する。
【０３０２】
判定部１１５は、象限ＩＤ４に関連付けて判定テーブル９０１に格納される判定条件９２４（ｙ１＜ｙｔｈ）を特定する。判定部１１５は、ｙ１およびｙｔｈが判定条件９２４を満たすか否かを判定する。本例では、ｙ１＝−８０であり、ｙｔｈ＝−４０であるため、ｙ１＜ｙｔｈである。したがって、判定部１１５は、ｙ１およびｙｔｈが判定条件９２４を満たすと判定する。判定部１１５は、この判定結果に基づいて、第２位置４２が菱形領域９０に含まれないと判定する。
【０３０３】
図５３は、実施形態５に係る判定テーブル９０２の一例を示す図である。本実施形態では、図５３に示す判定テーブル９０２が、ゲーム情報１３２の一部として、記憶部１２０に予め格納されていてもよい。判定テーブル９０２は、第２位置４２が菱形領域９０に含まれるか否かを判定するために、制御部１１０によって参照されるテーブルである。判定部１１５は、象限ＩＤと、数式と、判定条件とを、互いに関連付けて格納している。判定テーブル９０２には、４つの異なる象限ＩＤ１〜ＩＤ４が格納されている。
【０３０４】
判定テーブル９０２は、象限ＩＤ１に数式９３１および判定条件９４１を関連付けて格納している。数式９３１は、菱形領域９０の外縁のうち第１外縁部分９１を規定する数式である。数式９３１は、第２位置４２が第１象限に含まれる場合のｘｔｈを算出するために用いられる。数式９３１は、詳細には、次の式（３７）である。
【０３０５】
【数３７】
2019177001.tif 000039
判定条件９４１は、第１象限において第２位置４２が菱形領域９０に含まれない場合に成立する条件である。判定条件９４１は、詳細には、「ｘ１＞ｘｔｈ」である。これは、ｘ１がｘｔｈを上回ることである。判定部１１５は、第２位置４２が第１象限に含まれ、かつ、判定条件９４１が成立する場合、第２位置４２が菱形領域９０に含まれないと判定する。言い換えれば、判定部１１５は、ｘ１がｘｔｈを上回る場合、第２位置４２が菱形領域９０に含まれないと判定し、ｘ１がｘｔｈ以下である場合、第２位置４２が菱形領域９０に含まれると判定する。
【０３０６】
判定テーブル９０２は、象限ＩＤ２に数式９３２および判定条件９４２を関連付けて格納している。数式９３２は、菱形領域９０の外縁のうち第２外縁部分９２を規定する数式である。数式９３２は、第２位置４２が第２象限に含まれる場合のｘｔｈを算出するために用いられる。数式９３２は、詳細には、次の式（３８）である。
【０３０７】
【数３８】
2019177001.tif 000040
判定条件９４２は、第２象限において第２位置４２が菱形領域９０に含まれない場合に成立する条件である。判定条件９４２は、詳細には、「ｘ１＜ｘｔｈ」である。これは、ｘ１がｘｔｈを下回ることである。判定部１１５は、第２位置４２が第２象限に含まれ、かつ、判定条件９４２が成立する場合、第２位置４２が菱形領域９０に含まれないと判定する。言い換えれば、判定部１１５は、ｘ１がｘｔｈを下回る場合、第２位置４２が菱形領域９０に含まれないと判定し、ｘ１がｘｔｈ以上である場合、第２位置４２が菱形領域９０に含まれると判定する。
【０３０８】
判定テーブル９０２は、象限ＩＤ３に数式９３３および判定条件９４３を関連付けて格納している。数式９３３は、菱形領域９０の外縁のうち第３外縁部分９３を規定する数式である。数式９３３は、第２位置４２が第３象限に含まれる場合のｘｔｈを算出するために用いられる。数式９３３は、詳細には、次の式（３９）である。
【０３０９】
【数３９】
2019177001.tif 000041
判定条件９４３は、第３象限において第２位置４２が菱形領域９０に含まれない場合に成立する条件である。判定条件９４３は、詳細には、「ｘ１＜ｘｔｈ」である。これは、ｘ１がｘｔｈを下回ることである。判定部１１５は、第２位置４２が第３象限に含まれ、かつ、判定条件９４３が成立する場合、第２位置４２が菱形領域９０に含まれないと判定する。判定部１１５は、ｘ１がｘｔｈを上回る場合、第２位置４２が菱形領域９０に含まれないと判定し、ｘ１がｘｔｈ以下である場合、第２位置４２が菱形領域９０に含まれると判定する。
【０３１０】
判定テーブル９０２は、象限ＩＤ４に数式９３４および判定条件９４４を関連付けて格納している。数式９３４は、菱形領域９０の外縁のうち第４外縁部分９４の外周を規定する数式である。数式９３４は、第２位置４２が第４象限に含まれる場合のｘｔｈを算出するために用いられる。数式９３４は、詳細には、次の式（４０）である。
【０３１１】
【数４０】
2019177001.tif 000042
判定条件９４４は、第４象限において第２位置４２が菱形領域９０に含まれない場合に成立する条件である。判定条件９４４は、詳細には、「ｘ１＞ｘｔｈ」である。これは、ｘ１がｘｔｈを上回ることである。判定部１１５は、第２位置４２が第４象限に含まれ、かつ、判定条件９４４が成立する場合、第２位置４２が菱形領域９０に含まれないと判定する。言い換えれば、判定部１１５は、ｘ１がｘｔｈを上回る場合、第２位置４２が菱形領域９０に含まれないと判定し、ｘ１がｘｔｈ以下である場合、第２位置４２が菱形領域９０に含まれると判定する。
【０３１２】
判定部１１５は、例えば、図４７に示すように第２位置４２が第１象限に含まれる場合、象限ＩＤ１に関連付けて判定テーブル９０２に格納される数式９３１を特定する。判定部１１５は、特定された数式９３１のｙ項に第２位置４２のｙ１（＝３０）を代入することによって、ｘｔｈとして「３５」を算出する。判定部１１５は、象限ＩＤ１に関連付けて判定テーブル９０２に格納される判定条件９４１（ｘ１＞ｘｔｈ）を特定する。図４７の例では、ｘ１＝８０であり、ｘｔｈ＝３５であるため、ｘ１＞ｘｔｈであり、これは判定条件９４１を満たす。判定部１１５は、ｘ１およびｘｔｈが判定条件９４１を満たすことに応じて、第２位置４２が菱形領域９０に含まれないと判定する。実際、図４７に示すように第２位置４２は菱形領域９０に含まれないため、判定部１１５は、第２位置４２が菱形領域９０に含まれないことを正しく判定している。
【０３１３】
判定部１１５は、例えば、図５１に示すように第２位置４２が第２象限に含まれる場合、象限ＩＤ２に関連付けて判定テーブル９０２に格納される数式９３２を特定する。判定部１１５は、特定された数式９３２のｙ項に第２位置４２のｙ１（＝２０）を代入することによって、ｘｔｈとして「−４０」を算出する。判定部１１５は、象限ＩＤ２に関連付けて判定テーブル９０２に格納される判定条件９４２（ｘ１＜ｘｔｈ）を特定する。図５１の例では、ｘ１＝−２０であり、ｘｔｈ＝−４０であるため、ｘ１≧ｘｔｈであり、これは判定条件９４２を満たさない。判定部１１５は、ｘ１およびｘｔｈが判定条件９４２を満たさないことに応じて、第２位置４２が菱形領域９０に含まれると判定する。実際、図５１に示すように第２位置４２は菱形領域９０に含まれるため、判定部１１５は、第２位置４２が菱形領域９０に含まれることを正しく判定している。
【０３１４】
〔変形例〕
領域規定部１１３は、上述した菱形領域６０、六角形領域８０、および菱形領域９０とは異なる任意の多角形領域、たとえば正方形領域を規定することもできる。
【０３１５】
上述した判定テーブル５０１〜９０１のすべてが、ゲーム情報１３２の一部として記憶部１２０に格納されていてもよい。上述した判定テーブル５０２〜９０２のすべてが、ゲーム情報１３２の一部として記憶部１２０に格納されていてもよい。
【０３１６】
領域規定部１１３は、規定される判定領域を、ゲームの進行に応じてリアルタイムに異ならせることができる。判定部１１５は、例えばゲームの第１シーンの進行中には円形領域５０を規定し、第２シーンの進行中には六角形領域８０を規定する。これにより、ゲームのシーンに応じて最適な判定領域を規定することができる。その結果、各シーンにおけるユーザの操作性をいずれも向上させることができる。
【０３１７】
領域規定部１１３は、例えば、ゲームプログラム１３１に基づくゲームが、キャラクタ３１をゲーム画面３１７の縦方向に比べて横方向の方により頻繁に移動させるゲームである場合、縦幅が横幅よりも長い菱形領域９０を規定する。この場合、ゲーム画面３１７の横方向にキャラクタ３１を走らせるために必要なスライド操作の距離は、ゲーム画面３１７の縦方向にキャラクタ３１を走らせるに必要なスライド操作の距離よりも、大幅に短い。したがって、ユーザは、キャラクタ３１をゲーム画面３１７の横方向に素早く移動させることができるので、ゲームを快適にプレイすることができる。
【０３１８】
領域規定部１１３は、例えば、ゲームプログラム１３１に基づくゲームが、キャラクタ３１をゲーム画面３０９の横方向に比べて縦方向の方により頻繁に移動させるゲームである場合、横幅が縦幅よりも長い楕円形領域７０を規定する。この場合、ゲーム画面３０９の縦方向にキャラクタ３１を走らせるために必要なスライド操作の距離は、ゲーム画面３０９の横方向にキャラクタ３１を走らせるに必要なスライド操作の距離よりも、大幅に短い。したがって、ユーザは、キャラクタ３１をゲーム画面３０９の縦方向に素早く移動させることができるので、ゲームを快適にプレイすることができる。
【０３１９】
領域規定部１１３は、第１接触点および第２接触点のうち少なくともいずれかが検出された時点においてゲームに登場するシーンに応じた判定領域を規定することができる。領域規定部１１３は、例えば、キャラクタ３１をゲーム画面３１７の横方向に移動させる必要がある第１シーンがゲームに登場した場合、横幅よりも縦幅の方が長い菱形領域９０を規定する。領域規定部１１３は、さらに、キャラクタ３１をゲーム画面３０９の縦方向に移動させる必要がある第２シーンが同じゲームに登場した場合、横幅が縦幅よりも長い楕円形領域７０を規定する。これらにより、第１シーンおよび第２シーンのいずれにおいても、ユーザにゲームを快適にプレイさせることができる。
【０３２０】
判定部１１５は、ｙ軸における正の座標を有する第１座標または第２座標が特定された場合、ｙ１がｙｔｈ以上である場合は第２位置４２が判定領域に含まれないと判定し、ｙ１がｙｔｈを下回る場合は第２位置４２が判定領域に含まれると判定することもできる。判定部１１５は、ｘ軸における正の座標を有する第１座標または第３座標が特定された場合、ｘ１がｘｔｈ以上である場合は第２位置４２が判定領域に含まれないと判定し、ｘ１がｘｔｈを下回る場合は第２位置４２が判定領域に含まれると判定することもできる。これらの判定結果に応じて、ゲーム実行部１１６は、第２位置４２が判定領域の外縁上にあるかまたは判定領域の外縁よりも外側にある場合は第１ゲーム処理を実行し、第２位置４２が判定領域の外縁よりも内側に含まれる場合は第２ゲーム処理を実行することができる。
【０３２１】
判定部１１５は、ｙ軸における負の座標を有する第３座標または第４座標が特定された場合、ｙ１がｙｔｈ以下である場合は第２位置４２が判定領域に含まれないと判定し、ｙ１がｙｔｈを上回る場合は第２位置４２が判定領域に含まれると判定することもできる。判定部１１５は、ｘ軸における負の座標を有する第２座標または第３座標が特定された場合、ｘ１がｘｔｈ以下である場合は第２位置４２が判定領域に含まれないと判定し、ｘ１がｘｔｈを上回る場合は第２位置４２が判定領域に含まれると判定することもできる。これらの判定結果に応じて、ゲーム実行部１１６は、第２位置４２が判定領域の外縁上にあるかまたは判定領域の外縁よりも外側にある場合は第１ゲーム処理を実行し、第２位置４２が判定領域の外縁よりも内側に含まれる場合は第２ゲーム処理を実行することができる。
【０３２２】
判定テーブル５０１〜９０１は、数式および判定条件を必ずしも象限ごとに格納する必要はない。判定テーブル５０２〜９０２は、数式および判定条件を必ずしも象限ごとに格納する必要はない。判定テーブル５０１は、例えば、円形領域５０の外縁のうち第１象限に含まれる外縁部分と第２象限に含まれる外縁部分とを一度に規定する第１数式と、第１数式に対応する第１判定条件とを格納することができる。判定テーブル５０１は、さらに、円形領域５０の外縁のうち第３象限に含まれる外縁部分と第４象限に含まれる外縁部分とを一度に規定する第２数式と、第２数式に対応する第２判定条件とを格納することができる。判定テーブル８０１は、例えば、六角形領域８０の外縁を構成する６つの辺のそれぞれを個別に規定する第１数式〜第６数式と、６つの辺のそれぞれに対応する第１判定条件〜第６判定条件とを格納することができる。
【０３２３】
〔ソフトウェアによる実現例〕
制御部１１０の制御ブロックは、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【０３２４】
後者の場合、制御部１１０を備えた情報処理装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、上記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０３２５】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【０３２６】
〔付記事項〕
本発明の一側面に係る内容を列記すると以下のとおりである。
【０３２７】
（項目１）  ゲームプログラム（１３１）について説明した。本開示のある局面によると、ゲームプログラムは、プロセッサ（１０）、メモリ（１１）、およびタッチスクリーン（１５）を備えるコンピュータ（ユーザ端末１００）により実行される。ゲームプログラムは、プロセッサに、タッチスクリーンにゲーム画面（３０１）を表示するステップ（Ｓ１１）と、タッチスクリーンに対する、互いに関連付けられる第１接触点および第２接触点を検出するステップ（Ｓ１２）と、第１接触点に関連付けられる第１位置（４１）、および第２接触点に関連付けられる第２位置（４２）を特定するステップ（Ｓ１３）と、第１軸（ｘ軸）および第１軸に直交する第２軸（ｙ軸）を有し、かつ第１位置を原点として有する座標系を定義するステップ（Ｓ１４）と、座標系において、第１位置を内部に含む判定領域（円形領域５０）を規定するステップ（Ｓ１５）と、第１位置と第２位置との相対的な位置関係に基づいて、判定領域の外縁を構成する複数の外縁部分のうち第２位置に対応する外縁部分を特定するステップ（Ｓ１６）と、第２位置と、特定された外縁部分との位置関係を判定するステップ（Ｓ１７）と、判定するステップにおける判定結果に応じたゲーム処理を実行するステップ（Ｓ１８）とを実行させる。
【０３２８】
（項目２）  （項目１）において、特定された外縁部分は、数式によって規定され、ゲームプログラムは、プロセッサに、第１軸における第２位置の第１座標を数式に代入することによって、閾値を算出するステップをさらに実行させ、判定するステップにおいて、第２軸における第２位置の第２座標と、閾値とを比較することによって、第２位置と判定領域との位置関係を判定する。
【０３２９】
（項目３）  （項目２）において、ゲームプログラムは、プロセッサに、座標系を構成する４つの異なる象限のうち、第２接触点が含まれる象限を特定するステップをさらに実行させ、外縁部分を特定するステップにおいて、複数の外縁部分のうち、特定された象限に含まれる外縁部分を、第２位置に対応する外縁部分として特定する。
【０３３０】
（項目４）  （項目３）において、象限を特定するステップにおいて、第２軸における正の座標を有する象限を特定し、判定するステップにおいて、第２座標が閾値を上回る場合は第２接触点が判定領域に含まれないと判定し、第２座標が閾値以下である場合は第２接触点が判定領域に含まれると判定する。
【０３３１】
（項目５）  （項目３）において、象限を特定するステップにおいて、第２軸における正の座標を有する象限を特定し、判定するステップにおいて、第２座標が閾値以上である場合は第２接触点が判定領域に含まれないと判定し、第２座標が閾値を下回る場合は第２接触点が判定領域に含まれると判定する。
【０３３２】
（項目６）  （項目３）において、象限を特定するステップにおいて、第２軸における負の座標を有する象限を特定し、判定するステップにおいて、第２座標が閾値を下回る場ぇ合は第２接触点が判定領域に含まれないと判定し、第２座標が閾値以上である場合は第２接触点が判定領域に含まれると判定する。
【０３３３】
（項目７）  （項目３）において、象限を特定するステップにおいて、第２軸における負の座標を有する象限を特定し、判定するステップにおいて、第２座標が閾値以下である場合は第２接触点が判定領域に含まれないと判定し、第２座標が閾値を上回る場合は第２接触点が判定領域に含まれると判定する。
【０３３４】
（項目８）  （項目１）〜（項目７）のいずれかにおいて、判定領域は、多角形、円形、または楕円形のいずれかの形状を有する。
【０３３５】
（項目９）  （項目１）〜（項目８）のいずれかにおいて、判定領域を規定するステップにおいて、第１接触点および第２接触点の少なくともいずれかが検出された時点においてゲームに登場するシーンに応じた判定領域を規定する。
【０３３６】
（項目１０）  （項目１）〜（項目９）のいずれかにおいて、判定領域を規定するステップにおいて、特定される判定領域を、ゲームの進行に応じてリアルタイムに異ならせる。
【０３３７】
（項目１１）  （項目１）〜（項目１０）のいずれかにおいて、ゲーム処理を実行するステップにおいて、第２位置が判定領域に含まれない場合は第１ゲーム処理を実行し、第２位置が判定領域に含まれる場合は第１ゲーム処理とは異なる第２ゲーム処理を実行する。
【０３３８】
（項目１２）  （項目１）〜（項目１１）のいずれかにおいて、ゲームプログラムは、プロセッサに、第１位置から第２位置に向かう第１方向を算出するステップをさらに実行させ、ゲーム処理を実行するステップにおいて、ゲーム画面において第１方向と平行な第２方向にキャラクタを移動させるゲーム処理を実行する。
【０３３９】
（項目１３）  （項目１）〜（項目１２）のいずれかにおいて、ゲームプログラムは、プロセッサに、第１位置から第２位置に向かって弾性変形する弾性体を、ゲーム画面に表示するステップをさらに実行させる。
【０３４０】
（項目１４）  ゲームプログラム（１３１）を実行する方法を説明した。本開示のある局面によると、ゲームプログラムは、プロセッサ（１０）、メモリ（１１）、およびタッチスクリーン（１５）を備えるコンピュータ（ユーザ端末１００）により実行される。該方法は、プロセッサが、タッチスクリーンにゲーム画面（３０１）を表示するステップ（Ｓ１１）と、タッチスクリーンに対する、互いに関連付けられる第１接触点および第２接触点を検出するステップ（Ｓ１２）と、第１接触点に関連付けられる第１位置（４１）、および第２接触点に関連付けられる第２位置（４２）を特定するステップ（Ｓ１３）と、第１軸（ｘ軸）および第１軸に直交する第２軸（ｙ軸）を有し、かつ第１位置を原点として有する座標系を定義するステップ（Ｓ１４）と、座標系において、第１位置を内部に含む判定領域（円形領域５０）を規定するステップ（Ｓ１５）と、第１位置と第２位置との相対的な位置関係に基づいて、判定領域の外縁を構成する複数の外縁部分のうち第２位置に対応する外縁部分を特定するステップ（Ｓ１６）と、第２位置と、特定された外縁部分との位置関係を判定するステップ（Ｓ１７）と、判定するステップにおける判定結果に応じたゲーム処理を実行するステップ（Ｓ１８）とを含む。
【０３４１】
（項目１５）  情報処理装置を説明した。本開示のある局面によると、該情報処理装置は、タッチスクリーン（１５）と、ゲームプログラムを記憶する記憶部（１２０）と、該ゲームプログラムを実行することにより、情報処理装置（ユーザ端末１００）の動作を制御する制御部（１１０）とを備える。制御部は、タッチスクリーンにゲーム画面（３０１）を表示し、タッチスクリーンに対する、互いに関連付けられる第１接触点および第２接触点を検出し、第１接触点に関連付けられる第１位置（４１）、および第２接触点に関連付けられる第２位置（４２）を特定し、第１軸（ｘ軸）および第１軸に直交する第２軸（ｙ軸）を有し、かつ第１位置を原点として有する座標系を定義し、座標系において、第１位置を内部に含む判定領域（円形領域５０）を規定し、第１位置と第２位置との相対的な位置関係に基づいて、判定領域の外縁を構成する複数の外縁部分のうち第２位置に対応する外縁部分を特定し、第２位置と、特定された外縁部分との位置関係を判定し、判定するステップにおける判定結果に応じたゲーム処理を実行する。
【符号の説明】
【０３４２】
１  ゲームシステム、２  ネットワーク、１０，２０  プロセッサ、１１，２１  メモリ、１２，２２  ストレージ、１３，２３  通信ＩＦ（操作部）、１４，２４  入出力ＩＦ（操作部）、１５  タッチスクリーン（表示部）、１７  カメラ（操作部）、１８  測距センサ（操作部）、３１  キャラクタ、３２  方向、４１  第１接触点、４２  第２接触点、４３  方向、４４  弾性体、５０  円形領域、５１  第１外縁部分、５２  第２外縁部分、５３  第３外縁部分、５４  第４外縁部分、６０  菱形領域、６１  第１外縁部分、６２  第２外縁部分、６３  第３外縁部分、６４  第４外縁部分、７０  楕円形領域、７１  第１外縁部分、７２  第２外縁部分、７３  第３外縁部分、７４  第４外縁部分、８０  六角形領域、８１  第１外縁部分、８２  第２外縁部分、８３  第３外縁部分、８４  第４外縁部分、９０  菱形領域、９１  第１外縁部分、９２  第２外縁部分、９３  第３外縁部分、９４  第４外縁部分、１００  ユーザ端末（情報処理装置）、１１０，２１０  制御部、１１１  操作受付部、１１２  位置特定部、１１３  領域規定部、１１４  外縁部分特定部、１１５  判定部、１１６  ゲーム実行部、１１７  表示制御部、１２０，２２０  記憶部、１３１  ゲームプログラム、１３２  ゲーム情報、１３３  ユーザ情報、１５１  入力部（操作部）、１５２  表示部、２００  サーバ、３０１〜３２０  ゲーム画面、５０１，５０２，６０１，６０２，７０１，７０２，８０１，８０２，９０１，９０２  判定テーブル
【図１】
2019177001.tif 000043
【図２】
2019177001.tif 000044
【図３】
2019177001.tif 000045
【図４】
2019177001.tif 000046
【図５】
2019177001.tif 000047
【図６】
2019177001.tif 000048
【図７】
2019177001.tif 000049
【図８】
2019177001.tif 000050
【図９】
2019177001.tif 000051
【図１０】
2019177001.tif 000052
【図１１】
2019177001.tif 000053
【図１２】
2019177001.tif 000054
【図１３】
2019177001.tif 000055
【図１４】
2019177001.tif 000056
【図１５】
2019177001.tif 000057
【図１６】
2019177001.tif 000058
【図１７】
2019177001.tif 000059
【図１８】
2019177001.tif 000060
【図１９】
2019177001.tif 000061
【図２０】
2019177001.tif 000062
【図２１】
2019177001.tif 000063
【図２２】
2019177001.tif 000064
【図２３】
2019177001.tif 000065
【図２４】
2019177001.tif 000066
【図２５】
2019177001.tif 000067
【図２６】
2019177001.tif 000068
【図２７】
2019177001.tif 000069
【図２８】
2019177001.tif 000070
【図２９】
2019177001.tif 000071
【図３０】
2019177001.tif 000072
【図３１】
2019177001.tif 000073
【図３２】
2019177001.tif 000074
【図３３】
2019177001.tif 000075
【図３４】
2019177001.tif 000076
【図３５】
2019177001.tif 000077
【図３６】
2019177001.tif 000078
【図３７】
2019177001.tif 000079
【図３８】
2019177001.tif 000080
【図３９】
2019177001.tif 000081
【図４０】
2019177001.tif 000082
【図４１】
2019177001.tif 000083
【図４２】
2019177001.tif 000084
【図４３】
2019177001.tif 000085
【図４４】
2019177001.tif 000086
【図４５】
2019177001.tif 000087
【図４６】
2019177001.tif 000088
【図４７】
2019177001.tif 000089
【図４８】
2019177001.tif 000090
【図４９】
2019177001.tif 000091
【図５０】
2019177001.tif 000092
【図５１】
2019177001.tif 000093
【図５２】
2019177001.tif 000094
【図５３】
2019177001.tif 000095
【手続補正書】
【提出日】平成30年11月2日(2018.11.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ゲームプログラムであって、
前記ゲームプログラムは、プロセッサ、メモリ、およびタッチスクリーンを備えるコンピュータにより実行され、
前記ゲームプログラムは、前記プロセッサに、
前記タッチスクリーンにゲーム画面を表示するステップと、
前記タッチスクリーンに対する、互いに関連付けられる第１接触点および第２接触点を検出するステップと、
前記第１接触点に関連付けられる第１位置と、前記第２接触点に関連付けられる第２位置とを特定するステップと、
第１軸および第２軸を有し、かつ前記第１位置を原点として有する座標系を定義するステップと、
前記座標系において、前記第１位置を内部に含む判定領域を規定するステップと、
前記第１位置と前記第２位置との相対的な位置関係に基づいて、前記判定領域の外縁を構成する複数の外縁部分のうち前記第２位置に対応する外縁部分を特定するステップと、
前記第１軸における前記第２位置の第１座標と前記特定された外縁部分とに基づいて、第１値を特定するステップと、
前記第２軸における前記第２位置の第２座標と前記第１値とに基づいて、前記第２位置と前記特定された外縁部分との位置関係を判定するステップと、
前記判定するステップにおける判定結果に応じたゲーム処理を実行するステップとを実行させる、ゲームプログラム。
【請求項２】
特定された前記外縁部分は、数式によって規定され、
前記ゲームプログラムは、前記プロセッサに、
前記第１軸における前記第２位置の第１座標を、前記数式に代入することによって、閾値を算出するステップをさらに実行させ、
前記判定するステップにおいて、前記第２軸における前記第２位置の第２座標と、前記閾値とを比較することによって、前記第２位置と前記判定領域との位置関係を判定する、請求項１に記載のゲームプログラム。
【請求項３】
前記ゲームプログラムは、前記プロセッサに、前記座標系を構成する４つの異なる象限のうち、前記第２位置が含まれる象限を特定するステップをさらに実行させ、
前記外縁部分を特定するステップにおいて、前記複数の外縁部分のうち、特定された象限に含まれる前記外縁部分を、前記第２位置に対応する前記外縁部分として特定する、請求項２に記載のゲームプログラム。
【請求項４】
前記象限を特定するステップにおいて、前記第２軸における正の座標を有する前記象限を特定し、
前記判定するステップにおいて、前記第２座標が前記閾値を上回る場合は前記第２位置が前記判定領域に含まれないと判定し、前記第２座標が前記閾値以下である場合は前記第２位置が前記判定領域に含まれると判定する、請求項３に記載のゲームプログラム。
【請求項５】
前記象限を特定するステップにおいて、前記第２軸における正の座標を有する前記象限を特定し、
前記判定するステップにおいて、前記第２座標が前記閾値以上の場合は前記第２位置が前記判定領域に含まれないと判定し、前記第２座標が前記閾値を下回る場合は前記第２位置が前記判定領域に含まれると判定する、請求項３に記載のゲームプログラム。
【請求項６】
前記象限を特定するステップにおいて、前記第２軸における負の座標を有する前記象限を特定し、
前記判定するステップにおいて、前記第２座標が前記閾値を下回る場合は前記第２位置が前記判定領域に含まれないと判定し、前記第２座標が前記閾値以上である場合は前記第２位置が前記判定領域に含まれると判定する、請求項３に記載のゲームプログラム。
【請求項７】
前記象限を特定するステップにおいて、前記第２軸における負の座標を有する前記象限を特定し、
前記判定するステップにおいて、前記第２座標が前記閾値以下である場合は前記第２位置が前記判定領域に含まれないと判定し、前記第２座標が前記閾値を上回る場合は前記第２位置が前記判定領域に含まれると判定する、請求項３に記載のゲームプログラム。
【請求項８】
前記判定領域は、多角形、円形、または楕円形のいずれかの形状を有する、請求項１〜７のいずれか１項に記載のゲームプログラム。
【請求項９】
前記判定領域を規定するステップにおいて、前記第１接触点および前記第２接触点のうち少なくともいずれかが検出された時点においてゲームに登場するシーンに応じた前記判定領域を規定する、請求項１〜８のいずれか１項に記載のゲームプログラム。
【請求項１０】
前記判定領域を規定するステップにおいて、規定される前記判定領域を、ゲームの進行に応じてリアルタイムに異ならせる、請求項１〜９のいずれか１項に記載のゲームプログラム。
【請求項１１】
前記ゲーム処理を実行するステップにおいて、前記第２位置が前記判定領域に含まれない場合は第１ゲーム処理を実行し、前記第２位置が前記判定領域に含まれる場合は前記第１ゲーム処理とは異なる第２ゲーム処理を実行する、請求項１〜１０のいずれか１項に記載のゲームプログラム。
【請求項１２】
前記ゲームプログラムは、前記プロセッサに、前記第１位置から前記第２位置に向かう第１方向を算出するステップをさらに実行させ、
前記ゲーム処理を実行するステップにおいて、前記ゲーム画面において前記第１方向と平行な第２方向にキャラクタを移動させるゲーム処理を実行する、請求項１〜１１のいずれか１項に記載のゲームプログラム。
【請求項１３】
前記ゲームプログラムは、前記プロセッサに、前記第１位置から前記第２位置に向かって弾性変形する弾性体を、前記ゲーム画面に表示するステップをさらに実行させる、請求項１〜１２のいずれか１項に記載のゲームプログラム。
【請求項１４】
コンピュータがゲームプログラムを実行する方法であって、
前記コンピュータは、プロセッサ、メモリ、およびタッチスクリーンを備え、
前記方法は、前記プロセッサが、
前記タッチスクリーンにゲーム画面を表示するステップと、
前記タッチスクリーンに対する、互いに関連付けられる第１接触点および第２接触点を検出するステップと、
前記第１接触点に関連付けられる第１位置と、前記第２接触点に関連付けられる第２位置とを特定するステップと、
第１軸および第２軸を有し、かつ前記第１位置を原点として有する座標系を定義するステップと、
前記座標系において、前記第１位置を内部に含む判定領域を規定するステップと、
前記第１位置と前記第２位置との相対的な位置関係に基づいて、前記判定領域の外縁を構成する複数の外縁部分のうち前記第２位置に対応する外縁部分を特定するステップと、
前記第１軸における前記第２位置の第１座標と前記特定された外縁部分とに基づいて、第１値を特定するステップと、
前記第２軸における前記第２位置の第２座標と前記第１値とに基づいて、前記第２位置と前記特定された外縁部分との位置関係を判定するステップと、
前記判定するステップにおける判定結果に応じたゲーム処理を実行するステップと実行する、ゲームプログラム。
【請求項１５】
情報処理装置であって、
前記情報処理装置は、
タッチスクリーンと、
ゲームプログラムを記憶する記憶部と、
該ゲームプログラムを実行することにより、情報処理装置の動作を制御する制御部とを備えており、
前記制御部は、
前記タッチスクリーンにゲーム画面を表示し、
前記タッチスクリーンに対する、互いに関連付けられる第１接触点および第２接触点を検出し、
前記第１接触点に関連付けられる第１位置と、前記第２接触点に関連付けられる第２位置とを特定し、
第１軸および第２軸を有し、かつ前記第１位置を原点として有する座標系を定義し、
前記座標系において、前記第１位置を内部に含む判定領域を規定し、
前記第１位置と前記第２位置との相対的な位置関係に基づいて、前記判定領域の外縁を構成する複数の外縁部分のうち前記第２位置に対応する外縁部分を特定し、
前記第１軸における前記第２位置の第１座標と前記特定された外縁部分とに基づいて、第１値を特定し、
前記第２軸における前記第２位置の第２座標と前記第１値とに基づいて、前記第２位置と前記特定された外縁部分との位置関係を判定し、
前記位置関係の判定結果に応じたゲーム処理を実行する、情報処理装置。
【手続補正書】
【提出日】平成31年2月18日(2019.2.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ゲームプログラムであって、
前記ゲームプログラムは、プロセッサ、メモリ、およびタッチスクリーンを備えるコンピュータにより実行され、
前記ゲームプログラムは、前記プロセッサに、
前記タッチスクリーンにゲーム画面を表示するステップと、
前記タッチスクリーンに対する、互いに関連付けられる第１接触点および第２接触点を検出するステップと、
前記第１接触点に関連付けられる第１位置と、前記第２接触点に関連付けられる第２位置とを特定するステップと、
第１軸および第２軸を有し、かつ前記第１位置を原点として有する座標系を定義するステップと、
前記座標系において、前記第１位置を内部に含む判定領域を規定するステップと、
前記第１位置と前記第２位置との相対的な位置関係に基づいて、前記判定領域の外縁を構成する複数の外縁部分のうち前記第２位置に対応する外縁部分を特定するステップと、
前記第１軸における前記第２位置の第１座標と前記特定された外縁部分とに基づいて、第１値を特定するステップと、
前記第２軸における前記第２位置の第２座標と前記第１値とに基づいて、前記第２位置と前記特定された外縁部分との位置関係を判定するステップと、
前記判定するステップにおける判定結果に応じたゲーム処理を実行するステップとを実行させる、ゲームプログラム。
【請求項２】
特定された前記外縁部分は、数式によって規定され、
前記ゲームプログラムは、前記プロセッサに、
前記第１軸における前記第２位置の第１座標を、前記数式に代入することによって、閾値を算出するステップをさらに実行させ、
前記判定するステップにおいて、前記第２軸における前記第２位置の第２座標と、前記閾値とを比較することによって、前記第２位置と前記判定領域との位置関係を判定する、請求項１に記載のゲームプログラム。
【請求項３】
前記ゲームプログラムは、前記プロセッサに、前記座標系を構成する４つの異なる象限のうち、前記第２位置が含まれる象限を特定するステップをさらに実行させ、
前記外縁部分を特定するステップにおいて、前記複数の外縁部分のうち、特定された象限に含まれる前記外縁部分を、前記第２位置に対応する前記外縁部分として特定する、請求項２に記載のゲームプログラム。
【請求項４】
前記象限を特定するステップにおいて、前記第２軸における正の座標を有する前記象限を特定し、
前記判定するステップにおいて、前記第２座標が前記閾値を上回る場合は前記第２位置が前記判定領域に含まれないと判定し、前記第２座標が前記閾値以下である場合は前記第２位置が前記判定領域に含まれると判定する、請求項３に記載のゲームプログラム。
【請求項５】
前記象限を特定するステップにおいて、前記第２軸における正の座標を有する前記象限を特定し、
前記判定するステップにおいて、前記第２座標が前記閾値以上の場合は前記第２位置が前記判定領域に含まれないと判定し、前記第２座標が前記閾値を下回る場合は前記第２位置が前記判定領域に含まれると判定する、請求項３に記載のゲームプログラム。
【請求項６】
前記象限を特定するステップにおいて、前記第２軸における負の座標を有する前記象限を特定し、
前記判定するステップにおいて、前記第２座標が前記閾値を下回る場合は前記第２位置が前記判定領域に含まれないと判定し、前記第２座標が前記閾値以上である場合は前記第２位置が前記判定領域に含まれると判定する、請求項３に記載のゲームプログラム。
【請求項７】
前記象限を特定するステップにおいて、前記第２軸における負の座標を有する前記象限を特定し、
前記判定するステップにおいて、前記第２座標が前記閾値以下である場合は前記第２位置が前記判定領域に含まれないと判定し、前記第２座標が前記閾値を上回る場合は前記第２位置が前記判定領域に含まれると判定する、請求項３に記載のゲームプログラム。
【請求項８】
前記判定領域は、多角形、円形、または楕円形のいずれかの形状を有する、請求項１〜７のいずれか１項に記載のゲームプログラム。
【請求項９】
前記判定領域を規定するステップにおいて、前記第１接触点および前記第２接触点のうち少なくともいずれかが検出された時点においてゲームに登場するシーンに応じた前記判定領域を規定する、請求項１〜８のいずれか１項に記載のゲームプログラム。
【請求項１０】
前記判定領域を規定するステップにおいて、規定される前記判定領域を、ゲームの進行に応じてリアルタイムに異ならせる、請求項１〜９のいずれか１項に記載のゲームプログラム。
【請求項１１】
前記ゲーム処理を実行するステップにおいて、前記第２位置が前記判定領域に含まれない場合は第１ゲーム処理を実行し、前記第２位置が前記判定領域に含まれる場合は前記第１ゲーム処理とは異なる第２ゲーム処理を実行する、請求項１〜１０のいずれか１項に記載のゲームプログラム。
【請求項１２】
前記ゲームプログラムは、前記プロセッサに、前記第１位置から前記第２位置に向かう第１方向を算出するステップをさらに実行させ、
前記ゲーム処理を実行するステップにおいて、前記ゲーム画面において前記第１方向と平行な第２方向にキャラクタを移動させるゲーム処理を実行する、請求項１〜１１のいずれか１項に記載のゲームプログラム。
【請求項１３】
前記ゲームプログラムは、前記プロセッサに、前記第１位置から前記第２位置に向かって弾性変形する弾性体を、前記ゲーム画面に表示するステップをさらに実行させる、請求項１〜１２のいずれか１項に記載のゲームプログラム。
【請求項１４】
コンピュータがゲームプログラムを実行する方法であって、
前記コンピュータは、プロセッサ、メモリ、およびタッチスクリーンを備え、
前記方法は、前記プロセッサが、
前記タッチスクリーンにゲーム画面を表示するステップと、
前記タッチスクリーンに対する、互いに関連付けられる第１接触点および第２接触点を検出するステップと、
前記第１接触点に関連付けられる第１位置と、前記第２接触点に関連付けられる第２位置とを特定するステップと、
第１軸および第２軸を有し、かつ前記第１位置を原点として有する座標系を定義するステップと、
前記座標系において、前記第１位置を内部に含む判定領域を規定するステップと、
前記第１位置と前記第２位置との相対的な位置関係に基づいて、前記判定領域の外縁を構成する複数の外縁部分のうち前記第２位置に対応する外縁部分を特定するステップと、
前記第１軸における前記第２位置の第１座標と前記特定された外縁部分とに基づいて、第１値を特定するステップと、
前記第２軸における前記第２位置の第２座標と前記第１値とに基づいて、前記第２位置と前記特定された外縁部分との位置関係を判定するステップと、
前記判定するステップにおける判定結果に応じたゲーム処理を実行するステップとを含む、方法。
【請求項１５】
情報処理装置であって、
前記情報処理装置は、
タッチスクリーンと、
ゲームプログラムを記憶する記憶部と、
該ゲームプログラムを実行することにより、情報処理装置の動作を制御する制御部とを備えており、
前記制御部は、
前記タッチスクリーンにゲーム画面を表示し、
前記タッチスクリーンに対する、互いに関連付けられる第１接触点および第２接触点を検出し、
前記第１接触点に関連付けられる第１位置と、前記第２接触点に関連付けられる第２位置とを特定し、
第１軸および第２軸を有し、かつ前記第１位置を原点として有する座標系を定義し、
前記座標系において、前記第１位置を内部に含む判定領域を規定し、
前記第１位置と前記第２位置との相対的な位置関係に基づいて、前記判定領域の外縁を構成する複数の外縁部分のうち前記第２位置に対応する外縁部分を特定し、
前記第１軸における前記第２位置の第１座標と前記特定された外縁部分とに基づいて、第１値を特定し、
前記第２軸における前記第２位置の第２座標と前記第１値とに基づいて、前記第２位置と前記特定された外縁部分との位置関係を判定し、
前記位置関係の判定結果に応じたゲーム処理を実行する、情報処理装置。