Sturm im Wasserglas

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

Hot-Bit

Sieger des B2D Retro Wettbewerb / Aug 04

Betreff: Sturm im Wasserglas

BeitragMo, März 21, 2005 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi.

Vielleicht kann sich da wer was abgucken, und es als Screensaver gebrauchen.
Hatte hier schon mal einen ähnlichen Code gepstet, der ging aber verloren ...

BlitzBasic: [AUSKLAPPEN]
Graphics 800,600:SetBuffer BackBuffer() 
Global num = 3500
Global ox,oy,cx=400,cy=300,gravity#,ka,l#,ll#,cc=50
Dim px(num),py(num),vx#(num),vy#(num),rot(num),gruen(num),blau(num),grx(num),gry(num)
timer =CreateTimer(60)
SeedRnd MilliSecs()
Init
While Not KeyHit(1)
Cls
Color 255,255,0:Text 10,10,\"Sturm im Wasserglas by HOT-BIT\"
Text 500,10,\"FPS: \"+fps
pgrav
c = c + 1
If c > cc Then
c = 0
gravity# = Rnd(.5,9)
For n = 1 To num
vx(n) = Rnd(-3,3)
vy(n) = Rnd(-3,3)
Next
ox = Rnd(-130,130)
oy = Rnd(-130,130)
ka=Rand(0,3)
ll=Rnd(300)
cc=Rand(30,300)
End If
fps2 = fps2 + 1
If fpstimer + 1000 < MilliSecs() Then
fps = fps2:fps2 = 0:fpstimer = MilliSecs()
End If
; WaitTimer(timer)
Flip 0
Wend
End

Function Init()
For n = 1 To num
px(n) = Rand(-32,32)
py(n) = Rand(-20,20)
vx(n) = Rnd(-6,6)
vy(n) = Rnd(-6,6)
rot(n)=Rand(255):gruen(n)=Rand(255):blau(n)=Rand(255)
grx(n)=Rand(6,12):gry(n)=Rand(6,12)
Next
ox = Rnd(-130,130)
oy = Rnd(-130,130)
gravity = Rnd(3,19)
End Function

Function pgrav()
For n = 1 To num - 1
xdif#= ox-px(n)
ydif#= oy-py(n)
l =Sqr(xdif*xdif+(ydif*ydif))
If ka=1
l=l*gravity/Sin(l-ll)
ElseIf ka=0
l=l*gravity/Cos(l-ll)
Else
l=l*gravity/Sin(l-ll)*Cos(l-ll)
EndIf
If l > 0 Then
vx(n)= vx(n)+xdif/l
vy(n)= vy(n)+ydif/l
px(n)= px(n)+vx(n)
py(n)= py(n)+vy(n)
End If
Color rot(n),gruen(n),blau(n)
Rect px(n)+cx,py(n)+cy,grx(n),gry(n)
Next
End Function


Toni
... ..... .i.. ...

***
Sieger des BB-Gameboy-Contest 2004
Sieger des Blitzbaster 2D-Minigolf-Contest 2005
***

Firstdeathmaker

BeitragMo, März 21, 2005 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Nach welchen Gesetzten genau fliegen die Dinger da rum?

Sieht ziemlich interessant aus, der Name passt irgentwie obwohl man das nicht erklären kann Wink
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image
 

Hot-Bit

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragMo, März 21, 2005 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi.

Ganz einfach:

Zitat:
§ sin Abs. 4 StGB


*g*

Naja, nach Zufall und den Gesetzen von Sin() und Cos()

Toni
... ..... .i.. ...

***
Sieger des BB-Gameboy-Contest 2004
Sieger des Blitzbaster 2D-Minigolf-Contest 2005
***

Firstdeathmaker

BeitragMo, März 21, 2005 18:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mal ein wenig damit rumgespielt:

BlitzBasic: [AUSKLAPPEN]
Graphics 800,600:SetBuffer BackBuffer() 
Global num = 13500
Global ox,oy,cx=400,cy=300,gravity#,ka,l#,ll#,cc=50
Dim px(num),py(num),vx#(num),vy#(num),rot(num),gruen(num),blau(num),grx(num),gry(num)
timer =CreateTimer(60)
SeedRnd MilliSecs()
Init
While Not KeyHit(1)
Cls
Color 255,255,0:Text 10,10,\"Sturm im Wasserglas by HOT-BIT\"
Text 500,10,\"FPS: \"+fps
pgrav
c = c + 1
If c > cc Then
c = 0
gravity# = Rnd(.5,9)
For n = 1 To num
vx(n) = Rnd(-3,3)
vy(n) = Rnd(-3,3)
Next
ox = Rnd(-130,130)
oy = Rnd(-130,130)
ka=Rand(0,3)
ll=Rnd(300)
cc=Rand(30,300)
End If
fps2 = fps2 + 1
If fpstimer + 1000 < MilliSecs() Then
fps = fps2:fps2 = 0:fpstimer = MilliSecs()
End If
; WaitTimer(timer)
Flip 0
Wend
End

Function Init()
For n = 1 To num
px(n) = Rand(-32,32)
py(n) = Rand(-20,20)
vx(n) = Rnd(-6,6)
vy(n) = Rnd(-6,6)
rot(n)=Rand(255):gruen(n)=Rand(100,255):blau(n)=Rand(0)
grx(n)=Rand(2,6):gry(n)=Rand(2,6)
Next
ox = Rnd(-130,130)
oy = Rnd(-130,130)
gravity = Rnd(3,19)
End Function

Function pgrav()
For n = 1 To num - 1
xdif#= ox-px(n)
ydif#= oy-py(n)
l =Sqr(xdif*xdif+(ydif*ydif))
If ka=1
l=l*gravity/Sin(l-ll)
ElseIf ka=0
l=l*gravity/Cos(l-ll)
Else
l=l*gravity/Sin(l-ll)*Cos(l-ll)
EndIf
If l > 0 Then
vx(n)= vx(n)+xdif/l
vy(n)= vy(n)+ydif/l
px(n)= px(n)+vx(n)
py(n)= py(n)+vy(n)
End If
Color rot(n),gruen(n),blau(n)
Rect px(n)+cx,py(n)+cy,grx(n),gry(n)
Next
End Function
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Chester

BeitragMo, März 21, 2005 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
lol 8 FPS!

Travis

BeitragMo, März 21, 2005 22:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht sollte man es in "Papierschnibsel im Windrausch" umbenennen. Laughing
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.

Smokie

BeitragDi, März 22, 2005 11:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
bei Hot-bits Version habe ich ca 42 Fps und bei firstdeathmaker nur 11 Fps
Naja sieht toll aus!
Smokie
M-Soft Studios Mit selbst gemachtem Forum!!!
Unbequem lebt's sich schwer.
Musik macht erst Spaß, wenn man sie mit 2,8 facher Geschwindigkeit hört
Zuletzt bearbeitet von Smokie am Fr Jan 01, 1888 51:58 PM, insgesamt 1000-mal bearbeitet

Bigmichi

BeitragDi, März 22, 2005 13:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Für BMAX

BlitzMax: [AUSKLAPPEN]
Strict



Graphics 800,600,16,-1




Global num = 1350
Global ox,oy,cx=400,cy=300,gravity#,ka,l#,ll#,cc=50
Global px[num],py[num],vx#[num],vy#[num],rot[num],gruen[num],blau[num],grx[num],gry[num]
SeedRnd MilliSecs()


Init()




Local C,n,fps,fps2,fpstimer:Int


While Not KeyHit(Key_escape)

SetColor 255,255,0
DrawText \"Sturm im Wasserglas by HOT-BIT\",10,10
DrawText \"FPS: \"+fps,500,10

pgrav()

c = c + 1
If c > cc Then
c = 0
gravity# = Rnd(.5,9)

For n = 1 To num
vx[n] = Rnd(-3,3)
vy[n] = Rnd(-3,3)
Next

ox = Rnd(-130,130)
oy = Rnd(-130,130)
ka=Rand(0,3)
ll=Rnd(300)
cc=Rand(30,300)
End If


fps2 = fps2 + 1

If fpstimer + 1000 < MilliSecs() Then
fps = fps2
fps2 = 0
fpstimer = MilliSecs()
End If


Flip
Cls
FlushMem
Wend





Function Init()
Local n:Int

For n = 1 To num
px[n] = Rand(-32,32)
py[n] = Rand(-20,20)
vx[n] = Rnd(-6,6)
vy[n] = Rnd(-6,6)
rot[n]=Rand(255)
gruen[n]=Rand(100,255)
blau[n]=Rand(0)
grx[n]=Rand(2,6)
gry[n]=Rand(2,6)
Next

ox = Rnd(-130,130)
oy = Rnd(-130,130)
gravity = Rnd(3,19)

End Function

Function pgrav()
Local n:Int
Local xdif#,ydif#

For n = 1 To num - 1
xdif#= ox-px[n]
ydif#= oy-py[n]
l =Sqr(xdif*xdif+(ydif*ydif))

If ka=1
l=l*gravity/Sin(l-ll)
ElseIf ka=0
l=l*gravity/Cos(l-ll)
Else
l=l*gravity/Sin(l-ll)*Cos(l-ll)
EndIf

If l > 0 Then
vx[n]= vx[n]+xdif/l
vy[n]= vy[n]+ydif/l
px[n]= px[n]+vx[n]
py[n]= py[n]+vy[n]
End If

SetColor rot[n],gruen[n],blau[n]
DrawRect px[n]+cx,py[n]+cy,grx[n],gry[n]

Next
End Function


da sieht man den Unterschied Wink hab in Bmax 1008 FPS udn in BB 42...

Smokie

BeitragDi, März 22, 2005 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Bigmichi hat Folgendes geschrieben:

da sieht man den Unterschied Wink hab in Bmax 1008 FPS udn in BB 42...

Echt 1008 FPS?? Shocked Oder meintest du 108FPs
Smokie
M-Soft Studios Mit selbst gemachtem Forum!!!
Unbequem lebt's sich schwer.
Musik macht erst Spaß, wenn man sie mit 2,8 facher Geschwindigkeit hört
Zuletzt bearbeitet von Smokie am Fr Jan 01, 1888 51:58 PM, insgesamt 1000-mal bearbeitet

skey-z

BeitragDi, März 22, 2005 14:24
Antworten mit Zitat
Benutzer-Profile anzeigen
hui, hot-bit 20 fps, Firstdeathmaker 6 fps

@athlon 2200+, Radeon 9600se, 256 mb ddr

Bigmichi

BeitragDi, März 22, 2005 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Kam beim 2. Test nicht mehr über 1000 =)

aber trozdem 998 (BMAX)

http://server.future-coding.de/bmax.JPG
 

Hot-Bit

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragDi, März 22, 2005 15:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi.

@BigMichi:
Das ist aber eine leichte Verzerrung der Tatsachen.

Wenn schon einen Vergleich mit BMAX, dann aber so, daß die Werte die gleichen bleiben !

Denn statt 3500 Kästchen, sind es bei der BMAX-Version nur 1350.
Und da ist es dann kein Wunder Smile

Ich habe mit meinem 2600er 80 FPS. BMAX habe ich noch nicht.

Toni
... ..... .i.. ...

***
Sieger des BB-Gameboy-Contest 2004
Sieger des Blitzbaster 2D-Minigolf-Contest 2005
***

Bigmichi

BeitragDi, März 22, 2005 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
beim "Firstdeathmaker" hatte 13500 nur habs ne 0 vergessen...

weils davor mti den Zahlen gespielthabe =( und hab beim zurückändern ne Zahl vergessen o.O

hab nun nochmal getestet mit 13500 komm ich nur noch auf 142 =(

sorry das beim erstenmal die 0 vergessen hab =)
 

Hot-Bit

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragDi, März 22, 2005 17:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi.

Ist ja egal.

Wenn man mit 13500 noch so viel FPS zusammen bringt, dann ist das ja eine super Sache !

Toni
... ..... .i.. ...

***
Sieger des BB-Gameboy-Contest 2004
Sieger des Blitzbaster 2D-Minigolf-Contest 2005
***

Firstdeathmaker

BeitragDo, März 24, 2005 11:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hot Bits: konstante 75 ohne debug, mit debug 65.

Meins: 20 ohne debug, mit debug 17.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image
 

totonak5

BeitragSa, Mai 07, 2005 22:23
Antworten mit Zitat
Benutzer-Profile anzeigen
ihr seits a wahnsinn!
mein respekt habts!!!
Just for Fun!
Jesus loves U!
 

Silbersurfer

BeitragDi, Mai 24, 2005 11:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo all,

mit einen kleinen trick kann man bei blitz+ mehr Speed rausholen
mir ist aufgefallen das wenn eine großen anzahl an Daten in den Backbuffer geschrieben wird (z.b mit writepixel oder mit rect, oval u.s.w)
er stäker einbircht, als wenn man stattdessen im Image arbeitet.

leider habe ich keine Speed vorteile bei Blitz3d feststellen können (komisch)

bei Hot Bit´s Demo

ohne Image Blitz+ 35 FPS Blitz3D 39 FPS
Im Image Blitz+ 63 FPS Blitz3D 38 FPS

Hot Bit demo ist ein sehr gutes beispiel dafür

einfach mal dieses im Code einsetzen und staunen
erstmal ein Image erstellen!
Zitat:
buffer=CreateImage(800,600)


und in der hauptschleife dann


Zitat:
SetBuffer ImageBuffer(buffer)
Color 0,0,0:Rect 0,0,800,600
Color 255,255,0:Text 10,10," HOT-BIT Demo jetzt im Image"
Text 500,10,"FPS: "+fps
pgrav
SetBuffer BackBuffer ()
DrawBlock buffer,0,0
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD
Hompage : http://home.arcor.de/silbersurfer01/
Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group