トピック
とるて alulu-ami157

DATAを使ったマップの製作(?)

自分で指定した記号を書くと、スプライトやBGとして画面に表示される。 これってどういう仕組みなんですかね? DATAがあるんでそれを使ってると思うんですけど… 詳しく訊いてみたいなぁ(チラチラ 相変わらずの文章力。
7そうだね
プレイ済み
返信[1]
親投稿
つばさ☆ nsm2116
FORとREADを組み合わせてる。 READで取得した文字列をIFで判定するんだよーん。 FOR Y=0 TO 高さ READ MAP$ FOR X=0 TO 横 IF MAP$[X]=="?" THEN BL=1 ELSE BL=0 ENDIF BGPUT 0,X,Y,BL NEXT NEXT でDATAのなかに?があればBG番号1を配置する。あと知ってると思いますが配列宣言はしなくていいです。文字列の長さを指定しているだけです。
2そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
INSTR関数で文字列の中から任意の文字が何個目にあるか 検索することができます。この関数を利用すると自分が指定した 記号が何番なのか取得できます。 A=INSTR("■HG□",C$) これを元にBGのキャラ番号を取得できるように配列変数にキャラ番号を 入れておけばBGPUT命令で DIM BGC[4] COPY BGC,@BGCDATA @BGCDATA DATA 416,873,864,416
3そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
RESTORE @MAPDATA:Y=0 REPEAT READ D$: IF D$=="@END" THEN BREAK FOR X=0 TO LEN(D$)-1  C=INSTR("□HG■",MID$(D$,X,1) IF C!=-1 THEN BGPUT 0,X,Y,BGC[C] NEXT:Y=Y+1 UNTIL FALSE @MAPDATA DATA "■■■■■■■■■■■" DATA "■□□□□■□□□G■" DATA "■□■■□□□■■□■" DATA "■H□□□■□□□□■" DATA "■■■■■■■■■■■" DATA "@END"
3そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
【訂正】 >入れておけばBGPUT命令で 利用できます。が抜けていました。 > C=INSTR("□HG■",MID$(D$,X,1) 末尾の括弧が抜けてました。 正しくはC=INSTR("□HG■",MID$(D$,X,1))です。
0そうだね
プレイ済み
返信[5]
親投稿
とるて alulu-ami157
ありがとうございまぁぁす!!
2そうだね
プレイ済み