AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Suche Hilfe bei Bewegung einer Form
Thema durchsuchen
Ansicht
Themen-Optionen

Suche Hilfe bei Bewegung einer Form

Ein Thema von abi9 · begonnen am 19. Jun 2013 · letzter Beitrag vom 21. Jun 2013
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    
abi9

Registriert seit: 19. Jun 2013
20 Beiträge
 
#11

AW: Suche Hilfe bei Bewegung einer Form

  Alt 19. Jun 2013, 15:25
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?
  Mit Zitat antworten Zitat
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#12

AW: Suche Hilfe bei Bewegung einer Form

  Alt 19. Jun 2013, 15:26
Oder wenns zu lang ist einen Anhang machen, da am besten mal alle "mT" Units mit rein.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Suche Hilfe bei Bewegung einer Form

  Alt 19. Jun 2013, 15:26
mTHintergrund, mTSchlange, mTFutter und mTKopf werden wir wohl alle brauchen.

[edit] Und wie mein Vorredner schon sagte, bitte als Anhang [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
abi9

Registriert seit: 19. Jun 2013
20 Beiträge
 
#14

AW: Suche Hilfe bei Bewegung einer Form

  Alt 19. Jun 2013, 15:30
mTFutter.pas

mTHintergrund.pas

mTKopf.pas

mTSchlange.pas

mTSchwanz.pas
mthintergrund, mtschlange, mtfutter und mtkopf werden wir wohl alle brauchen.

[edit] und wie mein vorredner schon sagte, bitte als anhang [/edit]
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

AW: Suche Hilfe bei Bewegung einer Form

  Alt 19. Jun 2013, 15:31
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.
  Mit Zitat antworten Zitat
abi9

Registriert seit: 19. Jun 2013
20 Beiträge
 
#16

AW: Suche Hilfe bei Bewegung einer Form

  Alt 19. Jun 2013, 15:32
mTSnake.pas
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Suche Hilfe bei Bewegung einer Form

  Alt 19. Jun 2013, 15:34
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.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#18

AW: Suche Hilfe bei Bewegung einer Form

  Alt 19. Jun 2013, 15:35
@DeddyH
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.
  Mit Zitat antworten Zitat
abi9

Registriert seit: 19. Jun 2013
20 Beiträge
 
#19

AW: Suche Hilfe bei Bewegung einer Form

  Alt 19. Jun 2013, 15:38
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
  Mit Zitat antworten Zitat
abi9

Registriert seit: 19. Jun 2013
20 Beiträge
 
#20

AW: Suche Hilfe bei Bewegung einer Form

  Alt 19. Jun 2013, 15:40
@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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:51 Uhr.
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