Hi!
Ich will Pacman nachprogrammieren, habe aber erst seit einigen Wochen Delphi in der Schule und kenne mich deshalb nicht so wirklich damit aus.
Ich habe bisher ein Array of TImage und ein Bild das Pacman darstellt.
Ich kann auch schon den Pacman mit den Pfeiltasten steuern und über das Array laufen lassen.
Doch die einzelnen Bilder des Arrays haben einen gewissen Abstande untereinander. Kann man den irgendwie wegmachen?
Und kann man Pacman in den Vordergrund bringen (mit in den Vordergrund rücken unter Bearbeiten geht es nicht) ?
Hier ist mein Quellcode:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72:
| unit PacmanSteuerung;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
type Elemente = Array [0..10, 0..10] of TImage; TForm1 = class(TForm) Timer1: TTimer; Image1: TImage; procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end;
var Form1: TForm1; i: Integer= 1; BilderElemente : Elemente; Bild : TImage;
implementation
{$R *.dfm}
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = vk_left then Image1.left := Image1.Left - 3; if key = vk_right then Image1.left := Image1.Left + 3; if key = vk_down then Image1.Top := Image1.Top + 3; if key = vk_up then Image1.Top := Image1.Top - 3; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin case i of 1 : image1.Picture.LoadFromFile('pac2.bmp'); 2 : image1.Picture.LoadFromFile('pac3.bmp'); 3 : image1.Picture.LoadFromFile('pac4.bmp'); 4 : image1.Picture.LoadFromFile('pac1.bmp'); end; inc(i); if i>4 then dec(i,4); end;
procedure TForm1.FormCreate(Sender: TObject); var x, y : Integer; begin for x := 0 to 10 do begin for y := 0 to 10 do begin BilderElemente[x, y] := TImage.Create(Self); BilderElemente[x, y].Picture.LoadFromFile('Mauer.bmp'); with BilderElemente[x, y] do begin Parent := Self; SetBounds(x * 30, y * 30, 30, 30); end; end; end; end;
end. |