空き時間があったので書いてみました。
あまり上手いサンプルじゃないかもしれませんし、
このままゲームには使えないと思いますが、
研究の参考にでもしてみてください。
width 300,240
//読み込み
notesel map:noteload "mapdata.txt"
getstr tmp,map,0;最初の改行コードまでを切り出す
マップ幅 =strlen(tmp);切り出した文字列の長さから、マップの横幅を知る
マップ長=strlen(map);マップ全体の長さを知る
dim マップ,マップ長+1;その分の配列を確保
repeat マップ長
マップ(cnt)=peek(map,cnt)-48;マップを配列に写し取る。
loop
// ↑ マップ配列準備完了
//
buffer 1,30,60;マップチップ格納用バッファ確保
pos 0,0:picload "./mapcip/1.bmp",1
pos 0,30:picload "./mapcip/2.bmp",1;バッファにマップチップをロード
dim tip_offset,2;マップのコード最大数まで確保
tip_offset(1)=0;マップコード1はバッファの一番上に格納されている。
tip_offset(2)=30;コード2は、上から30ドットの所に格納されている。
gsel 0;画面制御をバッファからメインスクリーンに戻す。
//
//
表示幅=10
表示高=8
//
//
//マップの表示
redraw 0; 表示更新OFF
repeat 表示高:tmpy=cnt:tmpy2=cnt*(マップ幅+2)
;tmpy2は、マップ配列の場所を求めるため。
;幅に+2しているのは、改行コード分。
repeat 表示幅:tmpx=cnt
マップデータ=マップ(tmpy2+tmpx)
pos tmpx*30,tmpy*30
gcopy 1,0,tip_offset(マップデータ),30,30
;マップチップバッファから、チップをコピーして描画
loop
loop
redraw 1; 表示更新ON
await 10; ウエイトを入れる。
stop
///////////////////////