Delphi-PRAXiS
Seite 2 von 6     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Suche Hilfe bei Bewegung einer Form (https://www.delphipraxis.net/175411-suche-hilfe-bei-bewegung-einer-form.html)

abi9 19. Jun 2013 15:25

AW: Suche Hilfe bei Bewegung einer Form
 
Zitat:

Zitat von DeddyH (Beitrag 1219065)
Woher sollen wir das wissen, wenn wir die Klassen nicht kennen? Ich frag ja nicht umsonst die ganze Zeit danach.

Also soll ich hier die Kopf-Klasse reinkopieren?

Ginko 19. Jun 2013 15:26

AW: Suche Hilfe bei Bewegung einer Form
 
Oder wenns zu lang ist einen Anhang machen, da am besten mal alle "mT" Units mit rein.

DeddyH 19. Jun 2013 15:26

AW: Suche Hilfe bei Bewegung einer Form
 
mTHintergrund, mTSchlange, mTFutter und mTKopf werden wir wohl alle brauchen.

[edit] Und wie mein Vorredner schon sagte, bitte als Anhang ;) [/edit]

abi9 19. Jun 2013 15:30

AW: Suche Hilfe bei Bewegung einer Form
 
Liste der Anhänge anzeigen (Anzahl: 5)
Anhang 39430

Anhang 39431

Anhang 39432

Anhang 39433

Anhang 39434
Zitat:

Zitat von deddyh (Beitrag 1219070)
mthintergrund, mtschlange, mtfutter und mtkopf werden wir wohl alle brauchen.

[edit] und wie mein vorredner schon sagte, bitte als anhang ;) [/edit]


Der schöne Günther 19. Jun 2013 15:31

AW: Suche Hilfe bei Bewegung einer Form
 
Ich bleibe dabei, die Tastendrucke funktionieren noch nicht einmal. Ersetze das "bewegeSchlange" doch mal durch ein ShowMessage, allein das wird schon nicht kommen. Oder ich mache grade auch etwas gewaltig falsch:

Ich bekomme ohne weitere Hilfsmittel kein "onKeyDown" auf einer Form und das noch mit Pfeiltasten zum Laufen. Mit anderen Tasten wie Buchstaben allerdings schon.

abi9 19. Jun 2013 15:32

AW: Suche Hilfe bei Bewegung einer Form
 
Liste der Anhänge anzeigen (Anzahl: 1)
Anhang 39435

baumina 19. Jun 2013 15:34

AW: Suche Hilfe bei Bewegung einer Form
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1219072)
Ich bleibe dabei, die Tastendrucke funktionieren noch nicht einmal. Ersetze das "bewegeSchlange" doch mal durch ein ShowMessage, allein das wird schon nicht kommen. Oder ich mache grade auch etwas gewaltig falsch:

Ich bekomme ohne weitere Hilfsmittel kein "onKeyDown" auf einer Form und das noch mit Pfeiltasten zum Laufen. Mit anderen Tasten wie Buchstaben allerdings schon.

Mein kleines Testprogramm (Formular + Image drauf) kommt in die OnKeyDown rein, wenn ich die Pfeiltasten nehm, daran liegts nicht. Es kann nur am Timer oder am Zeichnen liegen.

nahpets 19. Jun 2013 15:35

AW: Suche Hilfe bei Bewegung einer Form
 
@DeddyH
Zitat:

Zitat von DeddyH (Beitrag 1219058)
Wie sehen denn die verwendeten Klassen (THintergund etc.) aus? Und gewöhn Dir lieber gar nicht erst an, mit true oder false zu vergleichen, das kann zu falschen Ergebnissen führen.
Die OnKeyDown-Methode würde ich etwas anders schreiben:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case Key of
    VK_LEFT:
      Links := True;
    VK_Right:
      Rechts := True;
    VK_Up:
      Hoch := True;
    VK_Down
      Runter := True;
  end;
end;

Dein verkürzter Quelltext ist zwar syntaktisch korrekt und sicherlich "besser" als das Original: Aber er enthält weiterhin den gleichen Fehler: Ist Links einmal True, bleibt Links = True (dito für die drei anderen Variabeln).
Delphi-Quellcode:
procedure TForm1.TiGameEngineTimer (Sender: TObject);
   begin
     IF (Links = True) and (Kopf.GetZXPosition > 0) Then
       begin
         Kopf.bewege_links();
       end;
 ...
Ist der Kopf einmal links, bleibt er immer links.
Mir erscheint eine derartige Lösung sinnvoller:
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Links := Key = VK_LEFT;
  Rechts := Key = VK_Right;
  Hoch  := Key = VK_Up;
  Runter := Key = VK_Down;
end;
Key kann hier die Werte 37 bis 40 enthalten, die problemlos beim Form ankommen, diesbezügliche Befürchtungen sind unbegründet.
Mit
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  ShowMessage(IntToStr(key));
end;
schön überprüfbar (zumindest bei Delphi 7). Im Debugger wird's nicht anders aussehen.

abi9 19. Jun 2013 15:38

AW: Suche Hilfe bei Bewegung einer Form
 
Ein Freund meinte außerdem irgendwie, dass der Kopf nur auf den Koordinaten 250, 300 createt wird

Kopf:= TKopf.create(250,300,Image1,Futter); Liegt da irgendwo der Fehler?

Habt ihr das eigentlich berücksichtigt? :) Hatte ich ja eben geschrieben

abi9 19. Jun 2013 15:40

AW: Suche Hilfe bei Bewegung einer Form
 
Zitat:

Zitat von nahpets (Beitrag 1219075)
@DeddyH
[/DELPHI]

Dein verkürzter Quelltext ist zwar syntaktisch korrekt und sicherlich "besser" als das Original: Aber er enthält weiterhin den gleichen Fehler: Ist Links einmal True, bleibt Links = True (dito für die drei anderen Variabeln).
Delphi-Quellcode:
procedure TForm1.TiGameEngineTimer (Sender: TObject);
   begin
     IF (Links = True) and (Kopf.GetZXPosition > 0) Then
       begin
         Kopf.bewege_links();
       end;
 ...
Ist der Kopf einmal links, bleibt er immer links.
[/QUOTE]

Bei Snake soll die Schlange doch auch durchgehend in diese Richtung verlaufen


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:10 Uhr.
Seite 2 von 6     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz