![]() |
Re: Python (Snake) Verbesserungsvorschläge
passiert der fehler eigentl. nur weil rechner zu langsam oder wegen was anderem???
|
Re: Python (Snake) Verbesserungsvorschläge
Zum Highscore: wenn man den knackt, soll man seinen Namen ja ohne Leerzeichen eingeben:
1. wieso? 2. wenn man doch eins eingibt oder wenn man Zahlen eingibt, wird ein Delphi-Fehler angezeigt und der eigene Highscore wird überhaupt nicht angezeigt und auch nicht gespeichert > lässt sich deutlich besser lösen 3. warum verbietest du nicht einfach die Eingabe eines Leerzeichens, z.B. mit
Delphi-Quellcode:
Das EditXKeypress natürlich noch auf deine Nummer des Edits anpassen.
procedure TForm1.EditXKeyPress(Sender: TObject; var Key: Char);
begin if not (Key in ['A'..'Z', 'a'..'z', Char(VK_BACK)]) then Key := #0; end; 4. Wenn man dann seinen Namen eingegeben hat, wird der neue Highscore nicht sofort in der Anzeige aktualisiert, sondern erst, wenn man ein neues Spiel mit ENTER begonnen hat. 5. Man kann bei der Eingabe des Namens einen unendlich langen Namen eingeben. Ich würde die maximale Eingabelänge des Edits mit dem MaxLength-Wert setzen 6. Bei der Frage nach der Zeit in Millisekunden kann man auch Buchstaben eingeben. Deshalb analog zu oben bitte folgenden Code im Keypress-Event verwenden:
Delphi-Quellcode:
Außerdem würde ich dann nochmal vom Programm prüfen lassen, ob wirklich nur Nummern eingegeben wurden.
procedure TForm1.EditXKeyPress(Sender: TObject; var Key: Char);
begin if not (Key in ['0'..'9', Char(VK_BACK)]) then Key := #0; end; Aber ansonsten ist dein Programm wirklich gut :thumb: |
Re: Python (Snake) Verbesserungsvorschläge
@
cruiser: ich finde zu deinem punkt absolut nix... könntest du mir mal einen teil vom code (zur tasetnabfrage) per PM oder so schicken? |
Re: Python (Snake) Verbesserungsvorschläge
Mal sehn wie man das auf die schnelle adaptieren könnte... bei nem TPoint ist der Nachteil, dass du's nicht direkt im case nutzen kannst :/
wenn isKeyPressed eine Funktion ist die prüft ob in der Zwischenzeit eine bestimmte Taste gedrückt wurde (Die Arbeit nehm ich dir nicht ab ;) ) könnt mans etwa so machen (und zwar im OnTimer):
Delphi-Quellcode:
Das ist nicht geprüft aber so müsst es sauber gehn ;)// Deklarationen: // richtung : globalevariable vom typ TRichtung // bLeft etc. : lokale Variable vom typ Boolean if isKeyPressed(VK_Left) then bLeft := true; // wiederholen für die anderen Richtungen // => du weisst welche Tasten gedrückt wurden case Richtung of riLeft : begin if bHoch then richtung := riHoch; if bRunter then richtung := riRunter; end; // wiederholen für die anderen 3 Fälle end; // auf richtung reagieren und entsprechend zeichnen |
Re: Python (Snake) Verbesserungsvorschläge
lass mich raten und die procedure
isKeyPressed muss mit GetAsyncKeyState gemacht werden oder :) |
Re: Python (Snake) Verbesserungsvorschläge
Geraten, suche benutzt oder PM gelesen? :twisted:
|
Re: Python (Snake) Verbesserungsvorschläge
immer diese verdammten besserwisser ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz