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 |