Mein Spiel Flackert?
Übersicht

bruce85Betreff: Mein Spiel Flackert? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo,
also ich hab ein Spiel geschrieben und es Flackert im Spiel, kann das sein das ich vieleicht paar timer ausführe? ich schätze des ist wegen diesem code: Code: [AUSKLAPPEN] If MilliSecs()-waffe_timer > 100 Then
waffe_timer = MilliSecs() waffe_frames = waffe_frames + 1 If waffe_frames >= 4 Then waffe_frames = 0 waffe_anim = 0 EndIf EndIf im spiel habe ich noch weitere ähnliche timer eingebaut, kann es vieleicht daran liegen? Danke euch schonmal für die hilfe ![]() Gruss Andreas |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
nein, daran liegt es nciht.
Graphics h,w,d,1 setbuffer backbuffer() und am Ende der Hauptschleife, genau 1mal Flip 1 dann kann es cinith mehr Flackern. |
||
between angels and insects |
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich danke dir, jetzt geht es besser als vorher, nur ab und zu Flackert es, abba egal ![]() Gruss Andreas |
||
![]() |
Thorsten |
![]() Antworten mit Zitat ![]() |
---|---|---|
benutzt du auch cls ??
cya, BlindGuy |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
ohne code nix los | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja ich benutze Cls für den bildschirm zu löschen, ich kann mein Code nicht hier rein posten weil der Quelltext sehr sehr lang ist und wegen der übersichtlichkeit, aber egal, ich lasse es einfach so, danke euch trotzdem ![]() Gruss Andreas |
||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo nochmal, wenn ich spiele schreibe wo Types mit drin sind dann Flackert es, ich hab mal ein kleines Beispiel geschrieben und des Flackert auch, hier mal der code:
edit: habs mal kurz geändert ![]() Code: [AUSKLAPPEN] Graphics 640,480,16,2
SetBuffer BackBuffer() HidePointer Type steine Field stein_x Field stein_y Field stein_speed Field stein_winkel End Type SeedRnd MilliSecs() For i=1 To 20 s.steine = New steine s\stein_x = Rand(0,640) s\stein_y = Rand(-480,0) s\stein_speed = Rand(1,5) s\stein_winkel = Rand(45,90) Next Global Verloren = False Repeat Cls For s.steine = Each steine Oval s\stein_x,s\stein_y,10,10,1 s\stein_x = s\stein_x + Cos(s\stein_winkel)*s\stein_speed s\stein_y = s\stein_y + Sin(s\stein_winkel)*s\stein_speed If s\stein_y >= 490 Then Delete s.steine s.steine = New steine s\stein_x = Rand(0,640) s\stein_y = Rand(-480,0) s\stein_speed = Rand(1,5) s\stein_winkel = Rand(45,90) Steine_Gefallen = Steine_Gefallen + 1 EndIf If RectsOverlap(MouseX(),MouseY(),1,1,s\stein_x,s\stein_y,10,10) Then Verloren = True EndIf Next Oval MouseX()-5,MouseY()-5,15,15,1 Flip 1 Until Verloren = True End muss ich im code vieleicht was ändern? Gruss Andreas |
||
- Zuletzt bearbeitet von bruce85 am Di, Jul 25, 2006 21:33, insgesamt einmal bearbeitet
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
der flackert bei mir auch, keine ahnung warum
sonst hatte ich sowas noch nicht (auch nicht mit types) |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
kreisman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Delete s.stein
s.steine = New steine Das kannst du dir sparen.Denn warum den Stein löschen und dann direkt neu erstellen? Du kannst ja einfach die Koordinaten des vorhandenen Steins ändern.Dann flackets auch net mehr =)[/quote] |
||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du hast recht, wieso bin ich net gleich darauf gekommen, ich habe einfach die 2 zeile entfernt und jetzt Flackerts auch nicht mehr, danke dir für den tip ![]() Gruss Andreas |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Problem gefunden:
jedes Mal, wenn du einen Stein löschst, flackert es ich nehm mal an, er kann dann die schleife nicht weiterführen. Also mein Vorschlag: nicht löschen!!! Einfach weiterbenutzen mit neuen koordinaten! Code: [AUSKLAPPEN] Graphics 640,480,32,2
HidePointer Type steine Field stein_x Field stein_y Field stein_speed Field stein_winkel End Type SeedRnd MilliSecs() For i=1 To 20 s.steine = New steine s\stein_x = Rand(0,640) s\stein_y = Rand(-480,0) s\stein_speed = Rand(1,5) s\stein_winkel = Rand(75,105) Next Global Verloren = False While Not KeyDown(1) SetBuffer BackBuffer() Cls For s.steine = Each steine Oval s\stein_x,s\stein_y,10,10 s\stein_x = s\stein_x + Cos(s\stein_winkel)*s\stein_speed s\stein_y = s\stein_y + Sin(s\stein_winkel)*s\stein_speed If s\stein_y >= 490 Then s\stein_x = Rand(0,640) s\stein_y = Rand(-480,0) s\stein_speed = Rand(0,5) s\stein_winkel = Rand(45,90) Steine_Gefallen = Steine_Gefallen + 1 EndIf Next Oval MouseX()-5,MouseY()-5,15,15,1 Flip Wend End |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich weiss, ich habs ja schon so gemacht ![]() Gruss Andreas |
||
![]() |
dav3d |
![]() Antworten mit Zitat ![]() |
---|---|---|
@StepTiger,
Ich hab deinen Code getestet und bei mir Flackert da nichts. Aber, ich würde "SetBuffer BackBuffer()" ausserhalb der Schleife Schreiben zb. gleich nach Graphics. Denn wenn du am Anfang jedes Durchlaufs der Schleife den Buffer auf Backbuffer festlegst macht ja Flip gar keinen Sinn mehr und es könnte durchaus Flackern. Der Sinn von Flip ist ja das du den Buffer mit einem zweiten austauscht. Durch das Benutzen von zwei Buffern kann Flackern verhindert werden in dem man unbemerkt im Hintergrund zeichnet und das Bild erst anzeigt sobald es fertig ist. Dadurch bekommt man nichts vom zeichnen mit. |
||
![]() |
Hummelpups |
![]() Antworten mit Zitat ![]() |
---|---|---|
Den Fehler baute erst Step Tiger ein, war im anderen Code ja richtig
verwendet. |
||
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group