Einzelnen Beitrag anzeigen

mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#1

"eXtreme Towerdefence" - Trum Radios ?

  Alt 19. Mär 2008, 11:39
Hallo,
ich möchte das Spiel "eXtreme Towerdefence" nach machen mit meiner "2D Engine." Das ist so weit auch kein Problem.

Ein Problem habe ich jedoch und zwar: Jeder Turm soll ein Radios haben.
Beim Platzieren möchte ich diesen Radios anzeigen.

Also, ich habe unten mein Menu mit den Türmen die es gibt, jeder Turm hat sein Radios ich klicke auf ein Turm drauf gehe dann mit der Maus auf meine PaintBox jetzt soll der Radios in Form eines Kreis angezeigt werden.

Das Zweite:
Der Turm soll sich nur Gegner raussuchen die sich in diesen Radios bewegen.


Ausdem Buch:
"3D Programmierung mit Delphi für Kids"
habe ich folgende Funktion übernommen und angepasst:
Delphi-Quellcode:
procedure TForm1.ShotMove;
var
  strecke, Steigung:Single;
  xWeg,yWeg, xDiff, yDiff, Schritt, i, Speed,l,t:Integer;
  
begin

  Speed:=20;
  s3.left:=s2.left-(s1.Width div 2);
  s3.top:=s2.top-(s1.Height div 2);


  xWeg:=s1.Left - s2.Left;
  yWeg:=s1.Top - s2.Top;
  
  strecke:=sqrt(sqr(xWeg)+Sqr(yWeg));
  Schritt:=Round(Strecke/Speed);
  
  if Schritt = 0 then Schritt:=1;
  xDiff:=xWeg div Schritt;
  yDiff:=yWeg div Schritt;
  
  if xWeg <> 0 then Steigung:=yWeg/xWeg else Steigung:=999;
  for i:=1 to Schritt do begin
    s3.left:=s3.Left+xDiff;
    s3.top:=s3.Top+yDiff;
    application.ProcessMessages;
    s3.DrawSprite;
    if New then begin
      New:=False;
      exit;
    end;
    Sleep(200);
    
{    if (steigung >-1) and (Steigung < 1) then
      if xWeg < 0 then
        s3.left:=s3.left-s3.Width
      else
        s3.left:=s3.left+s3.Width;
     
    if (Steigung < -1) or (Steigung > 1) then
      if yWeg < 0 then
        s3.Top:=s3.Top-s3.Height
      else
        s3.Top:=s3.Top+s3.Height;}

  end;
  Timer1.Enabled:=False;
  Engine.NewAllDraw;
das geht auch wunderbar.

wie ich ein Kreis zeichne weiß ich auch. Nur das mit dem Radios weiß ich leider nicht.

Ein Suche hier im Forum brachte leider keine Ergebnisse

Das ist jetzt nur ein Test Projekt, was ich extra für dieses Problem angefangen habe.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat