Stoney:
Last time you advice me about the flickering of my images. I had do what you suggested me but I think the flickering is still there. Look this is teh code
Code:
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Timer1Timer(Sender: TObject);
private
mike:TBitmap;
mike_pos:TPOint;
start_pos:TPoint;
gravedad,jumpspeed:integer;
jumping:Boolean;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
mike:=TBitmap.Create;
mike.LoadFromFile('migue.bmp');
gravedad:=2;
jumpspeed:=-25;
jumping:=False;
mike_pos.X:=20;
mike_pos.Y:=ClientHeight-mike.Height;
start_POs.X:=Mike_Pos.X;
start_POs.Y:=ClientHeight-mike.Height;
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
DoubleBuffered:=True;
Canvas.Draw(mike_pos.X,mike_pos.Y,mike);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
mike.Free;
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=VK_SPACE then
jumping:=True;
if key=VK_LEFT then
dec(mike_pos.X,10);
if key=VK_RIGHT then
inc(mike_pos.X,10);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Canvas.Brush.Color:=clWhite;
Canvas.Rectangle(0,0,ClientWidth,ClientHeight);
Canvas.Draw(mike_pos.X,mike_pos.Y,mike);
if jumping then
begin
inc(jumpspeed,gravedad);
mike_pos.Y:=mike_pos.Y+jumpspeed;
Canvas.Brush.Color:=clWhite;
Canvas.Rectangle(0,0,ClientWidth,ClientHeight);
Canvas.Draw(mike_pos.X,mike_pos.Y,mike);
if mike_pos.Y>start_pos.Y then
begin
jumping:=False;
mike_pos.Y:=start_pos.Y;
Canvas.Draw(mike_pos.X,mike_pos.Y,mike);
jumpspeed:=-25;
end;
end;
end;
end.
And here is the example:
http://www.2shared.com/file/11058299...43/Miguel.html
Bookmarks