
某逃走ゲームの番組が好きで、、、 鬼ごっこを Google ストリートビューを使って ゲーム作ってみましたー
とりあえず、細かい内容は後日ですが、、、
10分間ハンターから逃げ切れれば クリアです。 その間 ミッションがあり、、、 といっても書かれている通り名に行くだけなんですがね
プレイヤーは「索敵」機能を(回数制限あり)使って少し遠くのハンターの動きを 見つつ、逃げます。 索敵は、方向を変えることでできるんですが、、、欠陥品でどんどん回数減っていきます(バグ?っぽい)
オリジナルなステージは
見せ場は、ハンターがギリギリで迫っている時の
逃走シーン
しかし、、、重くて済みません。(ランタイムアウトとかもあるかも(汗))
また、ストリートビューの使用意図も少々薄いかも、、、
でも、
世界中で逃走できる!
飽きたら、自分で指定した場所で逃走できる!
様にしました。
一部をparpue.net - Google ストリートビューで鬼ごっこ 様を少し参考にさせていただきました。
多少なりとも、これからもっと増えるであろう、GoogleMapでのゲームの参考になれたら幸いです。
[苦労した技術的な面(メモ)]
ハンター(敵)のAI部での動き
なるべく1つの道は戻らずにまっすぐ行くようにしました。
ストリートビューでは、各位置別にpanoIdというIDを持っていますので
1つ前のpanoIdに進まないように設定することでほぼ前に進むようになっています。
ハンターがプレイヤーを追う動き。
最も苦労した分岐処理です。
というのも、getNearestPanorama() と getPanoramaById()で使用できる
GStreetviewData オブジェクトの構造に次の位置情報が入ってはいるのですが
そのlinksには...
links[]: {
yaw: String,
description: String,
panoId: String
}
と、yaw(今の位置からの方角)、description(通り名)、panoIdしか入っていないからです。 というわけで、プレイヤーの緯度経度、ハンターの緯度経度を使用して、優先する方角を 決めています。
※注意点
getNearestPanorama() と getPanoramaById()を使って現在地を取得できますが
location: {
latlng: GLatLng,
pov: {
yaw: String,
pitch: String,
zoom: String
},
description: String,
panoId: String
}
のpovには何も入っていません。。。
どうしたかというと
.getPOV()
で取得します。
ただし、この方法だと、GStreetviewPanoramaを持っているオブジェクト(ここではプレイヤー)
しか使えませんので注意
また、locationは変更されていて、、
location: {
latlng: GLatLng,
region:String,
country:String,
zoomLevels:3,
pov:..
}
と、zoomLevels(現在のズームサイズ)、region(市町村名)、country(国名) が追加されています。
[これから]
・ランキング的なものを追加したいなぁ
ウェブスライスは60分間隔でアップデートします。