GameMaker:ブラウザで動いたよコイツ

GameMaker:ブラウザで動いたよコイツ

新年、あけまして・・・

もう2月だよ。
ついで言うとここに投稿するの
だいぶ久しぶりすぎるな!?

ということでどうも
Master.typeXです。

さて、8月に投稿して以来
何の動きもないように思えたが
どっこい生きてます。

9月10月は特に目立った動きはなかったが
11月に携帯ゲーム機型PC「GPDWIN4 2023」を予約し
12月、予定より早くそれが着弾。
1月は元日から地震の憂い目にあい
メインPCのモニターが破損、翌日即買いに行ったり。

とまあ、うん、そういうことだぁ!
(どういうことだよ)

で、今回のネタは
今現在開発中・・・というか
ほぼほぼ完成している2DACT
「ブラッドランズ(仮題)」のネタなのだが
つい先日、コレブラウザ上で動いたら
テスト版としてPLiCyに公開できねーかなと
考えておもむろにHTML出力したら
ほぼほぼ手を加えずに動いたわけでして・・・。

前置きが長くなったが、ここからが本題。
今回手を加えたのは「ポーズの処理」なのだ。

なぜ、ポーズの処理に手を加えたのかと言うと
そこでエラー落ちしてゲームが止まったからである。
まあ、単純明快だな。

しかし、instance_deactivate_allでゲームマネージャー以外の
オブジェクトを停止し、インプット、UI、ステージなど
止まっちゃいけない各マネージャーオブジェクトを
instance_activate_objectで有効化してポーズしていたつもりだったのだが
それだとどうもカメラオブジェクトの停止でエラーが発生してることが発覚。

なので、カメラも有効化してやったら
今度は裏でプレイヤーが止まらず、ポーズを解除したら
プレイヤーが地面に埋まってるではないか!!!
どうしてそうなった・・・

コリジョンのスクリプトが悪さしているのか?
コリジョンの互換性モードが悪さしているのか?
と、コリジョンばかり目を向けていたが
今思うと実に単純で、instance_activate_regionという
指定範囲内のインスタンスを有効化するコマンド・・・
つまりゲームマネージャーで止めていた
プレイヤー、床、敵、その他諸々が
有効化されてしまっていたというわけで。
だからプレイヤーが埋まったり裏で動いていたりしていたのだ。
しかも実行順はポーズ処理が書いてあるstepイベントの後に発生する
end stepイベントに書かれていたので尚の事タチが悪かった。
実行順わけわかんない!!!

だが、そこがわかったら話は簡単。
instance_activate_regionをカメラのstepイベントに書き
念のため、ポーズ用変数が0の時のみ動くようにし
ゲームマネージャーのポーズ処理の記述をstepイベントの前に発生する
begin stepイベントに移すという形で解決した。
コリジョンイジる必要なんか全く無かった!!!
クソマァ!!!

・・・まあ、長くなったが
コレでめでたく、ブラウザでちゃんと
動かせるようになったわけで。
遊んでくれる人が増えるよ!やったねたえちゃん!
(おいやめろ)

と、言いたいところだが
このゲーム、販売するつもりで作ってる。
まあ、場所は未定だが・・・。

しかし、見返してみると
GameMakerの知識がないと
さっぱりわからん内容になってしまったな。
済まないとは思っている、だが私は謝らない。

とまあそういうことで
コレがGameMakerのHTML出力したいという人の
なにかの役に立てば幸いである。

ということで今回はこの辺で。
またそのうち!!!

報告する

コメント

  • コメント ( 0 )

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

コメントするためには、 ログイン してください。