REM 944BASIC 's n o w' FASTTICK 3 DN=1 :REM 落下係数 DIM S(2)='4','3','2' :REM 降下ドット数 MAX=48 :REM 雪の個数 XMIN=0: YMIN=0 :REM 左上角の座標 XMAX=238: YMAX=318:REM 右下角の座標 REM 画面を小さくする場合、たとえば REM MAX=24 :REM 雪の個数 REM XMIN=20: YMIN=80 :REM 左上角 REM XMAX=220: YMAX=180:REM 右下角 SETPAGE 0 COLORFG 0,0,0 BOXFILL XMIN,YMIN,XMAX+1,YMAX+1 REM 背景画像を表示する場合 REM SETPAGE 2:JPEG 'KALWRNS1.JPG',240,0 REM SPRITE 255,255,1, 0,0, 240,0, 240,320 REM REFRESH 0,0,0,0,240,320 SETPAGE 2 COLORBG 0,0,0: CLS GOSUB *DRAWSNOW DIM X(MAX) DIM Y(MAX) FOR I=1 TO MAX X(I)=RNDRG(XMIN+1,XMAX) Y(I)=RNDRG(YMIN+1,YMAX-20) X=(I+2)%3 SPRITE I,I,1, X(I),Y(I), 1+X*3,1,3,3 NEXT I REFRESH XMIN,YMIN,XMIN,YMIN,XMAX+2-XMIN,YMAX+2-YMIN *LOOP SYNC FOR I=1 TO MAX A=RNDRG(-1,1) B=DN*S((I+2)%3)+RNDRG(-1,1) X(I)=X(I)+A Y(I)=Y(I)+B IF X(I)>=XMAX THEN X(I)=X(I)-6 IF X(I)<=XMIN THEN X(I)=X(I)+3 SPRITE I,I,1, X(I),Y(I) IFBLK Y(I)>=YMAX X(I)=RNDRG(XMIN+1,XMAX) Y(I)=RNDRG(YMIN+1,YMIN+12) ENDIF NEXT I DN=DN+PADY*0.2 REFRESH XMIN,YMIN,XMIN,YMIN,XMAX+2-XMIN,YMAX+2-YMIN GOTO *LOOP *DRAWSNOW REM 雪の描画 REM R=224: G=208: B=240 R=192: G=176: B=208 FOR I=0 TO 2 X=2+I*3:Y=2 COLORFG R-I*48,G-I*48,B-I*48 BOXCIRCLE X-1,Y-1,X+1,Y+1 COLORFG R-(96+I*24),G-(96+I*24),B-(96+I*24) PSET X-1,Y-1: PSET X+1,Y+1 PSET X+1,Y-1: PSET X-1,Y+1 COLORFG R-I*32,G-I*32,B-I*32 PSET X,Y NEXT I RETURN