Delphi-PRAXiS
Seite 4 von 8   « Erste     234 56     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Snake für die Schule programmieren,Pause;Highscoures einbaun (https://www.delphipraxis.net/71770-snake-fuer-die-schule-programmieren-pause%3Bhighscoures-einbaun.html)

MarkusUhl 26. Jun 2006 13:36

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

inherited 26. Jun 2006 14:22

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:
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;
Ohne garantie bin heut nich so gut drauf^^
Also, verbessert mich wenn ich falsch liege oder stehe^^

MarkusUhl 26. Jun 2006 14:25

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?

DGL-luke 26. Jun 2006 14:41

Re: Snake für die Schule programmieren,Pause;Highscoures ein
 
also bei onkeydown kannst du die pfeiltasten (MSDN-Library durchsuchenVK_LEFT etc.) abprüfen, außerdem in einer schleife o.ä. über MSDN-Library durchsuchengetAsyncKeyState

MarkusUhl 26. Jun 2006 14:44

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---

DGL-luke 26. Jun 2006 15:52

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:
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;
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:

Delphi-Quellcode:
if Key = VK_LEFT then
  ...

MarkusUhl 26. Jun 2006 16:01

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

DGL-luke 26. Jun 2006 16:49

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:
case Key of
  VK_LEFT: Schlange_Links(self); // wird bei dir wohl Button1Click oder so heißen ;)
  VK_RIGHT: ...
end;
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...

Evenutell solltest du KeyPreview der Form im OI auf true stellen, damit du alle Tastendrücke mitkriegst.

MarkusUhl 26. Jun 2006 20:56

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

MarkusUhl 26. Jun 2006 20:58

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.
Seite 4 von 8   « Erste     234 56     Letzte »    

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