ひまわりユーザー プログラム掲示板 バックアップ
注意
ひまわりのススメ  □ ひまわり本家Home  □ 新着記事  □ 新規投稿  □ SEARCH  □ 参考プログラム集
ツリー表示

MESSAGE レイトレ改造版 / クジラ飛行机(2001/12/30(Sun) 12:47 ) [3]
......MESSAGE Re[1]: レイトレ改造版 /北神 陽太 (2001/12/31(Mon) 14:23) [7]
......MESSAGE グラデーションボール /クジラ飛行机 (2001/12/31(Mon) 16:27) [9]
......MESSAGE ひまわりでスクリーンセーバー /moka (2002/01/02(Wed) 12:51) [21]
......MESSAGE グラデボールその2:玉の数を増やした /クジラ飛行机@作者(win98-Aptiva) (2002/01/02(Wed) 16:44) [27]


親記事 / ▼[7] ▼[9] ▼[21] ▼[27]
NO.3  レイトレ改造版
□投稿者/ クジラ飛行机-(2001/12/30(Sun) 12:47:04)
□U R L/
先日、意見交換用の掲示板に、北神さんが投稿した、
レイトレのプログラムを、ちょっと改造して、もうちょっと
高速に動くようにしました。

ひまわりで一番処理に時間がかかるのは、描画処理なので、
「待つ」のウェイトを、やめて、円を描き終えるまで、
描画処理を行わず、最後に円を描くようにしました。
描画処理反映の場所を変更すると、また違った感じになりますね。

’==========================
母艦の、サイズは、(188,152,828,533)。
その、背景色は、黒色。

-1で、乱数初期化。
(828/2)の、乱数。x=それ。
(533/2)の、乱数。y=それ。
xs=1。ys=1。
ペン太さ=1。
色設定を、呼ぶ。

*ループ
 もし、x>(828/2) ならば、(xs=-1。色設定を、呼ぶ。)
 もし、y>(533/2) ならば、(ys=-1。色設定を、呼ぶ。)
 もし、x<64 ならば、(xs=1。色設定を、呼ぶ。)
 もし、y<64 ならば、(ys=1。色設定を、呼ぶ。)
 x=x+xm。y=y+ym。
 R=RB。G=GB。B=BB。

 32回(
  R=R+7。G=G+7。B=B+7。
  ペン色=RGB(R,G,B)。塗り色=RGB(R,G,B)。
  z=32-回数
  (x-z,y-z)から、(x+z,y+z)へ、円形。
   )
   描画処理反映。
)
ループへ、飛ぶ。

*色設定
 2の、乱数。RB=それ*32
 2の、乱数。GB=それ*32
 2の、乱数。BB=それ*32
 20の、乱数。xm=(それ+10)*xs
 20の、乱数。ym=(それ+10)*ys
戻る。



▲[3] / 返信無し
NO.7  Re[1]: レイトレ改造版
□投稿者/ 北神 陽太 -(2001/12/31(Mon) 14:23:29)
□U R L/
 レイトレではなくレイトレ風です。本物のレイトレは、移植を試みてもいのですが、MSX並に遅いです。
 描画処理反映というのが、できるのを知りませんでした。(refresh)なお、背景色に塗りつぶしを使わないモードがあると、もっと速くなります。
 今ひとつわからないのが、母艦のサイズとグラフィック座標の関係です。なぜ約2倍なんでしょうか?



▲[3] / 返信無し
NO.9  グラデーションボール
□投稿者/ クジラ飛行机 -(2001/12/31(Mon) 16:27:33)
□U R L/
プログラムの名前変えました。

>今ひとつわからないのが、母艦のサイズとグラフィック座標の関係です。
>なぜ約2倍なんでしょうか?

別に、2倍では、ありません。
母艦の、サイズ指定は、(x1,y1 x2,y2)と、いうことで、
2点の座標を指定する方法です。

以下、2倍にするのをやめ、ちょっとエフェクトなんぞ掛けてみました。
'================================
母艦の、サイズは、(0,0,800,600)。
その、背景色は、黒色。

-1で、乱数初期化。
800の、乱数。x=それ。
600の、乱数。y=それ。
sp=20
xs=sp。ys=sp。
ペン太さ=1。
'色設定を、呼ぶ。

*ループ
 もし、x>750 ならば、(xs=-1 * sp。色設定を、呼ぶ。)
 もし、y>550 ならば、(ys=-1 * sp。色設定を、呼ぶ。)
 もし、x<50 ならば、(xs=sp。色設定を、呼ぶ。)
もし、y<50 ならば、(ys=sp。色設定を、呼ぶ。)
 x=x+xs+乱数(10)-5。
y=y+ys+乱数(10)-5。
 R=RB。G=GB。B=BB。
 32回(
  R=R+14。G=G+14。B=B+14。
  ペン色=RGB(R,G,B)。塗り色=RGB(R,G,B)。
  z=32-回数
  (x-z,y-z)から、(x+z,y+z)へ、円形。
   )
   描画処理反映。
)
ループへ、飛ぶ。

*色設定
 2の、乱数。RB=それ*32
 2の、乱数。GB=それ*32
 2の、乱数。BB=それ*32
ランタイムのパス&`tools\n.wav`を、演奏。
もし、乱数(4)=0ならば、母艦を、20度、画像ぼかす。
戻る。





▲[3] / 返信無し
NO.21  ひまわりでスクリーンセーバー
□投稿者/ moka -(2002/01/02(Wed) 12:51:46)
□U R L/ http://www.geocities.jp/moka21/teatime/
レイトレやMSXってのがもう知らない領域です。(^_^;)

母艦最大化して、大きな画面で動くように改造しましたが、
タイトルバーやタスクバーを非表示にできれば、
スクリーンセーバーとして使えそうですね。
そういうことが出来る命令などは実装されないでしょうか?



▲[3] / 返信無し
NO.27  グラデボールその2:玉の数を増やした
□投稿者/ クジラ飛行机@作者(win98-Aptiva) -(2002/01/02(Wed) 16:44:57)
□U R L/
> 母艦最大化して、大きな画面で動くように改造しましたが、
> タイトルバーやタスクバーを非表示にできれば、
> スクリーンセーバーとして使えそうですね。
> そういうことが出来る命令などは実装されないでしょうか?

次のバージョンで、母艦全画面化というのをつけました。
これで、タイトルバーが隠れるようになるはずです。
さて、今度は、ボールの数を複数個にしてみました。
ちょっと気持ち悪いです。

'===================================================================
'グラデーションボール2
'母艦全画面化。
母艦の,サイズは、(0,0,デスクトップの幅,デスクトップの高さ)
WW=母艦の、幅 'キャンパスの幅
HH=母艦の、高さ 'キャンパスの高さ
玉の速度=20
酔っ払い度=20
玉の数=10

白色で、画面クリア。
母艦の、キー押した時は、おわり。
母艦の、マウス押した時は、おわり。

-1で、乱数初期化。
Iを、0から、(玉の数-1)まで、繰り返す(
   x#I = 乱数(WW)
   y#I = 乱数(HH)
   sp#I = 乱数(玉の速度)+玉の速度÷2
   xs#I = 乱数(2);もし、xs#I=0ならば、xs#I=-1
   ys#I = 乱数(2);もし、ys#I=0ならば、ys#I=-1
   色設定
)
ペン太さ = 1。
div2 = 酔っ払い度÷2

CNT = 0
*ループ
Iを、0から、(玉の数-1)まで、繰り返す(

 もし、x#I>WW ならば、(xs#I=-1。色設定を、呼ぶ。)
 もし、y#I>HH ならば、(ys#I=-1。色設定を、呼ぶ。)
 もし、x#I<0 ならば、(xs#I=1。色設定を、呼ぶ。)
もし、y#I<0 ならば、(ys#I=1。色設定を、呼ぶ。)

   RX = 乱数(酔っ払い度)-div2
   RY = 乱数(酔っ払い度)-div2

 x#I=x#I+xs#I*sp#I+RX
y#I=y#I+ys#I*sp#I+RY
R=RB#I。G=GB#I。B=BB#I。

 'noise
(x#I,y#I)へ、移動。
(1+乱数(3))回(
   RX = 乱数(酔っ払い度)-div2
   RY = 乱数(酔っ払い度)-div2
   RC = 乱数(100)
   ペン色=RGB(R+RC,G+RC,B+RC)。
   (x#I+RX*10,y#I+RY*10)へ、線。
)
 'ceicle
 4回(
  R=R+32。G=G+32。B=B+32。
  ペン色=RGB(R,G,B)。塗り色=RGB(R,G,B)。
  z=32-(回数-1)*8
  (x#I-z,y#I-z)から、(x#I+z,y#I+z)へ、円形。
 )
)
CNT=CNT+1
もし、CNT%5=0ならば、母艦を、10度、明るさ補正。
描画処理反映。
ループへ、飛ぶ。

*色設定
 RB#I=乱数(64)
 GB#I=乱数(64)
 BB#I=乱数(64)
もし、乱数(玉の数)=0ならば、ランタイムのパス&`tools\b.wav`を、演奏。
戻る。




- Child Tree -