Hi ich hab mal wieder nen Problem ich will grade ein 2D Tower Defence Programmieren (ich benutze dafür Andorra 2D und Delphi7)
Ich bin jetzt soweit das ich die Türme bauen kann und das Spielfeld gezeichnet wird und ein Timer runterläuft und dann Gegner als Sprites auf der linken Seite Spawnen (also starten) und dann mit einer gleich bleibenden Geschwindigkeit nach rechts wandern.
Die Türme haben ja einen bestimmten Radius und sie dürfen nur schießen wenn der Gegner im Radius ist das hab ich damit gelöst das ich über den Satz des Pythagoras die Entfernung vom Gegner zum Turm errechnet hab und die dann mit dem Radius vergleicht hab:
Delphi-Quellcode:
i:=10;
while (i>=0)and(schlFertig=false)do begin
tX:= Round(X-cX[i]);
tY:= Round(Y-cY[i]);
if tX*tX+tY*tY<=Range*Range then begin ziel:= i; schlFertig:=true; end;
i:=i-1;
end;
in cX/cY[0..10] hab ich die X und Y Kordinaten gespeichert der 10 Gegner
und Range is der Radius
Hierzu das Bild:
http://csrobin.cs.ohost.de/prob/schuss1.jpg
und mein Eigentliches problem is das ich nich genau weiß wie ich die Schussbahn berrechnen soll... Ich will halt auch nicht ein Geschoss haben das direckt nachdem es abgeschossen wurde auftrifft, sondern eins was schon eine kurze Zeit zu sehen ist und dann erst den Gegner trifft.
Da gäbe es für mich 2 Möglichkeiten. 1. die das der Schuss ein Ziel vor dem Gegner Anvisiert und dieser dann hinein läuft und 2. das der Schuss eine geringe Kurve macht und das Ziel verfolgt (siehe Bild)
http://csrobin.cs.ohost.de/prob/schuss2.jpg
Habt ihr denn nen Vorschlag oder am besten auch ne Lösung?
mfg Robin