7 2D Effekte - von Valio von Valio
einige schöne, interessante und vieleicht auch nützliche 2D Effekte.




[code:1:a0271e86ae]
;------------Initialize------------
Maxx=640
Maxy=480
Graphics Maxx,Maxy
SetBuffer BackBuffer()
SeedRnd MilliSecs()

;------------Demo1------------
ox=320
oy=240
For a=0 To 255
Color a,a,a
x=Rnd(Maxx)
y=Rnd(Maxy)
Line ox ,oy ,x ,y
Line Maxx-ox ,Maxy-oy ,Maxx-x ,Maxy-y
Line ox ,Maxy-oy ,x ,Maxy-y
Line Maxx-ox ,oy ,Maxx-x ,y
ox=x
oy=y
Flip
Delay 20
CopyRect 0,0,maxx,maxy,0,0,FrontBuffer(),BackBuffer()
Next

Delay 50
Cls

;------------Demo2------------
ox=0
oy=0
For a=0 To 90
For b=a To 90-a Step 6
Color a,a*2,a*3
x=320+150*Sin(b)
y=240+150*Cos(b)
Line ox ,oy ,x ,y
Line Maxx-ox ,Maxy-oy ,Maxx-x ,Maxy-y
Line ox ,Maxy-oy ,x ,Maxy-y
Line Maxx-ox ,oy ,Maxx-x ,y
ox=x
oy=y
Flip
CopyRect 0,0,maxx,maxy,0,0,FrontBuffer(),BackBuffer()
Next
Next

Delay 50
Cls

;------------Demo3------------
xp = 1
yp = -1
wr# = 180
zr = 8
rr = 100
cp=2
xr = Rand(rr+12,MaxX-rr-12)
yr = Rand(rr+12,MaxY-rr-12)
If xr/Float(2)<>xr/2
xr=xr-1
EndIf
If yr/Float(2)<>yr/2
yr=yr-1
EndIf
For a=0 To 1000
wr#=wr#+1
If wr#>360
wr#=wr#-360
EndIf
c = c + cp
If c>250 Or c=0
cp=-cp
EndIf
Color c,c,c
If xr=rr Or xr=MaxX-rr
xp = -xp
EndIf
If yr=rr Or yr=MaxY-rr
yp = -yp
EndIf
xr = xr+xp
yr = yr+yp
Star(xr,yr,rr,zr,wr#)
Flip
CopyRect 0,0,maxx,maxy,0,0,FrontBuffer(),BackBuffer()
Next
Function Ustar(x,y,r,z,w#)
i# = (Float(360)/z)*Int(z/2)
b# = 180+w#
a# = b#+i#
While a#<=z*(w#+180)
x1# = r*Sin#(a#)+r
y1# = r*Cos#(a#)+r
x2# = r+r*Sin#(b#)
y2# = r+r*Cos#(b#)
Line(x+x1#,y+y1#,x+x2#,y+y2#)
b# = a#
a# = a#+i#
Wend
End Function
Function Gstar(x,y,r,z,w#)
i# = 360/z
b# = 180+w#
a# = w#
While a#<=360+2*w#
x1# = r*Sin#(a#)+r
y1# = r*Cos#(a#)+r
x2# = r-r*Sin#(b#)
y2# = r-r*Cos#(b#)
Line(x+x1#,y+y1#,x+x2#,y+y2#)
b# = a#
a# = a#+i#
Wend
End Function
Function Star(x,y,r,z,w#)
x = x-r
y = y-r
If z/2 <> z/Float(2) Then
Ustar(x,y,r,z,w#)
Else
Gstar(x,y,r,z,w#)
EndIf
End Function

Delay 50
Cls
Flip
Cls

;------------Demo4------------
ox=320
For a=0 To 1500
Color a,a Shl 1,a*1.5
x=150*Sin(a)
Line 320+ox,maxy-7,320+x,maxy-4
Line 320-ox,maxy-7,320-x,maxy-4
If (a Mod 5 = 0) Then Line 320+x,maxy-4,320-x,maxy-4
ox=x
Flip
CopyRect 0,3,maxx,maxy-3,0,0,FrontBuffer(),BackBuffer()
Next

;------------Demo5------------
bff=CreateImage(maxx,maxy)
SetBuffer ImageBuffer(bff)
For a=0 To 16
Color a*8,a*8,a*8
Line (maxx Shr 2)-a,(maxy Shr 1),(maxx Shr 2)-a,maxy
Line (maxx Shr 2)+a,(maxy Shr 1),(maxx Shr 2)+a,maxy
Next
For a=0 To 48
Color a*5,a*5,a*5
Oval (maxx Shr 2) - ( a Shr 1) ,(maxy - a) Shr 1,a,a,0
Next
CopyRect 0,0,maxx/2,maxy,maxx/2,0
SetBuffer BackBuffer()
gy=((maxy - a) Shr 1) + 24
For a=0 To 1000
Color 0,0,150+Abs((a Mod 100)-99)
CopyRect 0,0,maxx,maxy,0,0,ImageBuffer(bff),BackBuffer()
oy=gy
c = 10 * Sin(a*5) + 70
Oval (maxx Shr 2) - ( c Shr 1) ,(maxy - c) Shr 1,c,c,0
c = 70- (c - 70)
Oval 3*(maxx Shr 2) - ( c Shr 1) ,(maxy - c) Shr 1,c,c,0
For b=(maxx Shr 2)+4 To 3*(maxx Shr 2)-4 Step 4
y=Sin(Tan(a*5-b*Cos(a)))*20+gy
Line b,oy,b+4,y
oy=y
Next
Flip
Next

;------------Demo6------------
Type ash
Field x#,y#
Field ox,oy
Field R,G
Field xv#,yv#
End Type

For c=0 To 300
Cls
b=Rnd(7) + 5
For a=0 To b
p.ash = New ash
pxv# = Rnd(64)/4 - 8
pyv# = - Rnd(128)/8 - 9
px = maxx Shr 1
py = Maxy + pyv
pox = px
poy = py
pR = Rnd(256)
pG = Rnd(256)
Next
For p.ash = Each ash
Color pR/4,pG/4,0
Plot pox,poy
pox = px
poy = py

Color pR/2,pG/2,0
Plot px,py

px = px + pxv
py = py + pyv
If pR>0 Then pR = pR - 1
If pG>0 Then pG = pG - 1
Color pR,pG,0
Plot px,py

pyv = pyv + 0.981

If py > Maxy Then
Delete p
EndIf
Next
Flip
Next

Cls
Flip
Cls

;------------Demo7------------
d#=0
For a=360 To 200 Step -2
For b=0 To 360 Step 10

od#=d

Color 255*Sin(Log(b)*90),255*Cos(Log(b)*90),255*Sin(Log(b)*(a Shr 2))
d=Abs(Sin(Log(b*d+a)*(a Shr 2)-Sqr(a)))

om=m
m=(360-b/10-a)*Sin(b)

Line (1-od)*Maxx,Maxy/2-om ,(1-d)*Maxx,Maxy/2-m
Line od*Maxx ,Maxy/2+om ,d*Maxx ,Maxy/2+m

Line Maxx/2-om,Maxy*(1-od) ,Maxx/2-m,Maxy*(1-d)
Line Maxx/2+om,od*MaxY ,Maxx/2+m,d*MaxY

Flip
CopyRect 0,0,maxx,maxy,0,0,FrontBuffer(),BackBuffer()
Next
Next

Delay 50
Cls

;------------End------------
End
[/code:1:a0271e86ae]
===
von Valio
Wurde mal - vor langer Zeit - von mir gecodet...

MfG Valio



Suche:
(unterstützt mySQL Wildcards ala %)
Titel:
Text:
Autor: