Petitverse
ゲストさん (
ログイン
)
ログイン
コミュニティ内検索
コミュニティ一覧
Petitverse ご利用ガイド
Petitverse からのおしらせ
プチコン 非公式コミュニティ
トピック
ぴえぇる
◆aulADA6.kObN
2018/4/21 20:10
質問
【質問】処理落ちを軽減させる方法
シューティングを作っているのですが、弾を多く出すと重くなります;;
しかし、他の作者様のシューティングでは、
自分のシューティングよりも更に多くの弾を使っているのに処理落ちしません…
処理落ちを軽減する方法を教えて下さい!!
一応公開キー貼っておきます
【CJ5QX3H4】
コメント
こういち
2018/4/21 20:59
◆ou0jbJnEJ0Kb
原因は現在調査中です。
とりあえず思ったこと。
インデント(IF〜ENDIF、FOR〜NEXTなど複数行に渡る文の間を1マス開けること)をつけた方が読みやすくなって、読むほうもやりやすくなりますよ。
あと、@EN_SHOT最後のIFラッシュはENDIF使った方が良いと思いました。
ぴえぇる
2018/4/21 22:06
◆aulADA6.kObN
確かに見やすさも大事ですね^^;
今後意識してみます(`・ω・´)
こういち
2018/4/21 22:11
◆ou0jbJnEJ0Kb
いくつか原因を見つけました。
まず、ボスの攻撃時、2フレームに1回@SHOT2を呼び出してますが、後半の方になると、900回ぐらいループしています。
2フレームに1回900回ものループを実行すれば当然処理落ちします。
続く
こういち
2018/4/21 22:23
◆ou0jbJnEJ0Kb
その2 配列を読み書きしすぎ
プチコンで配列が遅いことは有名な話。
特に@EN_SHOTは、呼び出される回数が多いため、特に注意です。
たとえば、ES_XやES_YはSPOFS OUTで代用
ES_N2はSPROT OUTを使うのはどうでしょう。
スプライトを常時SETをやめて、SPUSEDを使うのもありでしょう。
こういち
2018/4/21 22:41
◆ou0jbJnEJ0Kb
その3 ELSEIFを使う。
142行目から176行目、178行目から181行目はELSEIFが使えそうです。
その4 弾が多い
ぱっと見使っている弾は少なそうですが、2フレームに1回@SHOT2を呼び出しているので、結局フルに弾を発射しています。この弾の数で、あれだけ複雑な動きをすれば、処理落ちは避けられないかと思います。
こういち
2018/4/21 22:44
◆ou0jbJnEJ0Kb
その5 SPFUNCを使う。
FORで1つ1つスプライトを動かすより、SPFUNCとCALL SPRITEを使って一斉にスプライトを動かした方が高速だと聞いたことがあります。少しは高速化出来るかもしれません。
以上です。
ぴえぇる
2018/4/22 11:38
◆aulADA6.kObN
SPFUNCを使ってみたらかなり軽くなりました!!
でもこの命令は使うの初めてなので使い方間違ってるかも;;
【YKKN44GX】
コメントを書く
こちらは「プチコン3号」「プチコンBIG」など、
プチコンシリーズ
に関する話題を扱った
コミュニティです
プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
ユーザー登録なしで書き込みができます
秘密の合い言葉は成りすましの防止 (
トリップ機能
)、書き込みの編集時の本人認証に使用します
秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります
normal
happy
like
surprized
frustrated
puzzled
画像
ネタバレ
投稿する
-
WEB PATIO
-