100 SCREEN 0,,256:PRIORITY 4,7 110 LINE (128,0)-(320,160),32767,B 120 SPRWINDOW 129,1,319,159,,0,0 130 ' 140 ' 拡大表示用テクスチャの準備 150 ' 160 FOR I=0 TO 255:P=PALETTE(4,I) 170 PALETTE 10,I,RGB((P/2)AND 15,(P/64)AND 15,(P/2048)AND 15):NEXT 180 SETTEX 0,64,64,256:SETATR 0,1,(0,0,3,0,0,64) 190 OBJATR 1,,0:OBJTYPE 1,1 200 OBJ(1,@XS)=3:OBJ(1,@XP)=224,100 210 ' 220 ' キャラクタの表示&再定義 230 ' 240 FOR I=0 TO 255:PRINT CHR$(I);:NEXT 250 FOR I=0 TO 255:K$=READCHR$(4,I,1):U$="" 260 FOR J=0 TO 63 270 U$=U$+CHR$((J/8+I) AND (ASC(MID$(K$,1+J,1))=15) AND 255) 280 NEXT :SETCHR 4,I,U$:NEXT 290 ' 300 ' メインルーチン 310 ' 320 X=3:Y=3:S=3 330 *MAIN 340 ' ▼ キャラクタBGの内容をテクスチャにコピー 350 FOR I=0 TO 7:FOR J=0 TO 7 360 A=GETCHR(4,(X+J,Y+I)) AND 511 370 A$=READCHR$(4,A/2,1) 380 GCOPY STRW$(2,8)+A$ TO 10,(J*8,I*8):NEXT J,I 390 ' 400 ' キー入力 410 ' 420 P = PAD(0,1) OR PAD(15,1) 430 IF P AND @PAD_UP AND Y>0 THEN Y=Y-1 440 IF P AND @PAD_DOWN AND Y<27 THEN Y=Y+1 450 IF P AND @PAD_LEFT AND X>0 THEN X=X-1 460 IF P AND @PAD_RIGHT AND X<40 THEN X=X+1 470 IF P AND @PAD_A AND S>3 THEN S=S-1 480 IF P AND @PAD_B AND S<16 THEN S=S+1 490 VSYNC :OBJ(1,@XS)=S:GOTO *MAIN