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



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.99898への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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