Mein Spiel Flackert?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

bruce85

Betreff: Mein Spiel Flackert?

BeitragDi, Jul 25, 2006 10:55
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink

Gruss Andreas

Jan_

Ehemaliger Admin

BeitragDi, Jul 25, 2006 11:05
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Jul 25, 2006 19:51
Antworten mit Zitat
Benutzer-Profile anzeigen
ich danke dir, jetzt geht es besser als vorher, nur ab und zu Flackert es, abba egal Very Happy

Gruss Andreas

Thorsten

BeitragDi, Jul 25, 2006 20:10
Antworten mit Zitat
Benutzer-Profile anzeigen
benutzt du auch cls ??

cya,
BlindGuy

BladeRunner

Moderator

BeitragDi, Jul 25, 2006 20:18
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Jul 25, 2006 20:26
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink

Gruss Andreas
 

bruce85

BeitragDi, Jul 25, 2006 20:56
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink
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

BeitragDi, Jul 25, 2006 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

kreisman

BeitragDi, Jul 25, 2006 21:25
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Jul 25, 2006 21:32
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Very Happy

Gruss Andreas

StepTiger

BeitragDi, Jul 25, 2006 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

bruce85

BeitragDi, Jul 25, 2006 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
ich weiss, ich habs ja schon so gemacht Very Happy

Gruss Andreas

dav3d

BeitragDi, Aug 01, 2006 16:31
Antworten mit Zitat
Benutzer-Profile anzeigen
@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

BeitragMi, Aug 02, 2006 15:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Den Fehler baute erst Step Tiger ein, war im anderen Code ja richtig
verwendet.
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group