exnewに失敗する(開いたスプライトNoが無い)事が頻発して
妙だなと思ったので質問いたします。
作っていたソースからちょっと切り貼りした変なソースで申し訳ないですが。
(画像は何か適当なのをtest.bmpの名前で用意してください。)
#include "hspdx.as" randomize es_ini ,,256 es_screen 256,224,16,,1,1 width 512,384,0,0 es_cls es_area 0,0,239,223 buffer 3,256,256,0 picload "test.bmp",0 es_buffer 0,0,-1,1 es_size 16,16,100 es_pat 0,16,0,0 es_pat 1,32,0,0 es_pat 2,48,0,0 es_pat 3,60,0,0 move_count=16 move_lock=0 move_dir=0 repeat 15 a=cnt repeat 16 es_exnew b,0,256 es_set b,cnt*16,16*a,rnd(4),1,0 es_type b,2 loop loop *main es_cls 0,0,0 stick ky,$0f gosub *keychk gosub *scroll es_draw ,,,1 es_sync 16 await 0 goto *main *keychk if move_lock==0{ if ky&1 {move_dir=64 :move_lock=1} if ky&4 {move_dir=192:move_lock=1} } if ky&128{es_bye:end} return *scroll if move_lock==1&&move_count==16{ repeat 256 es_adir cnt,move_dir,100 loop } if move_count==0{ move_lock=0:move_count=16 repeat 256 es_adir cnt,move_dir,0 loop } if move_lock==1{move_count--} return
カーソルで左右にスクロールしますが、es_area外に出たスプライトも
削除されること無くスプライトNo、キャラパターンから座標まで
全て保存されているようです。
エリア外に出たスプライトは破棄されて、スプライトNoも
自動的に再使用可能になると認識していましたが、違うのでしょうか?