スクロールゲームの注意(たちこうさんへ)
投稿者 : リセッタ(em114-48-17-94.pool.e-mobile.ne.jp)
- 2011/04/07(Thu) 14:04
No.12944
|
|
|
|
|
スクロールゲームの基本は自機オブジェクトでスクロール処理です。 管理オブジェクトを使う場合は、<FrameManager>クラスを使います。 ([メニュー][オブジェクト][新規作成]で{プロジェクトマネージャー}選択)
※ 自機移動、スクロール、表示のタイミングが非同期なので おかしな動作になる
|
Re: スクロールゲームの注意(たちこうさんへ)
投稿者 : たちこう(kd125028206095.ppp-bb.dion.ne.jp)
- 2011/04/07(Thu) 21:11
No.12945
|
|
|
|
度々すみません。
プロジェクトマネージャー、はじめて使ったのですが、 使いかたがよくわかりません。(T-T)
ただ作っただけじゃ同期しないんですよね?
どんなプログラムをうてばいいのか、 教えていただけないでしょうか。m(unu)m
|
フレームマネージャー
投稿者 : リセッタ(em114-48-26-162.pool.e-mobile.ne.jp)
- 2011/04/08(Fri) 21:05
No.12946
|
|
|
|
管理オブジェクトは消さずに、フレームマネージャー新規作成(オブジェクトを作成にチェックする)。 スクロール部分をコピー、管理オブジェクトのスクロール部分はコメントにする。 スクロール処理を、フレームマネージャー内の onBeforeMove()かonAfterMove()メソッドどちらかにペースト。
まず、スクロールしてブロック作成やらキーチェックならBeforへ
先に処理をして最後にスクロールならAfterに入れます。
例) function onAfterMove() { // フレーム毎に、すべてのオブジェクトが動作した後に行う処理を記述します
// スクロール処理 管理オブジェクトから移動 管理オブジェクト側は、コメントアウト if($cy<7.5)$cy+=0.0002; // 徐々に早くする $scy-=$cy; $map.scrollTo(0,$scy); }
|
Re: スクロールゲームの注意(たちこうさんへ)
投稿者 : たちこう(kd125028206095.ppp-bb.dion.ne.jp)
- 2011/04/09(Sat) 17:34
No.12947
|
|
|
|
なるほど、なるほど。 93%理解しました!
ちなみにキーチェックとは何ですか?
|
Re:キーチェック
投稿者 : リセッタ(em111-188-9-180.pool.e-mobile.ne.jp)
- 2011/04/09(Sat) 19:43
No.12948
|
|
|
|
>ちなみにキーチェックとは何ですか?
(キーボードからの)キー(入力の)チェック(を行う処理)
#ところで、結果はどうでした?
|
Re: スクロールゲームの注意(たちこうさんへ)
投稿者 : たちこう(kd125028206095.ppp-bb.dion.ne.jp)
- 2011/04/09(Sat) 21:20
No.12950
|
|
|
|
すみません!
学校とか忙しくてまだです・・。(TnT)
明日には報告できると思われます。(>v<)d
|
Re: スクロールゲームの注意(たちこうさんへ)
投稿者 : たちこう(kd125028206095.ppp-bb.dion.ne.jp)
- 2011/04/09(Sat) 22:23
No.12951
|
|
|
|
今、function onAfterMove()の部分に、
if($cy<7.5)$cy+=0.0002; // 徐々に早くする $scy-=$cy; $map.scrollTo(0,$scy);
をうちこんでみたんですか、 だめです・・・。
バグの回数は減った感じがしました。
自機にスクロール部分を移してみたのですが、 変わりませんでした・・・。
|
デバッグ
投稿者 : リセッタ(em111-188-36-232.pool.e-mobile.ne.jp)
- 2011/04/10(Sun) 03:41
No.12953
|
|
|
|
掲示板で「こうやったら?」みたいに言われたら、 設計中のフォルダを まるっと コピーして 複製先のフォルダで試すと元に戻すのがらくです。
さて、こういう 位置がおかしい?みたいな時のデバッグだけど
dby=y; // デバック用Y初期設定
while(1){ if(y!=dby) print("A:" + y + " , " + dby); // ポイントA
// 処理群 A
if(y!=dby) print("B:" + y + " , " + dby); // ポイント B
// 処理群 B
if(y!=dby) print("C:" + y + " , " + dby); // ポイント C
// 処理群 C
dby=y; // update前Yセーブ update(); }
のようにして、大きく値が変わっている部分を見つけます。 ・Aで既に値が変わっているなら他のオブジェクトがちょっかいしてる ・Bで変わってるなら、処理Aで変えている →ポイントBのプリント文をA,Bの間Dに入れ再実行 ポイントを絞っていく
#がんばってねぇ
|
|