Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Frage zur Tastatureingabe und Kollisionsabfrage (https://www.delphipraxis.net/80027-frage-zur-tastatureingabe-und-kollisionsabfrage.html)

Jack der 3 1. Nov 2006 22:21


Frage zur Tastatureingabe und Kollisionsabfrage
 
Hallo bin neu hier da ich erst seit 2 jahren programmiere und gerade mit einem (sehr) leichtem spiel "fangen" an.

Doch schon gibts die ersten probleme:

1)

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if char (key) = 'W' then
begin
movie1.Top:= movie1.Top -10;

end;

begin
if char (key) = 'S' then
begin
movie1.Top:= movie1.Top +10;
end;

begin
if char (key) = 'A' then
begin
movie1.left:= movie1.left -10;
end;

begin
if char (key) = 'D' then
begin
movie1.left:= movie1.left +10;
end;
begin
if key = VK_UP then
begin
movie2.Top:= movie2.Top -10;

end;

begin
if key = vk_down then
begin
movie2.Top:= movie2.Top +10;
end;

begin
if key = vk_left then
begin
movie2.left:= movie2.left -10;
end;

begin
if key = vk_right then
begin
movie2.left:= movie2.left +10;


end;
end;
end;
end;
end;
end;
end;
end;
(movie is ein eiger komponent ähnlich wie Image)


das is ne teil des quelltext. Alles schön und gut aber ich kann die zwei kreise zwar mit den Pfeiltasten und W, A, S, D bewegen aber nicht gleichzeitig!

2) Das spiel soll ja ein wie fangen sein also, dass wenn der eine kreis den anderen berührt soll zBs eine messagebox aufgerufen werden.
Wie soll das gehen??

Jack der 3

[edit=Phoenix]Titel geändert. Mfg, Phoenix[/edit]

Luckie 1. Nov 2006 22:22

Re: ---------------------FRAGE------------------------------
 
Bitte halte dich an die Regeln und gib deinem Topic einen aussagekräftigen Namen. Editier dazu deinen ersten Beitrag. Danke.

Sunlight7 2. Nov 2006 05:12

-Ohne Titel-
 
Hallo!

Und willkommen in der DP :cheers:
Hier gibt es einige Regeln, die Du beachten solltest, wenn Du willst, das Dir jemand hilft.

Könntest Du bitte:
  • das was Du möchtest genauer beschreiben
  • auf Dein Deutsch achten, damit man das nicht drei mal lesen muß, und sich dann noch nicht sicher ist, ob man's richtig verstanden hat.
  • Luckie's bitte umsetzen.

Zitat:

Zitat von Jack der 3
das is ne teil des quelltext. Alles schön und gut aber ich kann die zwei kreise zwar mit den Pfeiltasten und W, A, S, D bewegen aber nicht gleichzeitig!

Das liegt sehr wahrscheinlich an den vielen unnützen begin end Blöcken.
Außerdem wäre eine Aufsplittung mit Case schneller in der Laufzeit und übersichtlicher zu lesen.

Sunlight7 2. Nov 2006 05:38

Re: ---------------------FRAGE------------------------------
 
[OT]
Aber wenn Du Pech hast, löscht er das auch wieder... :mrgreen:
[/OT]

Zitat:

Zitat von Jack der 3
2) Das spiel soll ja ein wie fangen sein also, dass wenn der eine kreis den anderen berührt soll zBs eine messagebox aufgerufen werden.
Wie soll das gehen??

Dazu mußt Du Dir eine Routine schreiben, die prüft, ob die Kreise sich berühren.
Schau dazu mal nach Hier im Forum suchenKollision

Jens Schumann 2. Nov 2006 07:08

Re: ---------------------FRAGE------------------------------
 
Hallo,
das Reagieren auf zwei (oder mehr) gedrückte Tase funktioniert mit der API-Funktionen GetKeyState und
entsprechende. Einfach mal im Plattform SDK oder msdn-Online suchen und ausprobieren.

Phoenix 2. Nov 2006 07:40

Re: ---------------------FRAGE------------------------------
 
STOP!


:warn: Jack der 3 wurde von Luckie in seiner Funktion als Moderator bereits darauf hingewiesen, dass er seinen Titel zu ändern hat. Mir persönlich geht "----------- Frage -----------" auch auf den Sack (sorry für die harten Worte), ABER: Es wurde schon gesagt und es gibt keinen Grund, das zu wiederholen.

Weder für uns Moderatoren, noch für andere User.

SubData 2. Nov 2006 07:44

Re: ---------------------FRAGE------------------------------
 
Zitat:

Zitat von Jens Schumann
Hallo,
das Reagieren auf zwei (oder mehr) gedrückte Tase funktioniert mit der API-Funktionen GetKeyState und
entsprechende. Einfach mal im Plattform SDK oder msdn-Online suchen und ausprobieren.


Für jemanden, der gerade ganz klein anfängt, bzw. bei dem der Quellcode noch so aussieht, wie in den Kinderschuhen, der wird mit diesem Ratschlag ohne einen ggf. entsprechenden Direktverweis, auf was du meinst, nicht sonderlich viel anfangen können, denke ich...

Jack der 3 2. Nov 2006 08:20

Re: Frage
 
Ich bin erst 13...

Aber Danke an allle! :lol:

Luckie 2. Nov 2006 08:22

Re: Frage
 
@Jack der 3: Auch das Entfernen der Bindestriche macht den Titel nicht aussagekräftiger. Überleg dir um was es bei deinem Problem geht und versuch dies kurz im Topic zu beschreiben. Und das sollte man auch könne, wenn man erst dreizehn ist.

EWeiss 2. Nov 2006 18:44

Re: Frage
 
Du mußt die Keys miteinander verknüpfen.
Das Zauberwort ist 'AND'

gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:13 Uhr.
Seite 1 von 2  1 2      

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