はじめまして、グラ○マニといいます。
【サンプルの使用上の注意】として、「必ずスクリプトを理解したうえでご使用下さい。」 と、以前管理人さんがおっしゃってました(ちなみに、過去ログにありますよ。)
過去ログ検索が出来ないので探すのも面倒くさいでしょうから、回答の方いってみましょうか...。(笑)
「時々自機の弾が消えます」と、evoRさんは書かれていますよね。 空きスプライトを取得したあとに、このスクリプト(<自機の弾発射設定スクリプト>参照)では スプライトの登録をしてありませんよね? もう、わかりましたね...スプライトを登録して下さい。
; 空きスプライト取得 es_new spno, 50 Spriteno_Shot. a = spno es_set spno, x, y, chara <-------------------- スプライト登録。
<自機の弾発射設定スクリプト> ------------------------------------------------------------------ *Set_Shot if Fshot > 0 { Fshot - : goto *EXIT_Set_Shot } ; ショット発射間隔 Fshot = Max_Fshot
; SHOT出現チェック! a = -1 repeat 29 if Flag_Shot. cnt = 0 { a = cnt : break } ; 移動中以外のショットを探す loop if a = -1 { goto *EXIT_Set_Shot } ; a=-1の場合、全てのショットが発射中である。
; SHOT設定 Shotx. a = x : Shoty. a =( y + 16 ) ; 座標 Shottime. a = 1 ; Flag_Shot. a = 1 ; 出現フラグ
; 空きスプライト取得 es_new spno, 50 Spriteno_Shot. a = spno
*EXIT_Set_Shot return ;------------------------------------------------------------------ > この自機の弾のスクリプトにバグがあるのでしょうか? バグではないようです。x68kさんが、作られた「罠」です。(笑) 他のサンプルも、いくつかこの「罠」がしかけられています。調べてみるのも面白いかも…。
※「罠」と書きましたが、危ないものだと勘違いされる場合もありますので、「問題」と修正して下さい。 ※x68kさんが、質問者さんにさりげなく問題を出されておられるのです。 ※ちなみに、スクリプトのコメント(説明)は、あてにしない方がいいらしいです。参考程度に...。
|