Flimmern

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

totonak5

Betreff: Flimmern

BeitragFr, Sep 17, 2004 19:21
Antworten mit Zitat
Benutzer-Profile anzeigen
hi!

wie verhindere ich das flimmern von kreisen oder rechtecken in einem spiel?

lg
Just for Fun!
Jesus loves U!

BladeRunner

Moderator

BeitragFr, Sep 17, 2004 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine genauere Fehlerbeschreibung wär nett. Vermute aber mal du hast kein Doublebuffering (Forumssuche) benutzt.
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
 

David

BeitragFr, Sep 17, 2004 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Code: [AUSKLAPPEN]

Graphics 640, 480, 32
Setbuffer Backbuffer() ;<--

while not keyhit( 1 )
  ;Scene malen

  flip //puffer flippen
  cls //backbuffer löschen
wend

end


So in der Art funktioniert das! Wie das Prinzip von Doublebuffering funktioniert, darüber machst du dich am besten selbst kundig!

Manche schwören darauf, das "cls" am Beginn deiner Scene zu setzen und das "flip" am Ende, macht aber kein Unterschied.

grüße
http://bl4ckd0g.funpic.de
 

getlose

BeitragFr, Sep 17, 2004 19:38
Antworten mit Zitat
Benutzer-Profile anzeigen
so egal ist das nicht ob cls vor oder hinter flip
steht, cls löscht nämlich den gesamten bildschirm.

bei deinem beispiel würde man also rein garnix sehen :)

BladeRunner

Moderator

BeitragFr, Sep 17, 2004 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
getlose... erst denken dann posten.... er Flipt und DANACH löscht er den Screen.
hätte er
cls:flip, ja dann hättest du recht, aber ob er
Code: [AUSKLAPPEN]
while
cls
malkrempl
flip
wend


oder
Code: [AUSKLAPPEN]
while

malkrempl
flip
cls
wend

schreibt ist sch....egal.
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
 

David

BeitragFr, Sep 17, 2004 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

@getlose_back:

Falsch! Cls löscht nicht den Bildschirm sondern den Backbuffer und der interessiert nichtmehr nachdem das Bild in den Frontbuffer geschaufelt wurde!

Code: [AUSKLAPPEN]

Graphics 640, 480, 32
SetBuffer BackBuffer()

While Not KeyHit( 1 )
   Rect( 270, 190, 100, 100 )
   
   Flip
   Cls
Wend

End


Funktioniert also genaus wie:

Code: [AUSKLAPPEN]

Graphics 640, 480, 32
SetBuffer BackBuffer()

While Not KeyHit( 1 )
   Cls
   Rect( 270, 190, 100, 100 )
   
   Flip
Wend

End


Probleme gibts nur wenn du das Cls direkt VOR das Flip schreibst, denn dann wird der leere Backbuffer angezeigt!

Edit:
@BladeRunner: Meine Rede! Wink

grüße
http://bl4ckd0g.funpic.de
 

getlose

BeitragFr, Sep 17, 2004 19:45
Antworten mit Zitat
Benutzer-Profile anzeigen
oha, ok ok, hab ich was dazu gelernt :)
'hack hack hack' ...
 

totonak5

BeitragSa, Sep 18, 2004 19:50
Antworten mit Zitat
Benutzer-Profile anzeigen
im folgenden quelltext klickt auf das quadrat links oben, dann gebz ihr x- beliebige zahlen unten ein und klickt auf das unterste rechteck! das rechteck das dann rechts erscheint flimmern!

wie kann ich das verhindern?

code:

Code: [AUSKLAPPEN]


Graphics 800,600
SetBuffer BackBuffer()

Font = LoadFont("Arial",15,0,0,0)


Eingabe = 1



Repeat
 Cls


Color 220,220,220
Rect 0,0,800,600

; Button

Color 215,215,215
Rect 20,50,25,2
Rect 20,50,2,25

Color 128,128,128
Rect 45,50,1,25
Rect 44,51,1,24
Rect 20,75,26,1
Rect 21,74,25,1

If RectsOverlap(X,Y,2,3, 20,50,25,25)
 If MouseDown(1)
  ; Design
  Color 128,128,128
  Rect 20,50,25,2
  Rect 20,50,2,25
  Color 215,215,215
  Rect 45,50,1,25
  Rect 44,51,1,24
  Rect 20,75,26,1
  Rect 21,74,25,1
  Aktion = 1
 EndIf
EndIf


If Aktion = 1
 Color 0,0,0
 Text 10,400, "Länge: "
 Text 10,430, "Breite: "
 ; Design Länge
 Color 215,215,215
 Rect 55,395, 40,2
 Rect 55,395, 2,25
 Color 128,128,128
 Rect 55,420, 40,1
 Rect 56,419, 39,1
 Rect 95,395, 1,26
 Rect 94,396, 1,24
 Color 225,225,225
 Rect 57,397,37,22
 ; Design Breite
 Color 215,215,215
 Rect 55,425,40,2
 Rect 55,425,2,25
 Color 128,128,128
 Rect 55,450, 40,1
 Rect 56,449, 39,1
 Rect 95,425, 1,26
 Rect 94,426, 1,24
 Color 225,225,225
 Rect 57,427,37,22
 ; Design Button
 Color 220,220,220 
 Rect 22,52,22,22

 Color 128,128,128
 Rect 20,50,25,2
 Rect 20,50,2,25
 Color 215,215,215
 Rect 45,50,1,25
 Rect 44,51,1,24
 Rect 20,75,26,1
 Rect 21,74,25,1
 ; Schreiben
 If Eingabe = 1 
 If RectsOverlap(X,Y,1,2, 55,425,40,25) And MouseHit(1) Then Eingabe = 0
  A = GetKey()
  Color 0,0,0
  If A > 47 And A < 57 And Len(Neu1$) <= 2 Then Neu1$ = Neu1$ + Chr(A)
   Text 60,400, Neu1$ + "_"
 If A = 8 And Len(Neu1$) > 0 Then Neu1$ = Left$(Neu1$, Len(Neu1$) - 1) 
 EndIf
 

 If Eingabe = 0
 If RectsOverlap(X,Y,1,2, 55,395,40,25) And MouseHit(1) Then Eingabe = 1
  A = GetKey()
  Color 0,0,0
  If A > 47 And A < 57 And Len(Neu2$) <= 2 Then Neu2$ = Neu2$ + Chr(A)
   Text 60,429, Neu2$ + "_"
 If A = 8 And Len(Neu2$) > 0 Then Neu2$ = Left$(Neu2$, Len(Neu2$) - 1) 
 EndIf
 

 If Eingabe <> 1 And Len(Neu1$) > 0 Then Text 60,400, Neu1$ 
 If Eingabe <> 0 And Len(Neu2$) > 0 Then Text 60,429, Neu2$



 ; Eingabe ENTER
 Color 215,215,215
 Rect 55,470,35,2
 Rect 55,470,2,25 

 Color 128,128,128
 Rect 90,470,1,25
 Rect 89,471,1,24
 Rect 55,495,36,1
 Rect 56,494,35,1




If RectsOverlap(X,Y,1,2, 55,470,35,25)
 If MouseDown(1)
  Color 128,128,128
  Rect 55,470,35,2
  Rect 55,470,2,25   

  Color 215,215,215
  Rect 90,470,1,25
  Rect 89,471,1,24
  Rect 55,495,36,1
  Rect 56,494,35,1

 Color 192,192,192
 Rect 57,472,32,22
 Flip
 

 If Len(Neu1$) <> 0 And Len(neu2$) <> 0 Then NeuesBild = 1

 EndIf
EndIf

EndIf
Flip


If NeuesBild = 1
 Neu3 = Int(Neu1$)
 Neu4 = Int(Neu2$)
 PosX = Neu3 / 2
 PosY = Neu4 / 2
 NeuX = 450 - PosX
 NeuY = 300 - PosY

 Color 255,255,255
 Rect NeuX,NeuY,Neu3, Neu4   

 Color 0,0,0
 Rect NeuX - 1, NeuY - 1 , Neu3 + 2, Neu4 + 2,0

EndIf


; Maus

X = MouseX()
Y = MouseY()

Flip
Until KeyHit(1)
Just for Fun!
Jesus loves U!

BladeRunner

Moderator

BeitragSa, Sep 18, 2004 20:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Du verwendest mehrere Flip in einem Scheifendurchlauf- das kann nicht funktionieren.
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
 

totonak5

BeitragSo, Sep 19, 2004 18:16
Antworten mit Zitat
Benutzer-Profile anzeigen
ja das war ein fehler aber es flimmert immer noch.

lg
Just for Fun!
Jesus loves U!
 

totonak5

BeitragSo, Sep 19, 2004 18:17
Antworten mit Zitat
Benutzer-Profile anzeigen
oh! es funktioniert doch!

danke


lg
Just for Fun!
Jesus loves U!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group