Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 16, 2025 21:54

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 38 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 04, 2006 18:59 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 29, 2005 21:11
Beiträge: 88
Wohnort: Bonn
okay hab ne version ohne LAN geschrieben - bringt aber auch nichts :cry:
kann das denn sein, dass ein 2D-programm mit 28 x 20 gerenderten Terrain-Quads und einem Character-Quad ruckelt??

Hab die No-LAN-Version mal beigefügt... hmm, doch nicht, ist zu groß
http://www.doppelreim.com/mr/test.rar


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 04, 2006 19:05 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Nö. Das dürfte niemals passieren.

Check nochmal ob irgendwelche GL-Fehler auftreten. Die müssen alle raus bevor man geschwindigkeit beurteilen kann. Wenn du dann immer noch net weiterweißt mal deinen Code posten.

Hast du eigentlich dir mal den Hersteller anzeigen lassen? (Also vom Treiber) Wenn da Microsoft steht, brauchst du dich net wundern wenns langsam geht. Dann hast du nämlich nen Softwarerenderer am laufen. ;)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 04, 2006 19:29 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 29, 2005 21:11
Beiträge: 88
Wohnort: Bonn
neue version unter der gleichen adresse verfügbar
fehler-string wird an gezeigt, lautet bei mir aber immer "no error"

was für einen treiber meinst du?
mein grafikkarten treiber (ati radeon 9200SE) ist von ati, das war glaub ich so ein "einer für alle" oder "einer für viele" treiber paket


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 04, 2006 20:03 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Das Internet ist es nicht.
Die neue Version hat dasselbe Problem:
Sobald ich die Richtung ändere hängt er für ne kurze Zeit. Erst danach läuft er normal weiter.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 04, 2006 21:13 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 29, 2005 21:11
Beiträge: 88
Wohnort: Bonn
das ist nicht das hauptproblem - ich hab hier auf nem 2. testrechner einfach nur ein extrem langsam laufendes spiel

ich spekuliere, aber es ist wirklich ein bisschen an den haaren herbeigezogen, dass die abgestockende bewegug, die du beim ändern der richtung erfährst mit der wiederholverzögerung für die tastatur zu tun hat, also ichmeine die zeit die vergeht, wenn man in einem text-editor, eine taste gedrückt hält, bis die wiederholung anfängt... ja, scheiße ausgedrückt, sorry..


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 05, 2006 01:07 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
AAAAAAAAAAHHHHHHHHHHH!!!!!!!!!!!!!!!

Sag das doch gleich...

Empfehlung: Ebenso wie beim Timebased Movement: Lies dir Sashas Bomberman Tutorials durch. Dort wird iirc auch auf das Tastenproblem eingegangen.

Die Lösung ist denkbar einfach: Beim niederdrücken (klingt irgendwie brutal, ne? ^^) merkst du dir in einem Array [0..255] of boolean; den Tastenstatus. Du setzt beim drücken (also sowas wie OnKeyDown) von zum Bleistift der Taste #32 dieses Array an der Stelle 32 auf true. Im deiner idle-Schleife überprüfst du dann lediglich, ob das array an dieser Stelle 32 true ist. Wenn ja, wird die Taste gedrückt.
Beim loslassen der Taste (sowas wie OnKeyUp) musst du dann das Array an der Stelle 32 wieder auf false stellen, damit die Taste auch wieder losgelassen wird. ;)

Somit kann man sich elegant um die "Wiederholrate" (So heißt das Teil nämlich) drücken ;)

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 05, 2006 12:22 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Also Frase, das geht eindeutig komfortabler!
mit
Code:
  1. if GetAsyncKeyState(vk_space) < 0

kannst du überprüfen, ob ne Taste gedrückt ist.

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 05, 2006 12:53 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
ja gut ;) Aber meine Lösung ist schneller als deine ;)

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 05, 2006 12:58 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Wer weis? GetAsyncKeyState ist ja eine systemnahe Funktion, während so ein OnKeyDown-Aufruf evtl viel länger braucht...

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 05, 2006 13:00 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
ja aber onkeydown wird nur einmal aufgerufen, wenn man die Taste drückt und dann höchtens noch je nach Wiederholungsrate.
Du aber lässt dir in jedem Frame was von der Funktion zurückliefern...

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 05, 2006 13:05 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Außerdem wird die Nachricht für den Tastendruck von Windows sowieso ans Fenster geschickt, egal ob man OnKeyDown zugewiesen hat oder nicht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 05, 2006 13:18 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Achso....na dann ok, danke für die Info

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 05, 2006 16:04 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 29, 2005 21:11
Beiträge: 88
Wohnort: Bonn
Frase hat geschrieben:
AAAAAAAAAAHHHHHHHHHHH!!!!!!!!!!!!!!!


NNNEEEEEEEIIIIIINNN 8)

Da hab ich mich wieder schwammig ausgedrückt... :oops:
Ich wollte sagen, dass das Wiederholraten-Problem nicht mein Hauptproblem ist, sondern eben der generell extrem langsame Spielablauf...
sag mal, i0n0s, kann es sein, dass dieses Problem bei dir überhaupt nicht auftritt?

jetzt les ich mir erst mal die empfohlenen tutorials durch und gucke, dass ich timebased movements einbaue
oder nee, erst mal geh ich was essen :P


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 05, 2006 16:30 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Bei mir tritt es mit das Problem mit dem Loslaufen auf.
Wenn er läuft, läuft er aber in der richtigen Geschwindigkeit (jedenfalls sieht es für mich richtig aus)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 06, 2006 12:20 
Offline
DGL Member
Benutzeravatar

Registriert: Di Nov 29, 2005 21:11
Beiträge: 88
Wohnort: Bonn
wegen der schmach hab ich es bis jetzt noch nicht verraten, aber bis eben hab ich noch nen timer statt OnIdle verwendet... :oops:
naja, jetzt läuft das rendern (glaub ich) über das OnIdle Ereignis und ist auch bei mir gut schneller geworden
habe mich am timebased movement versucht, jedoch eine verständnis frage dazu:
früher hab ich die figur immer um 2 pixel pro "rendervorgang" versetzt, wenn ich jetzt den zeitfaktor damit verrechne komm ich doch recht wahrscheinlich auf halbe pixel, wo delphi dann anfängt über inkompatible typen zu meckern
wenn ich den timefaktor runde ist es wieder nicht genau und auf meinem system wird er manchmal auf 0 gerundet wodurch die spielfigur an den rand des spielfelds gesetzt wird

ich versuchs mal auf dem anderen testrechner


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 38 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.017s | 18 Queries | GZIP : On ]