Vollbildmodus 1 flackert, Fenstermodus 2 flackert nicht
Übersicht

![]() |
SnowballBetreff: Vollbildmodus 1 flackert, Fenstermodus 2 flackert nicht |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab beim Beginnerwettbewerb mitgemacht und mein Tweetyprog mit blitz3d demo geschrieben. Da lief alles Bestens. Hab mir jetzt aber Blitzplus gekauft und da flimmert die Lebensanzeige im Vollbildmodus (graphics 640,480,16,1) über die ganze Bildschirmzeile. Beim Fenster Modus (640,480,16,2) allerdings läuft alles glatt. Hab bereits das neuste Update drüber installiert, da waittimer in der alten BlitzPlusversion sonst eh auch nicht laufen würde *grummel*.
Hab mal hier im Forum gesucht und bloß mal nen Beitrag gefunden, der besagt, dass man Modus 2 verwenden soll, da nicht alles Grafikkarten mit 1 funktionieren. Hat es bei mir aber zumindest bei der Blitz3Ddemo..... und ich will mein spiel eigentlich in vollbild behalten... Weiss jemand rat? Danke ![]() Hier ist noch der Code: Code: [AUSKLAPPEN] Graphics 640,480,16,1 SetBuffer BackBuffer() Include "globals.bb" Include "kollision.bb" Include "spieler_bewegung.bb" Include "dojump.bb" Include "hintergrund.bb" Include "sylvester.bb" ;Anfangsscreen Repeat DrawImage start,0,0 Flip Until KeyHit(28) ;kartendaten lesen Dim map (20,15) ; Feld mit den Dimensionen 20 * 15, da 640/32=20 und 480/32=15 Restore mapdata ; Informationen in mapdata werden reseted For y=0 To 14 ; und direkt wieder eingelesen For x=0 To 19 Read map(x,y) Next Next ;hauptschleife Cls Repeat WaitTimer(frametimer) If Lives = -1 Then ; sollte kein Leben vorhanden sein Cls DrawImage level1,0,0 If KeyHit(28) Then ;Sobald die Taste F1 gedrückt wird Lives = 3 ;Lebenszahl auf 3 erhöhen score = 0 Cls ;Punkte zurücksetzen EndIf ElseIf Lives > -1 Then ;Sobald Punkte höher als -1 ist Cls If Start = 0 Then ;Um die Leveldaten neu einzulesen, habe ich eine neue Function erstellt Start = 1 ;Diese kann man später erweitern um mehrere Level zu erstellen. SetupLevel() EndIf hintergrund() lebensanzeige() frau() eule() kollision() drawmap() ;Funktion "drawmap" wird ausgeführt zeit() bewegespieler() dojump() spieler_fliegen() drawplayer() draw_sylvester() schiessen() move_sylvester() ende() EndIf Flip Until KeyHit(1) End |
||
Stomping Feet Productions |
![]() |
DivineDominion |
![]() Antworten mit Zitat ![]() |
---|---|---|
Einmal CLS am Anfang der Mainloop reicht eigentlich vollkommen. Alles andere verlangsamt nur, flackern dürfte es deshalb nicht. BlitzPlus setzt übrigens automatisch den Backbuffer, daran sollte es aber auch nicht liegen ![]() Aber weil du schon so oft Cls nutzt, kann es ja auch ebensogut sein, dass du irgendwo in einer Funktion noch mal Flipst. Trifft das vielleicht zu? Strukturiere dein Programm so, dass du nur ein Flip brauchst - male in einer Malfunktion alles was benötigt wird. |
||
christian.tietze@gmail.com - https://christiantietze.de
macOS |
![]() |
Rob_ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und versuch auch nur eine schleife in dein programm ein zubinden, sonst ist das schon gut gecodet als anfänger, nur halt noch etwas spagethicode, aber das wird schon, lernen lernen lernen. | ||
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX |
![]() |
Snowball |
![]() Antworten mit Zitat ![]() |
---|---|---|
mhmm, Danke für die Tips! ![]() ![]() ![]() |
||
Stomping Feet Productions |
![]() |
soli |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das erste cls steht vor der Hauptschleife,
dort macht es eigenlich wenig Sinn. Und ich kann leider nicht sehen ob in deinen includes noch cls oder flip sind. |
||
solitaire |
![]() |
DivineDominion |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kann dir dann nur den tipp geben, nacheinander die Aufrufe einzelner drawXYZ-funktionen auszukommentieren bis es aufhört zu flimmern. Wenn es dann soweit ist, kannst du den Fehler ja besser lokalisieren ![]() Vielleicht hast du auch VSync bei deiner Grafikkarte aus? Wieviel FPS hast du? Werte von 400 oder so deuten eindeutig darauf hin, weil die FPS bei einer Vertikalen Synchonisation der Hertzzahl deines Monitors entsprechen, z.b. 60, 85, 100 oder gar 120 wenn dein Monitor gut ist. Flip 0 bzw ausgeschaltetes VSync kann zu Flimmern führen, weil eben immer sofort drauflos gemalt wird, egal ob der Lichtpunkt deines Monitors schon fertig ist oder nicht. Wenn du also einmal alles durchmalst, dein Monitor noch bei der Hälfte beim Anzeigen ist und du wieder malst, ist die utnere Hälfte anders als die obere - logisch, oder? ![]() |
||
christian.tietze@gmail.com - https://christiantietze.de
macOS |
![]() |
Snowball |
![]() Antworten mit Zitat ![]() |
---|---|---|
In den includes gibts auch keine flips ![]() ![]() |
||
Stomping Feet Productions |
D²O |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
lade doch mal das ganze, Code und Resourcen, hoch.
Dann kann man Dir besser helfen. |
||
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK; |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
vermute ein treiberproblem. hast du die neuste treibergeneration drauf? die macht nämlich gern probleme. | ||
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 |
![]() |
Snowball |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab die dateien mal hochgeladen, falls sich es jemand mal anschauen will.
[url]free.pages.at/demuth/dateien/tweety.zip[/url] In der tweety.bb ist die hauptschleife enthalten. Grafiktreiber hab ich eigentlich noch nie geupdated, sofern dass nicht passiert, wenn man windows xp updated. Der PC ist von 2003, also auch noch nicht allzu alt. Grafikkarte ist die RADEON Family 9000 |
||
Stomping Feet Productions |
![]() |
Waveblue |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir flackert im Fenstermodus und im Vollbildmodus
absolut gar nichts! ![]() |
||
This is 10% luck
20% skill 15% concentrated power of will 5% pleasure, 50% pain and 100% reason to remember the name |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group