AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Frage zur Tastatureingabe und Kollisionsabfrage
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zur Tastatureingabe und Kollisionsabfrage

Ein Thema von Jack der 3 · begonnen am 1. Nov 2006 · letzter Beitrag vom 4. Nov 2006
Antwort Antwort
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#1

Re: Frage

  Alt 2. Nov 2006, 19:07
Also erst einmal muss ich sagen, dass dieser Code sehr unübersichtlich ist, und dass man ihn sehr einfach auf diese Größe kriegen kann:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
  if char (key) = 'Wthen
    movie1.Top:= movie1.Top -10;
  if char (key) = 'Sthen
    movie1.Top:= movie1.Top +10;
  if char (key) = 'Athen
    movie1.left:= movie1.left -10;
  if char (key) = 'Dthen
    movie1.left:= movie1.left +10;

  if key = VK_UP then
    movie2.Top:= movie2.Top -10;
  if key = vk_down then
    movie2.Top:= movie2.Top +10;
  if key = vk_left then
    movie2.left:= movie2.left -10;
  if key = vk_right then
    movie2.left:= movie2.left +10;
end;
So finde ich das schonmal viel übersichtlicher.

Und jetzt zu deinem Problem, dass du nicht mehrere Bewegungen auf einmal ausführen kannst.
1) Nimm dir einen Timer und setze ihn auf das Formular.
2) Nimm den gleichen Code wie oben, aber ersetzeif Char(key) = 'Wthen durch if getasynckeystate(ord('W')) < 0 then das wiederholst du für die anderen If-Abfragen nach dem gleichen Prinzip.
3) Jetzt setze das Intervall des Timers auf eine etwas höhere Geschwindigkeit, z.b. 50 ms.

Die Bewegung sollte so funktionieren.

Zum Thema Kollision:
http://www.dsdt.info/tipps/?id=416&search=rect

Dürfte genau das richtige für dich sein


@EWeiss: ich wusste gar nicht, dass man die Keys mit AND verknüpfen kann (und was gescheites dabei rauskommt) o.O
Das probier ich mal aus^^
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:31 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