プレイ日記
K・Z 001-99
アクションゲームの制作は難航・・。 折角スプライトの動かし方を教えてもらったのに、spanim で動かしたらとても重くなるんです・・・自分の技術力不足に泣いた・・
3そうだね
プレイ済み
返信[1]
親投稿
nawi suradec.3
変わるかどうか分からないですけどWAIT 1をVSYNC 1にしてみては?
0そうだね
プレイ済み
返信[2]
親投稿
SPANIMが重い? もしかしたら誤解している可能性が… -300は5秒かけて動くってことです。
0そうだね
プレイ済み
返信[3]
親投稿
********** itd12d
ヒント:フレーム数 -で自動補完 絶対値が大きいとゆっくり動く
1そうだね
プレイ済み
返信[4]
親投稿
それと、GOTOとGOSUBの使い分けがよろしくないように見えますね。 @ほにゃらら IF ほにゃらら THEN GOTO @MAIN RETURN メインループにGOTOで戻ってるっぽい。
0そうだね
プレイ済み
返信[5]
親投稿
K・Z 001-99
ええと、重いのは攻撃で弾丸を動かした後で、操作しているキャラの動きが重くなるということなんです。@DMのサブルーチンは、モンスターに弾丸が当たった後、ダメージを加算するサブルーチンなんです。自分の説明不足でした。すみません。
0そうだね
プレイ済み
返信[6]
親投稿
K・Z 001-99
訂正します。@DMの話しは無しにしてください。弾丸がモンスターに当たらなかったときに、メインループにいくようにしていました。うぬぬ・・プログラム難しいな・・
0そうだね
プレイ済み
返信[7]
親投稿
K・Z 001-99
メインループこんな感じなんですが・・
0そうだね
プレイ済み
返信[8]
親投稿
********** itd12d
SPOFS使ってみては?
0そうだね
プレイ済み
返信[9]
親投稿
あまさと しおんさんが指摘しているように、GOTOで戻っているために、Aボタンを押している間、34行目以降にあると思われる、SPOFS 0,X,Yが実行され無いために重く感じられるのではないでしょうか。 また、GOSUBで呼び出してGOTOで戻るとスタックオーバーフローの元になるのでRETURNで戻るようにしてください。戻ったときに、処理を分ける必要があれば、そのための変数に値を設定して、サブルーチンから戻ってからその値を判定して処理を分けた方が良いと思います。(対処例なのででK・Zにとってもっと分かりやすい方法があればその方法を使ってください。)
0そうだね
プレイ済み
返信[10]
親投稿
なお、この問題とは、関係ありませんが、67行目の SPANIM 1,"XY" は、68行目の SPOFS 1,SX,SY によって停止させれているのでは無いでしょうか。
0そうだね
プレイ済み
返信[11]
親投稿
もう1つの可能性。73行目のRETURNで戻ったときに、72行目のWAITとメインループのVSINCまたはWAITの2回の待ちになってはいないでしょうか。
0そうだね
プレイ済み