Viele! Bunte Smileys von Markus
Die wollte ich auf dem Desktop tanzen lassen ...
darum habe ich es auch mal hier rein gepackt :shock:

Der Trick ist dabei das man Interger Werte für die Bewegungen
benutzt (nicht FLOAT!) , also 1 2 4 8 .
Bis 30 FPS sieht das Auge das nicht und es erscheint fließend !!! :idea:
Also alle die ein Spiel schreiben sollten das berücksichtigen !!!

Wenn ich an die Amiga Zeit denke wo ich nur 8 Sprites darstellen
konnte sind 5000 schon eine ganze Menge ,
natürlich fehlen noch die berechnungen bei einem Spiel etc.
aber immer hin :roll:

[code:1:4a50f2fd93]

; Blitz Basic 2D Example

; MR 18.03.2003

; 640x640 =5000 Sprites 16x16 ohne zu ruckeln mit Geforce4 TI4200 !!! :-)))))

Const width=640 , height=480

Graphics width,height,16,1
SetBuffer BackBuffer()

Global numcolours=256 ; play with this value
SeedRnd(312498756) ; and this too

Type Ball
Field x,y,xs,ys
Field col
End Type

Global bcnt=0

Dim ball_image(numcolours)

For loop=0 To numcolours
rff=70:gff=50:bff=70: Color rff+Rnd(255-rff),gff+Rnd(255-gff),bff+Rnd(255-bff)

Oval 0,0,16,16

; draws eyes and mouth..
Color 4,4,4
Plot 5,5:Plot 11,5
Plot 4,8:Plot 4,9:Plot 5,10 Plot 12,8:Plot 12,9:Plot 11,10: Line 6,11,10,11

ball_image(loop)=CreateImage( 16,16 )
GrabImage ball_image(loop),0,0
MidHandle ball_image(loop)
Next

Color 255,255,0

CreateBalls()

Local t#

While Not KeyDown( 1 )

t=MilliSecs()
Cls
Text 0,0,"Balls="+bcnt
Text 0,FontHeight(),"Arrow key left to remove - Arrow key right to add"
UpdateBalls()
RenderBalls()

While Abs(MilliSecs()-t)<10.0
Wend

Flip
Wend

End

Function CreateBalls()

Local dx,dy,k

For k=1 To 2
bcnt = bcnt + 1
b.Ball=New Ball
bx=Rnd( 8,width-8 )
by=Rnd( 8,height-8 )

dx=Rnd(0,1)
If dx=0 Then dx=-1
dy=Rnd(0,1)
If dy=0 Then dy=-1

bxs=Rnd(1,4 )*dx
bys=Rnd(1,4 )*dy
bcol=Rnd(numcolours)
Next

End Function

Function RemoveBalls()

For k=1 To 2
bcnt = bcnt - 1
Delete First Ball
Next

End Function

Function UpdateBalls()

If KeyDown( 205 )
CreateBalls()
Else If KeyDown( 203 )
RemoveBalls()
EndIf
For b.Ball=Each Ball
bx=bx+bxs
If bx<8 Or bx>width-8 Then bxs=-bxs:bx=bx+bxs
by=by+bys
If by<8 Or by> height-8 Then bys=-bys:by=by+bys
Next

End Function

Function RenderBalls()

For b.Ball=Each Ball
DrawImage ball_image(bcol),bx,by
Next

End Function
[/code:1:4a50f2fd93]
===
von ???
Sehr nett, aber es gibt nen kleinen Bug bei der Ballzählvariable.
Bei der kann man unter 0 gehen und dann sind 0 da aber sobald man wieder raufgeht kommen wieder welche und so verrutscht der 0 punkt immer mehr ins -.
===
von ???
jo, mann kann die smylie anzahl auch ins minus setzen...

5000 sprites --- es ruckelt ohne ende natürlich mit ner Geforce2 mx 400 :mrgreen:
===
von ???
[quote:ba541435d8="Niclas"]jo, mann kann die smylie anzahl auch ins minus setzen...

5000 sprites --- es ruckelt ohne ende natürlich mit ner Geforce2 mx 400 :mrgreen:[/quote:ba541435d8]

Naja , kann man mit leben , ist ja nur ein Beispiel .
===
von ???
Hab eine Geforce2 MX 400 13000 Sprites ohne ruckeln ^-^ habs bissel veränder das er net immer nur 2 dazu zählt sonder 1000 :o

vielleicht rückelt es bei mir nicht da ich 768 MB DDR Ram hab und 2,4 Ghz :o
===
von ???
Jo ,
ganz gut :-) :-) :-) EDIT FÜR @LASSE :-) * 8000
===
von ???
hi,

hmmm, ich habe ihn auch entdrosselt.

Habe nen 800er mit 256 MB und Gforce4

Aber, BB muß ne macke haben !

Oder kann mir das einer erklären ?

bis zu 1320 smiley 148 FPS
bis 1500 sind es noch 130
bei 1600 sind es 85
bei 1700 noch 75
und von 1700 bis 3100 bleiben die FPS auf 75, hmm, warum ?
ab 3500 - 4700 sind es 51 FPS

Warum dies witzigen Sprünge und Löcher ?

Toni
===
von ???
@Hot-Bit... was für eine Geforce4 hast du? eine MX ?

Den auch das:

[quote:53d2d5fb74]
bis zu 1320 smiley 148 FPS
bis 1500 sind es noch 130
bei 1600 sind es 85
[/quote:53d2d5fb74]

Ist schon mal ziehmlich wenig. Da bringt meine Geforce3 mehr... Also an BB liegt das nicht...
===
von ???
Hi,

es ist eine Nvidia GeForce4 MX 420


Mit 20000 Smileys habe ich noch 13 FPS

Toni
===
von ???
[quote:63153e2af3="HOT-BIT"]...Warum dies witzigen Sprünge und Löcher ?...[/quote:63153e2af3]

Denke mal das es an der synchronisation der Bildanzeige liegt .
Bei 50 Hz hat man pro Bildaufbau 20 ms Zeit , danach kann man
sich 40 ms zeit lassen weil ein Bild übersprungen wird .
Versuche mal Flip 0
===
von ???
Hi,

das mit Flip 0 kannte ich schon. Hab da so knapp 1400 FPS.

Habe mich nun mal mit den Einstellungen der Grafikkarte befasst.
Gibt da 2 Einstellungen:
Memory Clock - war von Haus aus auf 333 MHz
und
Core Clock - war auf 250 MHz

Habe nun Autoadjust drüberlassen, und siehe da, habe nur mehr 100 FPS bei 10 Smileys. Habe nun bei Memory Clock 405 MHz.
Alle FPS-Werte bleiben gleich, nur daß ich nicht mehr mit 150 FPS starte. Lustig !

Bei 60000 Smileys habe ich noch 5 FPS

Toni
===
von ???
@ Markus:

Ein Smilie reicht also nimm mal bitte den rest weg... sie nehmen nur unützen platz weg... :)



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