SMILE BASIC 小技(7)
テキストの表示デモの例。
昔からある技をSMILE BASICで焼き直したもの。
他にもたくさんあったと思うが、基本的なものを書いた。
今回は長いので公開キーで。
【D3KKXJAX】
1.ターミナル風 ■を付けて表示する基本型。
FOR I=0 TO LEN(T$)-1 LOCATE X+I,Y:PRINT MID$(T$,I,1);"■"; WAIT 2 NEXT WAIT 30 LOCATE X+I,Y:PRINT " ";
2.真ん中から表示する 文字数が奇数/偶数を考慮する。
M1=FLOOR(LEN(T$)/2-0.5) M2=LEN(T$) DIV 2 FOR I=0 TO FLOOR(LEN(T$)/2-0.5) LOCATE X+M1-I,Y:PRINT MID$(T$,M1-I,1); LOCATE X+M2+I,Y:PRINT MID$(T$,M2+I,1); WAIT 5 NEXT
3.電光掲示板風 長い文字列の一部を場所を変えながら取る。
W=20 FOR I=0 TO LEN(T$)+W*2-1 LOCATE X,Y PRINT MID$(" "*W+T$+" "*W,I,W) WAIT 3 NEXT
4.泡のように現れる 「.oO」を連続するとアニメっぽく見える。
FOR I=0 TO LEN(T$)-1 REPEAT R=RND(LEN(T$)) UNTIL CHKCHR(X+R,Y)==0 LOCATE X+R,Y:PRINT "."; WAIT 3 LOCATE X+R,Y:PRINT "o"; WAIT 3 LOCATE X+R,Y:PRINT MID$(T$,R,1); WAIT 3 NEXT
5.回転しているように見える 「O|」で回転ぽく見える。
FOR I=0 TO 20 LOCATE X,Y ATTR 4*(I MOD 4==2) PRINT T$*(I MOD 2==0)+"|"*LEN(T$)*(I MOD 2==1); WAIT 12 NEXT ATTR 0
6.明るくなって消える 点灯の間隔で明度を表す。
FOR I=0 TO 80 LOCATE X,Y PRINT T$ WAIT 5-MIN(25,ABS(40-I)) DIV 5 LOCATE X,Y PRINT " "*T$ WAIT MIN(25,ABS(40-I)) DIV 5 NEXT
(番外)6.のGPUTCHR版 色で指定した方がクオリティが高い。
FOR I=0 TO 80 L=MIN(255,400-ABS(40-I)*10) GPUTCHR X*8,Y*8,T$,RGB(L,L,L) WAIT 5 NEXT