Einzelnen Beitrag anzeigen

Undercover

Registriert seit: 27. Okt 2008
6 Beiträge
 
#1

verschieden Farbige Bälle

  Alt 2. Nov 2008, 15:51
Hallo ihr Lieben!

Ich bin neu hier im Forum und auch in der Delphi Programmierung.^^ Wir haben es dieses Jahr in Informatik und sollen jeder eine Aufgabe erfüllen. Ich soll ein Billardspiel erzeugen und hänge grad ziemlich fest. Ich schaffe es schon, dass ich eine grüne Fläche und in den Ecken schwarze *Löcher* habe. Diese habe ich mit Shape erstellt, die Bälle werden via Canvas gezeichnet...

Es sind 4 Bälle im Moment. Mein Problem ist es jetzt, wie ich es schaffe diese Bälle verschieden farbig zu machen. Ich habe jetzt schon ziemlich viel bei Google gesucht und ausprobiert, mit Ball[1] und ähnlichem, aber entweder hat das garnicht funktioniert oder es hat sich nurnoch ein Ball bewegt

Auf jeden Fall bewegen sich die Bälle schonmal (Puuuh harte Arbeit^^)... jetzt fehlt mir nurnoch, dass sie verschiedene Farben haben.

Ja, bin ja noch ziemliche Anfängerin... von daher wäre es nett, wenn ihr euch ein bisschen auf einfachem Niveau haltet mit euren Antworten...

Hab jetzt einfach mal die Teile angegeben, um die es geht, denke ich. Wenn noch etwas fehlt, kann ich es gerne ergänzen.^^

Delphi-Quellcode:
CONST Max = 4;

var
  Spielfeld: TSpielfeld;
  Ball : array[1..Max] of tBall;
  i : Integer;
  Farbe: tColor;

procedure TSpielfeld.FormCreate(Sender: TObject); // Bälle zufällig auf dem Bildschirm erzeugen, ohne Bewegung, Rahmen zeichnen.
var i,j: integer; r,x,y,vx,vy : single;
 begin
  with Bild.Canvas do
      begin
      Brush.Color := clGreen;
      Pen.Color := clBlack;
      pen.width := 5;
      Rectangle(0, 0, Bild.Width, Bild.Height);
      end;
      for i := 1 to max do
      begin
      x := Random(Spielfeld.Bild.Width-50) + 25;
      y := Random(Spielfeld.Bild.Height-50)+ 25;
      vx := Random(5)-4; vy := Random(5)-4;
      Ball[i].Init(clWhite,x,y,vx,vy,20);
      Ball[i].ZeigeDich;
      end
end;


procedure tBall.ZeigeDich; // Bälle anzeigen
begin
 with Spielfeld.Bild.Canvas do
      begin
      pen.width := 2;
      Brush.Color := clRed;
      Pen.Color := clBlack;
      Ellipse(Round(x-r),Round(y-r),Round(x+r),Round(y+r));
      end;
end;

procedure tBall.BewegeDich; // Bälle bewegen, verschwinden lassen und neu zeichnen
  begin
  with Spielfeld.Bild do
         begin
         Canvas.Pen.Color := clGreen;
         Canvas.Brush.Color := clGreen;
         Canvas.Ellipse(Round(x-r),Round(y-r),Round(x+r),Round(y+r));
    x := x +vx;
    y := y + vy;
    if (x >Width-r-4) then
    begin x := Width-r-4;
    vx := -vx
    end;
 if x < r + 4 then
    begin x := r + 4;
    vx := -vx
    end;
 if (y >Height-r-4) then
    begin y := Height-r -4 ;
    vy := -vy
    end;
    if y < r + 4 then
    begin
    y := r + 4;
    vy := -vy;
    end;
      Canvas.Pen.Color := clBlack;
      Canvas.Brush.Color := clRed;
      Canvas.Ellipse(Round(x-r),Round(y-r),Round(x+r),Round(y+r));
      end;
end;

procedure TSpielfeld.Timer1Timer(Sender: TObject); // Alle Bälle rollen
begin
for i := 1 to max do
   begin
   Ball[i].ZeigeDich;
   Ball[i].BewegeDich;
   end;
Stoss;
for i := 1 to max do Ball[i].ZeigeDich;
end;
An welchen Stellen müsste ich denn etwas verändern, damit sie verschiedene Farben haben? Das Buch was wir haben finde ich ziemlich schlecht und unser Lehrer hat uns auch kaum was erklärt =(

Freue mich auf eure Antworten und danke schonmal im Voraus,

eure Undercover
  Mit Zitat antworten Zitat