前回作ったパックマンっぽいゲームを改良して、モンスターを追加してみました。
全部で1796バイトです。あと200バイトくらいしか残ってません。
DIM D(20):DIM M(14):DIM T(4) DIM X1(4):DIM Y1(4) X1(0)=0:Y1(0)=-1 X1(1)=1:Y1(1)=0 X1(2)=0:Y1(2)=1 X1(3)=-1:Y1(3)=0 D(0)=&B1001 D(1)=&B1001 D(2)=&B1111 D(3)=&B0110 D(4)=&B0111 D(5)=&B1100 D(6)=&B1100 D(7)=&B0111 D(8)=&B0110 D(9)=&B1111 D(10)=&B1001 D(11)=&B1001 D(12)=&B1010 D(13)=&B0011 D(14)=&B0011 D(15)=&B1110 D(16)=&B0110 D(17)=&B1111 D(18)=&B1111 D(19)=&B0110 FOR I=0 TO 15 D(I)=D(I)<<12 NEXT M( 0)= &B111111111111111 M( 1)= &B100000000000001 M( 2)= &B101111101111101 M( 3)= &B101000000000101 M( 4)= &B101011111110101 M( 5)= &B101010000000001 M( 6)= &B100010111010101 M( 7)= &B100000000010101 M( 8)= &B101011111110101 M( 9)= &B101000000000101 M(10)= &B101111101111101 M(11)= &B100000000000001 M(12)= &B111111111111111 M(13)=0 T(0)=&B0110<<12 T(1)=&B1001<<12 T(2)=&B1001<<12 T(3)=&B1111<<12 *START CLS FOR J=0 TO 12 STEP 2 FOR I=0 TO 14 STEP 2 X=I/2*5 Y=J/2*5 IF &H4000>>I AND M(J+1) THEN LINE X,Y,X,Y+5,1 ENDIF IF &H2000>>I AND M(J) THEN LINE X,Y,X+5,Y,1 ENDIF NEXT NEXT DT=0 FOR J=0 TO 5 FOR I=0 TO 6 PSET I*5+2,J*5+2,1 DT=DT+1 NEXT NEXT X=16:Y=1:H=3:BITMAP D(H*4),X,Y,4,2 W=16:V=26:H2=2:BITMAP T,W,V,4,2 C=0:B=0 WHILE DT BITMAP D(H*4),X,Y,4,2 IF C THEN X=X+X1(H):Y=Y+Y1(H) C=C-1 ELSE I=X+1:J=Y+1 IF POINT(I,J) THEN DT=DT-1:PSET I,J,0 IF SW=0 THEN K=H ELSE IF SW AND 1 THEN K=0 IF SW AND 8 THEN K=1 IF SW AND 2 THEN K=2 IF SW AND 4 THEN K=3 ENDIF I=X:J=Y GOSUB *KABECK IF KABE=0 THEN H=K:C=5 ENDIF BITMAP D(H*4),X,Y,4,2 IF B THEN BITMAP T,W,V,4,2 W=W+X1(H2):V=V+Y1(H2) BITMAP T,W,V,4,2 B=B-1 ELSE K=H2:I=W:J=V IF RND % 4 THEN IF RND % 2 THEN K=1:IF W>X THEN K=3 ELSE K=2:IF V>Y THEN K=0 ENDIF ELSE IF RND % 2 THEN K=RND % 4 ENDIF GOSUB *KABECK IF KABE=0 THEN H2=K:B=5 ENDIF REM WEND FOR I=0 TO 3000 NEXT GOTO *START *KABECK J=J/5*2+1+Y1(K) I=I/5*2+1+X1(K) KABE= &H4000 >> I AND M(J) RETURN
BITMAPの新機能を使ってます。
まだモンスターの当たり判定はありません。