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