Hatena::ブログ(Diary)

ABAの日誌

Back to ABA Games
Twitter (abagames)
カレンダー
 | 

2005-12-05

Google Maps APIでシューティング作ろうとして挫折

せっかく最近ECMAScript触っているので、前にヨタで言っていた、Google Maps APIでスクランブルフォーメーション(id:ABA:20050711#p1)をやってみようと思って、挫折。やっぱきつい。まあもともとこんな使い方をするためのものじゃないから、当たり前といえば当たり前。

一応途中まであがいた跡がこれ。ビットマップはゲーム製作技術板/シューティングゲーム製作技術総合スレの素材を利用させてもらっている。

重すぎる。フレームレートもばたつきすぎ。やっぱりスプライトをマップ上のマーカーで代用するのに無理がありすぎた。

単に挫折だけだともったいないので、作っている最中に分かったことを適当に書いておこう。Google Maps APIでアクションゲームを作るときの参考にどうぞ。

  • 継続的な画面スクロール

GMapのcenterAtLatLngもしくはrecenterOrPanToLatLngを定期的に呼び出すことで実現できる。

ただこの両者、微妙に挙動が違って、centerAtLatLngはマーカーのリフレッシュを積極的に行うためか、若干重い。逆にrecenterOrPanToLatLngはマーカーをリフレッシュしないため、後で説明するマーカーのredrawを明示的に行う必要がある。あとrecenterOrPanToLatLngはそれ自体にスムーススクロール機能が付いているので、連続で呼び出すとスクロールが若干ぬるぬるする。

あとInfoWindowはスクロール制御を強引に持っていってしまうので使い勝手が悪い。

  • スプライト相当の機能

GMarkerを駆使することでなんとか実現可能。マーカーを移動させるには、

  marker.point.x += 0.00005;
  marker.redraw(true);

という風に、redrawを呼ぶ必要がある。ただし上にも書いたように、継続的なスクロールをcenterAtLatLngで行っている場合はredraw不要。

  • マーカーのアニメーション

markerのiconを変更するだけでは、redrawしても反映されない。以下のようなコードが必要。

  marker.remove();
  marker.icon = newIcon;
  marker.initialize(map)
  marker.redraw(true);

mapはGMapインスタンス。非公開API使いまくりの上重いので、あまり多用すべきではない。

だいたいこんなところ。マーカーを駆使して無茶するよりも、スプライトは自力で別管理した方が多分正解だね。面白みに欠けるが。

結論。Google Maps APIでアクションゲームはあんまりお勧めしません!

azounoazouno 2005/12/06 03:06 かっこいい!
実際にちゃんと動くものを作るのは難しそうだけど.

anyany 2005/12/06 11:01 こういう馬鹿を本気でやるのは素晴らしい。しかもGoogleMapでゲーム作るなら鬼ごっことかSLGが普通だろうに意地でもSTG作ろうという根性がまた素晴らしい。

dotimpactdotimpact 2005/12/06 11:42 すばらしいです!
バンゲリングベイみたいのもよさそうだと思ったんですがどうでしょうか。

FoZonFoZon 2005/12/06 12:09 お、すばらしいです、ぜひ、いろんな国に攻め込んでください

うはうは 2005/12/06 13:05 皇居からスパリオが

o_megao_mega 2005/12/06 16:20 しまった!コイツは病院だったーっ!
ああー、俺はなんてことをしてしまったんだー(棒読み

isshikiisshiki 2005/12/06 22:59 なんかそこらの同人シューティングよりゲームになってるのが・・・。あと、へちょい環境なのに言ってるほど重くないな。
というか自機はどこの侵略軍でつか?

ABAABA 2005/12/06 23:16 うちの環境だと重い。Firefoxの方が気持ち速くてフレームレートのばたつきが激しく、IEだと遅いけどフレームレートは安定ぎみ。

ABAABA 2005/12/06 23:17 バンゲリングベイは親和性高そう。シューティングよりはフライトシムみたいな感じの方が多分相性いいんでしょうけどね。

HoriiHorii 2005/12/07 16:11 うは、本当にやっちょる。
固定方向スクロールだと自宅目指して飛べないっす。

ABAABA 2005/12/07 22:26 あのときのヨタが長年の時を経て実現……させようとして挫折ですよ。やっぱり全方位にしないと神奈川、山の手、千葉方面への訴求が弱めですかね。

47j47j 2005/12/08 00:09 この勢いで以前おっしゃってた
iPodSTGも頑張ってください。
ジャイラスとか。

 | 
旧AbaPage Diary Logs
Back to ABA Games