![]() |
Re: Snake für die Schule programmieren,Pause;Highscoures ein
Hallo da bin ich wieder. Leider habe ich nichts darüber gefunden, wie es schnell genug mit den Pfeiltasten steuern kann. Jemand ne Idee?
Dann noch das Problem mit der Highscore, es müsse eine datei angelegt werden, in der der eingegebene Name und die Punkte gespeichert werden. Leider habe ich davon überhaupt keinen Plan |
Re: Snake für die Schule programmieren,Pause;Highscoures ein
Entweder nimmst d
u dafür eine Ini-Datei oder einen FileStream. Beispiel Filestream:
Delphi-Quellcode:
Ohne garantie bin heut nich so gut drauf^^
var
fs: TFileStream; begin try fs:= TFileStream.Create(Dateiname, fmCreate); fs.Write(Length(RekordName), SizeOf(Integer)); fs.Write(RekordName, SizeOf(RekordName)); fs.Write(Length(RekordZahl), SizeOf(Integer)); fs.Write(RekordZahl, SizeOf(RekordZahl)); finally fs.Free; end; [...] var fs: TFileStream; begin fs:= TFileStream.Create(Dateiname, fmOpenRead); try fs.Read(Laenge, SizeOf(Integer)); fs.Read(AktuellerRekordName, Laenge); fs.Read(Laenge, SizeOf(Integer)); fs.Read(AktuellerRekord, Laenge); finally fs.Free; Also, verbessert mich wenn ich falsch liege oder stehe^^ |
Re: Snake für die Schule programmieren,Pause;Highscoures ein
Danke dir, leider verstehe ich das net....^^
Es muss sich doch auch ein edit fenster öffnen wo ich den namen eintragen muss. kannst du mir helfen bei den pfeiltasten die zu steuern? |
Re: Snake für die Schule programmieren,Pause;Highscoures ein
also bei onkeydown kannst du die pfeiltasten (
![]() ![]() |
Re: Snake für die Schule programmieren,Pause;Highscoures ein
Sry ich habe davon keine Ahnung. Verstehe nur Bahnhof. Onekeydown soll zu langsam sein habe ich gehört---
|
Re: Snake für die Schule programmieren,Pause;Highscoures ein
Keine Ahnung ist keine Entschuldigung ;)
In Spielen ist es oft üblich, eine enge Haupt- oder Renderschleife laufen zu lassen, in der alle Stati des Programmes (deshalb auch "Statemachine-Ansatz") überprüft und Aktionen ausgeführt werden:
Delphi-Quellcode:
Ich denke nicht, dass OnKeyDown langsam wäre; OnKeyDown reagiert auf die "WM_KEYDN" (o.ä. ;) ) Windows-Message und sollte über die Form unmittelbar erreicht werden. Dort kannst du dann die Eigenschaft Key überprüfen:
while not bClose do
begin Application.ProcessMessages; //wenn du mit der VCL und mit Stuerelementen arbeiten willst, musst du hier die WIndows-Nachrichten überprüfen if GetAsyncKeyState(VK_LEFT) < 0 then //sollte man natürlich in eine Prozedur / Funktion auslagern .... Render; //Frame malen end;
Delphi-Quellcode:
if Key = VK_LEFT then
... |
Re: Snake für die Schule programmieren,Pause;Highscoures ein
Ich finde letzteres einfacher. Nur wie baue ich das in den quelltext ein. habe z.zt prozeduren, für die buttonclicks
|
Re: Snake für die Schule programmieren,Pause;Highscoures ein
Du hast bereits mit den Buttons entsprechende Prozeduren für die Bewegung? dann so:
- Auf die Form gehen - Im OI auf "Ereignisse" - auf "OnKeyDown" doppelklicken - dann das in die neue Prozedur eintragen:
Delphi-Quellcode:
Du rufst also einfach die Prozeduren auf, die du schon bei den Buttons benutzt. Warum das irgendwie langsamer sein sollte als anders, weiß ich nicht...
case Key of
VK_LEFT: Schlange_Links(self); // wird bei dir wohl Button1Click oder so heißen ;) VK_RIGHT: ... end; Evenutell solltest du KeyPreview der Form im OI auf true stellen, damit du alle Tastendrücke mitkriegst. |
Re: Snake für die Schule programmieren,Pause;Highscoures ein
Da kommt immer ) erwartet aber : gefunden.... In der parameterliste ist irgendwas falsch...
was muss da rein |
Re: Snake für die Schule programmieren,Pause;Highscoures ein
Und wenn ich da die Klammer mach wo er sie haben will, dann kommt
"Dies Form des Methodenaufrufs ist nur für Klassenmethoden erlaubt" |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:53 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