読者です 読者をやめる 読者になる 読者になる

プチコンで遊ぼう! (はてなブログ版)

任天堂3DSのプチコンで遊ぼう! [twitter:@eida_s]

はてなダイアリーから移行しました。 はてなダイアリーのURLを開いても自動的にこちらにリダイレクトされますのでご了承ください。

SMILE BASIC 小技(7)

プチコン3号

テキストの表示デモの例。
昔からある技を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