投稿
文字が上から下に降りてきて途中で止まるようにするにはどうプログラムしたらいいですか?
3そうだね
プレイ済み
返信[1]
親投稿
方法は本当にいろいろありますが、ひとつの例としては、こんなかんじでも書けます。 ' I を 0から14まで繰り返す FOR I=0 TO 14 ' 画面を消す CLS:GCLS ' 22,IのところにPRINTする座標を設定する LOCATE 22,I ' "HOGE!"とかく PRINT "HOGE!" ' 画面更新 VSYNC NEXT ' ここまで繰り返し
1そうだね
プレイ済み
返信[2]
親投稿
動かすのを示しているのはどこですか?
0そうだね
プレイ済み
返信[3]
親投稿
りゅう uramino
このプログラム、実は「動かす」ということをしていなくて、 「前書いた文字を消して、次の行に文字を書く」ということを繰り返しています。 こうすることで、文字がアニメーションしているように見せているわけですね。
0そうだね
プレイ済み
返信[4]
親投稿
ウゴメモ的な感じですか?
0そうだね
プレイ済み
返信[5]
親投稿
そのプログラムではFOR文とLOCATEで動きを表しています。 まずFOR文の働きを説明します。 FOR I=0 TO 14 PRINT "A" NEXT これは下のプログラムとほぼ動きをします。 I = 0 @LOOP PRINT "A" I=I+1 IF I <=14 THEN GOTO @LOOP I が 0→1→2→3→・・・→14 とカウントアップしていくのです。ということは、このIを座標に使うことで文字を動かせるようになりそうですよね。
0そうだね
プレイ済み
返信[6]
親投稿
そこで次に LOCATE 22, I でこれは、次にPRINTする座標を設定する命令です。この例では 22, I の座標にPRINTします。 Iはループが回るたびにカウントしていきますから、 LOCATE 22, 0 → LOCATE 22, 1 → LOCATE 22, 2 → LOCATE 22, 14 と座標が変化していくので徐々にしたに文字が描画されるようになります。 これを画面を消しながら繰り返すと、あたかも動いているように見えるわけです。
0そうだね
プレイ済み
返信[7]
親投稿
りゅう uramino
そんな感じです! 文字を本当に「動かして落とす」という風なことは、絵関係の命令で出来なくもないんですが、使える文字が限られていて、ない分は自作しなきゃいけないので大変です。 この文字の動かし方を色々考えていくと、あとあと何かと便利ですよ! あと、FOR文の14のところを色々変えると、落ちる距離が色々変わります。
0そうだね
プレイ済み
返信[8]
親投稿
原始的な方法でひとこまずつやってみます……… 親切に教えてくれたのにすいませんでした
1そうだね
プレイ済み
返信[9]
親投稿
最初は自分の出来る方法でやるのが正解です。 少しずつ何かを覚えていけば、出来る方法が少しずつ増えていきますよ!
0そうだね
プレイ済み