HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2023
0812
ワカバ円が上からランダムに降ってくるプログラム3未解決


ワカバ

リンク

2023/8/12(Sat) 22:29:39|NO.99898

repeat 30
a=rnd (640)
b=rnd (480)
color rnd (256),rnd(256),rnd(256)
circle a,b,a+20,b+20
wait 10
loop

上のように30個の円を描画しきったあと、その円を1ずつ下に移動させたいです。
どのようにすればいいですか?

また
円を描画しきった後から45秒間、上から円をランダムに描画することで、
常に、1画面の中の円が30〜40個になるようにしたいです。



この記事に返信する


ze-na

リンク

2023/8/13(Sun) 07:15:11|NO.99901

>ワカバ さん

>上のように30個の円を描画しきったあと、その円を1ずつ下に移動させたいです。
>円を描画しきった後から45秒間、上から円をランダムに描画することで、
>常に、1画面の中の円が30〜40個になるようにしたいです。

元のスクリプトの後に以下のスクリプトを追加することで上記を実現出来ます。
ただし、これは背景画像のスクロールなどで利用する手法ですので、
丸1つ1つに処理を行うなどであれば別な手法が必要となります。


//画面0を裏画面1にコピー buffer 1 gcopy 0,0,0,640,480 c=0 //45秒間下に丸を動かす repeat 450 gsel 1 c++ //1.5秒毎に丸を描く if c=15{ c=0 a=rnd (640) color rnd (256),rnd(256),rnd(256) circle a,0,a+20,20 } //裏画面1を下に1下げる pos 0,1 gcopy 1,0,0,640,480 //動きを見るため灰色で1ライン color 240,240,240 line 0,0,640,0 //画面0に裏画面1を表示する gsel 0 gcopy 1,0,0,640,480 wait 10 loop



ワカバ

リンク

2023/8/13(Sun) 09:59:58|NO.99906

回答ありがとうございます。
丸一つ一つに座標を持たせて個別に処理したいです。
配列…ですかね?
配列苦手で…
dim a,30
dim b,30
for i,0,29,1
a(i)=rnd(640)
b(i)=rnd(480)
loop

for i,0,29,1
circle a(i),b(i),a(i)+20,b(i)+20
loop
wait 10
こんな感じではないですか?



ze-na

リンク

2023/8/13(Sun) 15:29:02|NO.99909

>ワカバ さん

>丸一つ一つに座標を持たせて個別に処理したいです。
>こんな感じではないですか?

個別に処理するのであればワカバさんのスクリプトの通り配列を使用します。

さらに表示色も配列にして画面外になったら丸を追加するスクリプトを追加すると
以下のようになります。randomizeやrgbcolorを使っても良いかもです。

dim a,30 dim b,30 dim rr,30 dim gg,30 dim bb,30 for i,0,29,1 a(i)=rnd(640) b(i)=rnd(480) rr(i)=rnd(256) gg(i)=rnd(256) bb(i)=rnd(256) next s=0 *main //画面のクリア color 255,255,255 boxf for i,0,29,1 b(i)++ //丸が画面外なら丸を追加 if b(i)>480{ b(i)=-rnd(60)-20 a(i)=rnd(640) rr(i)=rnd(256) gg(i)=rnd(256) bb(i)=rnd(256) } color rr(i),gg(i),bb(i) circle a(i),b(i),a(i)+20,b(i)+20 next wait 10 s++ //45秒経過で終了 if s<450:goto *main



ONION software Copyright 1997-2023(c) All rights reserved.