You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
2.9 KiB
146 lines
2.9 KiB
startshape Scene
|
|
|
|
CF::Impure = 1
|
|
//CF::Background = [b -0.8 sat 1 h 200]
|
|
CF::Background = [b -0.8]
|
|
CF::Size = [s 3]
|
|
|
|
//random variable that controls how straight the path is
|
|
bend = -5..-1
|
|
|
|
shape Scene {
|
|
// Storm
|
|
Path(29.5,0,160..200,0) [s (1/60)]
|
|
|
|
// Square
|
|
//loop 10 [s 0.998 a -0.2] Frame [s 0.5 z 1000 b 1 sat 0.4 h 180]
|
|
loop 10 [s 0.998 a -0.2] Frame [s 0.5 z 1000 b 0.96 sat 0.81 h 38]
|
|
|
|
|
|
// Outer square
|
|
//loop 10 [s 1.003 a -0.2] Frame [s 0.5 z 1000 b 1 sat 0.4 h 180]
|
|
loop 10 [s 1.003 a -0.2] Frame [s 0.5 z 1000 b 0.96 sat 0.81 h 38]
|
|
|
|
// Backgroud glow
|
|
//Glow []
|
|
}
|
|
|
|
path Frame
|
|
{
|
|
MOVETO(1,1)
|
|
LINETO(-1,1)
|
|
LINETO(-1,-1)
|
|
LINETO(1,-1)
|
|
CLOSEPOLY()
|
|
STROKE(0.01) []
|
|
}
|
|
|
|
shape Path (number px, number py, number pr, number idx)
|
|
rule 4000 {
|
|
|
|
// number of steps to take
|
|
if (idx < 2000) {
|
|
if (max(abs(px),abs(py)) < 30 ) {
|
|
|
|
//change the values in rand to
|
|
//alter the behaviour of the beam
|
|
|
|
Path( px + cos(pr), py + sin(pr), pr + rand(bend,2), idx + 1 ) []
|
|
|
|
// glowing beam
|
|
transform [x px y py r pr ] {
|
|
loop 10 [s 1 1.5 a -0.4] SQUARE [
|
|
// notranje strele
|
|
b 0.96 sat 0.81 h 38 s 0.85 0.08]
|
|
//b 1 sat 0.4 h 180 s 0.85 0.08]
|
|
}
|
|
|
|
}
|
|
else {
|
|
Flash[x px y py z 1 s 1.5]
|
|
|
|
//detect which edge we have crossed and reflect
|
|
if (px > 30) {
|
|
Path(px/1.004 - cos(pr), py+sin(pr), 180-pr, idx +1) []
|
|
Lightning [ x px y py r -5..5]
|
|
}
|
|
if (px < -30) {
|
|
Path(px/1.004 - cos(pr), py+sin(pr), 180-pr, idx +1) []
|
|
Lightning [[ x px y py r -5..5 r 180]]
|
|
}
|
|
if (py > 30) {
|
|
Path(px + cos(pr), py/1.004 - sin(pr), pr*-1, idx +1) []
|
|
Lightning [[ x px y py r -5..5 r 90]]
|
|
}
|
|
if (py < -30) {
|
|
Path(px + cos(pr), py/1.004 - sin(pr), pr*-1, idx +1) []
|
|
Lightning [[ x px y py r -5..5 r -90]]
|
|
}
|
|
}
|
|
}
|
|
// done iterating, draw the particle!
|
|
else { Flash[[ x px y py z 1 r pr s 1.5 0.4 ]] }
|
|
}
|
|
|
|
// Pike na kvadratu
|
|
shape Flash{
|
|
loop 10 [s 1.4 a -0.4]
|
|
//CIRCLE[b 1 sat 0.4 h 180 s 0.6..1]
|
|
CIRCLE[b 0.96 sat 0.81 h 38 s 0.6..1]
|
|
}
|
|
|
|
shape Lightning
|
|
rule 10{
|
|
LightningUnit []
|
|
Lightning [x 1]
|
|
Glow2 [s 2 a -0.5]
|
|
}
|
|
rule 1.5 {
|
|
Lightning[r 30..45]
|
|
Glow2 [s 4 a -0.5]
|
|
}
|
|
rule 1.5 {
|
|
Lightning[r -30..-45]
|
|
Glow2 [s 4 a -0.5]
|
|
}
|
|
rule 1 {
|
|
// s 0.6 normally
|
|
Lightning[r 20..45 s 0.6 0.8 a -0.5]
|
|
Lightning[r -20..-45 s 0.4 0.8 a -0.5]
|
|
Glow2 [s 4 a -0.5]
|
|
}
|
|
|
|
|
|
// Strele zunaj
|
|
shape LightningUnit {
|
|
loop 20 [s 1 1.1 a -0.2]
|
|
//SQUARE [b 1 sat 0.4 h 180 s 0.89 0.1 x 0.5]
|
|
SQUARE [b 0.96 sat 0.81 h 38 s 0.89 0.1 x 0.5]
|
|
}
|
|
|
|
|
|
shape Glow {
|
|
loop 30 [s 0.97 a -0.04 ]
|
|
//CIRCLE [s 2.3..2.5 x -0.1..0.1 y -0.1..0.1 b 1 sat 0.6 h 180 a -0.97]
|
|
CIRCLE [s 2.3..2.5 x -0.1..0.1 y -0.1..0.1 b 0.96 sat 0.81 h 38 a -0.97]
|
|
}
|
|
|
|
shape Glow2 {
|
|
loop 5 [s 0.7 a -0.4 ]
|
|
//CIRCLE [s 2.3..2.5 x -0.1..0.1 y -0.1..0.1 b 1 sat 0.4 h 180 a -0.99]
|
|
CIRCLE [s 2.3..2.5 x -0.1..0.1 y -0.1..0.1 b 0.96 sat 0.81 h 38 a -0.99]
|
|
}
|
|
|
|
|
|
// BNR AKL ABD VFF VFJ VFL VFP
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|