|
 |
|
2018/7/16(Mon) 01:10:10|NO.84788
;RainBow.as 虹色を使えるようになります made by kuro
/*|---------------------------------------------------------------------------------------------|
| |
| ① RainBowReset ---最初に使用してください |
| |
| |
| ② Raibow p1 |
| |
| p1 = 虹色の変化の速さ(await 16のときに1.0だと丁度いい?) |
| |
| p1の値が大きすぎると虹色にならないので調整してください |
| |
| ③ 虹色の「R」,「G」,「B」の値はそれぞれ、「R@rb」,「G@rb」,「B@rb」に返されます |
| |
|---------------------------------------------------------------------------------------------|*/
#module rb
#deffunc RainBowReset ;虹色をリセット
R=128 : G=0 : B=0
Red=1 ;リセット用
Orange=0
Yellow=0
Green=0
LightBlue=0
Blue=0
Purple=0
Red2=0
Return
#deffunc RainBow double Z_Change_rate ;変化の速さ(調整可)
Passing = 1
R=double(R)
G=double(G)
B=double(B)
Z = 256.0*Z_Change_rate
;-------------------------------------------------------------------;
IF Red=1 { R=R+Z/127 : G=0 : B=0 } ;赤 255,0,0
IF (Red=1)&(R>255) : R=255 :Orange=1 : Red=0 : Return
;-------------------------------------------------------------------;
IF Orange=1 { R=255 : G=G+Z/90 : B=0 } ;橙 255,165,0
IF (Orange=1)&(G>165) : G=165 : Orange=0 : Yellow=1 : Return
;-------------------------------------------------------------------;
IF Yellow=1 { R=255 : G=G+Z/165 : B=0 } ;黄 255,255,0
IF (Yellow=1)&(G>255) : G=255 : Yellow=0 : Green=1 : Return
;-------------------------------------------------------------------;
IF Green=1 { R=R-Z/255*4 : G=G-Z/105 : B=0 } ;緑 0,150,0
IF (Green=1)&(R<0) : R=0
IF (Green=1)&(G<150) : G=150
IF (Green=1)&(R=0)&(G=150) : Green=0 : LightBlue=1 : Return
;-------------------------------------------------------------------;
IF LightBlue=1 { R=0 : G=G+Z/150 : B=B+Z/255*4 } ;水 0,255,255
IF (LightBlue=1)&(G>255) : G=255
IF (LightBlue=1)&(B>255) : B=255
IF (LightBlue=1)&(G=255)&(B=255) :LightBlue=0 : Blue=1 : Return
;-------------------------------------------------------------------;
IF Blue=1 { R=0 : G=G-Z/255*4 : B=255 } ;青 0,0,255
IF (Blue=1)&(G<0) : G=0
IF (Blue=1)&(B>255) : B=255
IF (Blue=1)&(G=0)&(B=255) :Blue=0 : Purple=1 : Return
;-------------------------------------------------------------------;
IF Purple=1 { R=R+Z/128 : G=0 : B=B-Z/127*2 } ;紫 128,0,128
IF (Purple=1)&(R>128) : R=128
IF (Purple=1)&(B<128) : B=128
IF (Purple=1)&(R=128)&(B=128) : Purple=0 : Red2=1 : Return
;-------------------------------------------------------------------;
IF Red2=1 { R=R+Z/127 : G=0 : B=B-Z/128 } ;赤2度目以降
IF (Red2=1)&(R>255) : R=255
IF (Red2=1)&(B<0) : B=0
IF (Red2=1)&(R=255)&(B=0) : Red2=0 : Orange=1 : Return
;-------------------------------------------------------------------;
Return
;=============================================
#global

| |
|
2018/7/16(Mon) 01:11:44|NO.84789
サンプルです
#include "RainBow.as"
X=500
Y=200
screen 0,X,Y,,0,0
RainBowReset
repeat
redraw 0
RainBow 0.5
color R@rb,G@rb,B@rb
Line X-1,-1,X-1,Y
pos 0,0
gcopy 0,1,0,X,Y ;スクロール
await 8
redraw 1
loop
|
|
2018/7/16(Mon) 01:19:05|NO.84790
HSVcolor命令でも似たようなことができますが、緑と青の間隔を調整して、緑をより濃い色にしました
|
|
2018/7/16(Mon) 04:22:01|NO.84791
色の変化具合を正確に揃えました。
虹色の初期の色を255,0,0にしました。
;RainBow.as 虹色を使えるようになります made by kuro(ver.1.0)
/*|---------------------------------------------------------------------------------------------|
| |
| ① RainBowReset ---最初に使用してください |
| |
| |
| ② Raibow p1 |
| |
| p1 = 虹色の変化の速さをp1倍にします |
| |
| p1の値が大きすぎると虹色にならないので調整してください |
| |
| ③ 虹色の「R」,「G」,「B」の値はそれぞれ、「R@rb」,「G@rb」,「B@rb」で取得できます |
| |
|---------------------------------------------------------------------------------------------|*/
#module rb
#deffunc RainBowReset ;最初にRaibowReset命令をしてください
R=255 : G=0 : B=0
Red=1
Orange=0
Yellow=0
Green=0
LightBlue=0
Blue=0
Purple=0
Return
;=============================================
#deffunc RainBow double Change_rate ;変化の速さ(調整可)
R=double(R)
G=double(G)
B=double(B)
;-------------------------------------------------------------------;
IF Red=1 {
R=R+127.0/128*Change_rate
G=0
B=B-1.0*Change_rate
} ;赤 255,0,0
IF (Red=1)&(R>=255)&(B<=0) : R=255 : B=0 : Orange=1 : Red=0 : Return
;-------------------------------------------------------------------;
IF Orange=1 {
R=255
G=G+165.0/128*Change_rate
B=0
} ;橙 255,165,0
IF (Orange=1)&(G>=165) : G=165 : Orange=0 : Yellow=1 : Return
;-------------------------------------------------------------------;
IF Yellow=1 {
R=255
G=G+90.0/128*Change_rate
B=0
} ;黄 255,255,0
IF (Yellow=1)&(G>=255) : G=255 : Yellow=0 : Green=1 : Return
;-------------------------------------------------------------------;
IF Green=1 {
R=R-255.0/128*Change_rate
G=G-105.0/128*Change_rate
B=0
} ;緑 0,150,0
IF (Green=1)&(R<=0) : R=0
IF (Green=1)&(G<=150) : G=150
IF (Green=1)&(R=0)&(G=150) : Green=0 : LightBlue=1 : Return
;-------------------------------------------------------------------;
IF LightBlue=1 {
R=0
G=G+105.0/128*Change_rate
B=B+255.0/128*Change_rate
} ;水 0,255,255
IF (LightBlue=1)&(G>=255) : G=255
IF (LightBlue=1)&(B>=255) : B=255
IF (LightBlue=1)&(G=255)&(B=255) :LightBlue=0 : Blue=1 : Return
;-------------------------------------------------------------------;
IF Blue=1 {
R=0
G=G-255.0/128*Change_rate
B=255
} ;青 0,0,255
IF (Blue=1)&(G<=0) : G=0
IF (Blue=1)&(B>=255) : B=255
IF (Blue=1)&(G=0)&(B=255) :Blue=0 : Purple=1 : Return
;-------------------------------------------------------------------;
IF Purple=1 {
R=R+1.0*Change_rate
G=0
B=B-1.0*Change_rate
} ;紫 128,0,128
IF (Purple=1)&(R>=128) : R=128
IF (Purple=1)&(B<=128) : B=128
IF (Purple=1)&(R=128)&(B=128) : Purple=0 : Red=1 : Return
;-------------------------------------------------------------------;
Return
;=============================================
#global

| |
|