![]() |
Hilfe bei einem kleinen Spiel
hallo DP Community :hi:,
ich will ein kleines Spiel programmieren. Es ist sehr simpel und es klappt auch alles gut, nur habe ich ein Problem : ich will das der asteroid quer durch das bild fliegt; momentan fliegt er nur senkrecht hinunter
Delphi-Quellcode:
danke schonmal an alle die helfen :thumb:
procedure TForm1.Timer1Timer(Sender: TObject);
begin randomize; If shape1.top > 360 then begin shape1.Top := 50; shape1.left := random(640); Score := Score - 1; Label1.Caption := inttostr(Score); end; shape1.Top := shape1.Top + 5; If (shape1.Top > 328) and (Shape1.Left > Shape2.left-32) and (Shape1.Left < Shape2.left+64) then begin Score := Score + 1; Label1.Caption := inttostr(Score); shape1.Top := 50; shape1.left := random(640); end; end; procedure TForm1.FormActivate(Sender: TObject); begin Score := 0; end; procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin If key = 'd' then Shape2.Left := Shape2.Left + 10; If key = 'a' then Shape2.Left := Shape2.Left - 10; end; end. |
Re: Hilfe bei einem kleinen Spiel
deine Timerprozedur sagt: shape1.Top := shape1.Top + 5; Top+5 = grade runter (Top = von oben) Welchen Wert wird man da wohl auch noch ändern müssen, damit es seitwärts geht? |
Re: Hilfe bei einem kleinen Spiel
Zitat:
dann geht alle kreuz und quer durch das bild aber immer nach unter ? |
Re: Hilfe bei einem kleinen Spiel
Top = Position vom oberen Rand
Top+5 = runter Top-5 = hoch Was wäre also Links/Rechts? Tipp: Was machst du bei den Tasten A und D? :zwinker: Und Beides (von Oben und von Links) gleichzeitig ändern ergibt schwäg. |
Re: Hilfe bei einem kleinen Spiel
sorry ich verstehe leider nicht, was ich ändern soll :gruebel:
|
Re: Hilfe bei einem kleinen Spiel
Ich verstehe nicht warum Menschen wenn es ums Programmieren geht manchmal so kompliziert denken...
Wenn sich etwas schräg bewegt, dann bewegt es sich gleichzeitig in 2 verschiedene Richtungen. Z.B. nach unten und nach rechts. D.h. du musst die Koordinaten deines Asteroiden nicht nur auf der y- sondern auch auf der x-Achse ändern. Zum Ändern auf der y-Achse gibts Top. Für die x-Achse gibt es Left. Gruß Neutral General |
Re: Hilfe bei einem kleinen Spiel
Zitat:
Shape.Left wird ja nicht nur für Shape2 via A/D manipuliert, sondern Shape1 ja auch damit (zufällig) initialisiert. Randomize könnte auch aus dem Timer-Code raus, z.B. in FormActivate |
Re: Hilfe bei einem kleinen Spiel
erstmal danke an alle die mir geholfen haben :thumb:
es läuft alles super nur verläuft das shape immer von oben rechts nach unten links wie bekomme ich es hin, das es auch von oben links nach unten rechts oder abwechselnd senkrecht verläuft. mit dem befehlt *or* und *right* kann er nichts anfangen :gruebel: |
Aussagekräftiger Titel
Bitte auch mal selber überlegen und nicht gleich posten. Du weißt jetzt wie es von oben recht nach unten links geht, dann sollte es nicht zu schwer sein rauszubekommen, was man machen muss, damit es sich von oben links nach unten rechts bewegt.
Und bitte gib deinem Beitrag einen aussagekräftigen Titel. Der jetzige Titel lässt nicht erkennen, um was für ein Problem oder Frage es sich handelt. Um den Titel zu ändern, editiere einfach deinen ersten Beitrag. Damit erleichterst du das Auffinden deines Beitrages mit der Suche und ersparst anderen Mitglieder ein unnötiges Öffnen deines Beitrages. |
Re: Hilfe bei einem kleinen Spiel
Wenn ich es richtig interpretiere, willst Du das Shape1 sich über eine zufällig lange Strecke in eine zufällige Richtung bewegt?
Dann brauchst Du eine Counter-Variable die Du mit einem zufälligen Wert initialisierst und bei jedem OnTimer dekrementierst. Wenn diese Variable bei 0 angekommen ist, musst Du ihr wieder einen neuen zufälligen Wert zuweisen und eine Richtung berechnen. Das geht aber nur, wenn Du für z.B. die Berechnung x := x-5 eine Variable einführst... also z.B. x := x+ dx. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 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