PingPong ball stottert

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Ronen

Betreff: PingPong ball stottert

BeitragSa, Nov 03, 2007 15:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Ich bin relativ neu und habe mir ein paar tutorials angeschaut. Nun wollte ich ein kleines Pingpong schreiben. Da ich später auch gerne Netzwerkspiele machen möchte, wollte ich direkt damit anfangen jedes spiel mit einer FPS bremse zu programmieren. Habe mir dann mit Createtimer eine bremse gemacht und Flip auf 0 gesetzt. Doch nun stottert der Ball leider von einer ecke zur nächsten. Hoffe ihr könnt mir helfen.

Code: [AUSKLAPPEN]

Graphics 320,240,16,1
SetBuffer BackBuffer()
AppTitle "Pingpong"
SeedRnd MilliSecs()

Global Frametimer = CreateTimer(60)

Global Sp1X = 0, Sp1Y = 95, Sp1P, Sp1S, Sp1Gr = 50, Sp1name$ = "Spieler1"
Global Sp2X = 315, Sp2Y = 95, Sp2P, Sp2S, Sp2Gr = 50, Sp2name$ = "Spieler2"
Global BX#= 158, BY#=120, BxGr = 5, ByGr = 5, BXS# = 1, BYS# = 1

Repeat
WaitTimer(Frametimer)
Cls


Color 0,255,0
Rect 160,0,1,320
Rect 0,0,320,1
Rect 0,239,320,1
Color 255,0,0
Rect Sp1X, Sp1Y, 5, Sp1Gr
Color 0,0,255
Rect Sp2X, Sp2Y, 5, Sp2Gr
Color 255,255,255
Oval BX,BY,BxGr,ByGr

If KeyDown(200) And Sp2Y > 0 Then Sp2Y = Sp2Y - 1
If KeyDown(208) And Sp2Y < 190 Then Sp2Y = Sp2Y + 1

BX = BX + BXS
BY = BY + BYS

If BX < 1 Then BXS = -BXS
If BX > 315 Then BXS = -BXS
If BY < 1 Then BYS = -BYS
If BY > 235 Then BYS = -BYS


Flip 0
Until KeyDown(1)
FreeTimer frametimer
End

ZaP

BeitragSa, Nov 03, 2007 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Also bei mir läuft das super.
Starfare: Worklog, Website (download)
 

Ronen

BeitragSa, Nov 03, 2007 16:55
Antworten mit Zitat
Benutzer-Profile anzeigen
naja bei flip 1 läuft es normal... liegt es vielleicht an meinen Bildschirm ? Der ist schon etwas älter
 

TeDy14

Gast

BeitragSa, Nov 03, 2007 17:50
Antworten mit Zitat
Wenn du flip 0 machst dann aktualisiert das Bild sofort
und bei flip 1 wartet er erst auf vsync (Für flimmerfrei bilder s.Onlinehilfe)

TeDy
 

Ronen

BeitragSa, Nov 03, 2007 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm hab grade gesehen, das nebenbei sich noch ein thema damit beschäftigt. Habe dann stattdessen nen Timer mit Millisecs gebaut.
Klappt soweit gut. Kann ich so einen Timer auch für Multiplayer spiele verwenden ? Oder is Millisecs ungenau ? Das Spiel läuft ungefähr flüssig wenn ich 5 ms stoppe.. Kann ich so 60Fps ca ansteuern mit dem Timer ?
 

HyDr0x

BeitragSo, Nov 04, 2007 13:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Millisecs gibt die Zeit nach dem Windows start an, ist also für den Zufall ganz gut aber als Timer?
Ganz nebenbei, ich finde das 60 fps ein bissel hoch ist für ein 2D Ping Pong Spiel. 20 - 30 reichen da vollkommen.
 

Dreamora

BeitragSo, Nov 04, 2007 13:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Sicher nutzt man das als Timer indem man Zeitdifferenzen zwischen dem letzten Check und jetzt überprüft.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

mas93

BeitragSo, Nov 04, 2007 13:20
Antworten mit Zitat
Benutzer-Profile anzeigen
ähm @Hydr0x: 20-30 fps? Das Menschliche Auge empfindet 30 Bilder/s für angenehm.(Oder hab ich da was falsch verstanden)


mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]
 

Dreamora

BeitragSo, Nov 04, 2007 13:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, aber bei 2D ist das mit den FPS bei weitem nicht so ein Problem wie bei 3D. Bei 2D fallen einem niedrige FPS nur auf wenn das Spiel actionreich ist und die Eingabe nicht sinnvoll schnell reagiert.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
  • Zuletzt bearbeitet von Dreamora am So, Nov 04, 2007 13:56, insgesamt einmal bearbeitet

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Nov 04, 2007 13:45
Antworten mit Zitat
Benutzer-Profile anzeigen
mas93 hat Folgendes geschrieben:
ähm @Hydr0x: 20-30 fps? Das Menschliche Auge empfindet 30 Bilder/s für angenehm.(Oder hab ich da was falsch verstanden)


Bei den alten Fernsehbildern mag das stimmen, da bei diesen trotz nur 30 FPS fast die gesamte Zwischenzeit mit aufgenommen wurde. Bei Computerbildern wird eine 'Momentaufnahme' gemacht und im nächsten Frame wieder eine neue 'Momentaufnahme' und im Zwischenraum ist eine Leere. Es entsteht also keine Bewegungsunschärfe die für eine weiche Darstellung wichtig ist. Von daher kann man unter Umständen noch 80 FPS als Einzelbilder wahrnehmen. Wie Dreamora schon sagte, hängt es auch vom Spiel ab.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

Ronen

BeitragSo, Nov 04, 2007 14:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für eure Antworten.

Also habe nun Millisecs als Timer und der Ball stottert auch nicht mehr. Warum sollte ich mit den FPS runtergehen ? Das spiel läuft ohne Bremse auf 1000FPS... Denke 60fps sollte sogut wie auf jeden Rechner laufen... Auf mein Laptop mit 600Mgz läuft es auch mit 60Fps ohne Probleme. Oder hat das einen anderen grund warum ich runter gehen sollte ?
 

Dreamora

BeitragSo, Nov 04, 2007 15:03
Antworten mit Zitat
Benutzer-Profile anzeigen
In erster Linie um das System zu entlasten -> Energie Einsparung was speziell auf Notebooks sicher gut ankommt.

Aber dafür reichts wenn du es dem User erlaubst festzulegen ob VSync genutzt wird oder nicht.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group