![]() |
Sprite (Feuerball fliegen lassen) mit DelphiX!
Hallo,
Ich versuche gerade einen grundstock für ein 2D Schläger oder Rollenspiel zu programmieren, als Spieler soll man mit der Leertaste ein Feuerball abschießen der dan in die richtung fliegt in die das Mänchen gedreht wurde (das funktioniert soweit) -> nur wenn man den Feuerball abschießt nach links und dan sich z.b. nach oben dreht, dan dreht sich der Feuerball auch nach oben, wie bekomm ich es hin das der Feuerball in die für ihn bestimmte richtung weiterfliegt?
Delphi-Quellcode:
hier mal den Code der DoMove Procedure die den Feuerball fliegen lässt!
procedure TFeuerball.DoMove (MoveCount: integer);
var flieg: boolean; begin if isButton1 in Spiel.Input.States then begin Feuerball.X := Player.X; Feuerball.y := Player.Y; Feuerball.Visible := true; flieg := true; end; if flieg = true then begin case Player.richtung of 1: begin Feuerball.flyrichtung := 1; Feuerball.Image := Spiel.Liste.Items.Find('FeuerballO'); flieg := false; end; 2: begin Feuerball.flyrichtung := 2; Feuerball.Image := Spiel.Liste.Items.Find('FeuerballR'); flieg := false; end; 3: begin Feuerball.flyrichtung := 3; Feuerball.Image := Spiel.Liste.Items.Find('FeuerballU'); flieg := false; end; 4: begin Feuerball.flyrichtung := 4; Feuerball.Image := Spiel.Liste.Items.Find('FeuerballL'); flieg := false; end; end; end; case Feuerball.flyrichtung of 1: Feuerball.Y := Feuerball.Y - 2; 2: Feuerball.X := Feuerball.X + 2; 3: Feuerball.Y := Feuerball.Y + 2; 4: Feuerball.X := Feuerball.X - 2; end; end; |
Re: Sprite (Feuerball fliegen lassen) mit DelphiX!
Delphi-Quellcode:
hi, das is der entscheidene Codeschnipsel, die doMove-prozedur wird ja ständig surchlaufen, wenn sich nun dein spieler dreht, so ist also player.richtung anders, und dem zu folge auch die flugrichtung, du solltest einfach beim erstellen des Feuerballs (am besten mit create-prozedur)
case Player.richtung of
die flugrichtung zuweisen, dann wird diese nur einmal zugewiesen, und der spieler kann sich drehen wie er lustig ist, und der "ball" fliegt schön weiter in seine richtung!
Delphi-Quellcode:
dann kannst du immer mit feuerball.flugrichtung arbeiten!
type
TFeuerball=class(TImageSprite) public flugrichtung:byte; //nicht optimal wenns in public steht! procedure erzeugen; procedure DoMove(MoveCount:integer); override; end; procedure TFeuerball.erzeugen; begin flugrichtung:=player.richtung; ... //sonstige zuweisungen end; ciao haegar |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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