Ruckeln!

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Mogon

Betreff: Ruckeln!

BeitragMi, Apr 27, 2005 15:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!

Eigentlich schon immer habe ich folgendes Problem:

Immer wenn ich irgendein Bild durch das Bild schiebe (Bei ca. 70 Frames mit Waittimer) gibt es ca. 5 kleine Ruckler.

Mein Bildschirm, um das zu veranschaulichen:
------------Ruckeler-------------Ruckler ------------Ruckler-------------usw.

An den Frames kanns nicht liegen, bei anderen Spielen auf 70 FPS läuft alles prima.
Was ist da los?

diGGa

GruppenKaspar

BeitragMi, Apr 27, 2005 15:39
Antworten mit Zitat
Benutzer-Profile anzeigen
code am besten zeigen vll is das n code fehler
Gestern Nacht Schlug der Regen an mein Fenster
Ich ging durch das dunkle Zimmer und
glaubte im Licht der Straßenlampe
Den Geist unseres jahrhunderts auf der
Straße zu sehen
Der uns sagte, daß wir alle am Rande
des Abgrunds stehen.
- Al Steward


Athlon 64 3000+ / Radeon 9600 / 1024mb ddram
 

noir

Betreff: Re: Ruckeln!

BeitragMi, Apr 27, 2005 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Mogon hat Folgendes geschrieben:


Immer wenn ich irgendein Bild durch das Bild schiebe ---


wenns noch etwas genauer ginge? codeausschnitt?
Fragt und man wird euch helfen

Das Alternativ BlitzBasic-Forum: FreeCoder
Einfach chatten: BlitzChat
Code&Text schnell und einfach pasten: FreePasting
 

Mogon

BeitragMi, Apr 27, 2005 15:48
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
timer = CreateTimer(70)
player = LoadImage(\"player.png\")

Graphics 800,600

SetBuffer BackBuffer()

Repeat
Cls

DrawImage player,x,300

x = x + 1
If x > 800 Then x = -50

WaitTimer timer
Flip
Until KeyHit(1)


Nur so als Beispiel. Ist auch bei komplexeren Sachen so.

EDIT: Ich meinte natürlich, wenn ich eine Grafik durch Veränderung ihrer Koordinaten auf dem Bildschirm verschiebe Very Happy
 

trooper

BeitragMi, Apr 27, 2005 15:59
Antworten mit Zitat
Benutzer-Profile anzeigen
wahrscheinlich liegt es an waittimer ... eleganter wäre
If x > 800 Then x = -50*deltatime

so bewegt sich die figur auch immer gleichschnell
(deltatime ist die vergange zeit seit dem letzten frame ...)
-- imtane.de.vu --
a cherring ping

Sir Dan

BeitragMi, Apr 27, 2005 15:59
Antworten mit Zitat
Benutzer-Profile anzeigen
loadimage vor graphics? Dat geht dochnicht!
(\_/)
(O.o)
(> <) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.
 

Mogon

BeitragMi, Apr 27, 2005 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
@ trooper: Ich glaube du hast nicht verstanden, was ich meine. Es ruckelt einfach alle 100 Pixel mal, als ob das Bild einen kleinen Sprung machen würde. Probiert den Code mal aus udnn schreibt, ob das bei euch auch der Fall ist.

@ Sir Dan: Doch, klar geht das. Zumindest bei mir, ich hab BlitzPlus 1.4
  • Zuletzt bearbeitet von Mogon am Mi, Apr 27, 2005 16:09, insgesamt einmal bearbeitet

Spikespine

BeitragMi, Apr 27, 2005 16:09
Antworten mit Zitat
Benutzer-Profile anzeigen
jo, mit BB+ gehts.

Spike
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax
 

hitokiri

BeitragMi, Apr 27, 2005 16:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Nur so ne Frage...bei mir ist das immer der Fall, wenn ich den debugger anhabe. Schonmal probiert fullscreen ohne debugger ?
 

Gerhard

BeitragMi, Apr 27, 2005 19:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Nach meinem Verständnis ist der Ruckler ok.
Eine samtweiche Bewegung hast du (in der Regel) durch backbuffer und flip - egal, ob der Bildschirm mit 60 Hz oder 100 Hz läuft.

Nur bewegt sich dein zu verschiebendes Bild normalerweise auf dem 100 Hz-Rechner schneller.

Um das zu vermeiden, verwendest du waittimer. Mit waittimer erreichst du, dass dein Programm auf jedem Rechner gleich schnell läuft. Damit geht aber die samtweiche Bewegung in die Hose, da dein Takt in der Regel nicht mit dem Bildschirmtakt übereinstimmt. Folge sind kleine Ruckler, die aber zumeist nicht auffallen.

Besser ist es meiner Meinung nach, keinen waittimer zu verwenden, sondern alle Bewegungen mit einem Faktor zu multiplizieren. Dieser Faktor wäre dann auf dem 120 Hz-Rechner halb so groß wie auf dem 60 Hz-Rechner. Die Bewegung ist samtweich - aber eben auf dem schnellen Rechner auch nicht schneller als auf dem langsamen.
 

Mogon

BeitragMi, Apr 27, 2005 19:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank für die Resonanz! Gerhard hat meine Frage gänzlich beantwortet, vielen Dank.

@hitokiri: Für sowas hätte ich ja wohl nicht ins Forum posten müssen. Razz

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group