亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.~pas

?? game in space with delphi.
?? ~PAS
字號:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormPaint(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    FGameOver : Boolean;
  public
    { Public declarations }
    backgroundImage : TImage;
    spriteImage : TImage;
    paddle : TImage;
    backgroundCanvas : TCanvas;
    workCanvas : TCanvas;
    backgroundRect, spriteRect, changeRect, paddleRect, changePaddleRect :TRect;
    x, y, xDir, yDir, paddleX, paddleY, paddleCenter, Angle : integer;
    procedure IdleLoop( Sender: TObject; var Done: Boolean );
    procedure WMSetCursor(var Message: TWMSetCursor); message WM_SETCURSOR;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses MMSystem;

procedure TForm1.FormPaint(Sender: TObject);
begin
  RealizePalette(backgroundCanvas.Handle);
  RealizePalette(workCanvas.Handle);
  Canvas.CopyRect(backgroundRect, workCanvas, backgroundRect);
end;

procedure TForm1.FormActivate(Sender: TObject);
var
  backgrounddc, workdc : HDC;
  bkbmp, bmp : HBITMAP;
begin
  backgroundImage := TImage.Create( Self );
  spriteImage := TImage.Create( Self );
  paddle := TImage.Create( Self );
  workCanvas := TCanvas.Create;
  backgroundCanvas := TCanvas.Create;
  Angle := 1;
  spriteImage.Picture.LoadFromFile('Earth.ico');
  backgroundImage.Picture.LoadFromFile('androm.bmp');
  paddle.Picture.LoadFromFile('paddle.ico');
  backgroundRect.Top := 0;
  backgroundRect.Left := 0;
  backgroundRect.Right :=  ClientWidth;
  backgroundRect.Bottom :=  ClientHeight;
  spriteRect.Top := 0;
  spriteRect.Left := 0;
  spriteRect.Right := spriteImage.Picture.Width;
  spriteRect.Bottom := spriteImage.Picture.Height;
  //Set up backgroundCanvas
  backgrounddc := CreateCompatibleDC(Canvas.Handle);
  bkbmp := CreateCompatibleBitmap(Canvas.Handle, ClientWidth, ClientHeight);
  SelectObject(backgrounddc, bkbmp);
  SelectPalette(backgrounddc, backgroundImage.Picture.Bitmap.Palette, false);
  backgroundCanvas.Handle := backgrounddc;
  backgroundCanvas.StretchDraw( backgroundRect, backgroundImage.Picture.Bitmap);
  //Set up workCanvas
  workdc := CreateCompatibleDC(Canvas.Handle);
  bmp := CreateCompatibleBitmap(Canvas.Handle, ClientWidth, ClientHeight);
  SelectObject(workdc, bmp);
  SelectPalette(workdc, backgroundImage.Picture.Bitmap.Palette, false);
  workCanvas.Handle := workdc;
  workCanvas.CopyRect(backgroundRect,  backgroundCanvas, backgroundRect);
  workCanvas.Draw( 0, 0, spriteImage.Picture.Icon);
  paddleX := ClientWidth div 2;
  paddleY := ClientHeight - 50;
  workCanvas.Draw( paddleX, paddleY, paddle.Picture.Icon);
  paddleRect.Left := paddleX - paddle.Width;
  paddleRect.Right := paddleX + paddle.Width;
  paddleRect.Top	:= paddleY;
  paddleRect.Bottom := paddleY + paddle.Height;
  RealizePalette(backgroundCanvas.Handle);
  RealizePalette(workCanvas.Handle);
  Canvas.CopyRect(backgroundRect, workCanvas, backgroundRect);
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  //Animates and moves paddle
  paddleCenter := X;
  if(paddleCenter < paddle.Picture.Width div 2) then
      paddleCenter := paddle.Picture.Width div 2;
  if(paddleCenter > ClientWidth - (paddle.Picture.Width div 2)) then
      paddleCenter := ClientWidth - (paddle.Picture.Width div 2);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  //Assign idle time function
  Application.OnIdle := IdleLoop;
  //load sound effect
  sndPlaySound('Utopia Default.wav', SND_ASYNC or SND_FILENAME);
  x := 0;
  y := 0;
  FGameOver := false;
  ShowCursor(false);
end;

procedure TForm1.IdleLoop(Sender: TObject; var Done: Boolean);
var
  choice, SideDef, TopDef, PaddleDifference: integer; 
begin
  //keeps loop going
  done := false;
  //slows down action
  Sleep(1);

  changeRect := spriteRect;
  spriteRect.Left := x;
  spriteRect.Top := y;
  spriteRect.Right := x + spriteImage.Picture.Width;
  spriteRect.Bottom := y + spriteImage.Picture.Height;

  workCanvas.CopyRect(paddleRect, backgroundCanvas, paddleRect);

  changePaddleRect := paddleRect;
  paddleRect.Left := paddleCenter - ((paddle.Picture.Width) div 2);
  paddleX := paddleRect.Left;
  paddleRect.Top := paddleY;
  paddleRect.Right := paddleX + paddle.Picture.Width;
  paddleRect.Bottom := paddleY + paddle.Picture.Height;

  SideDef := changeRect.Left - spriteRect.Left;
  // If SideDiff < 0 the paddle is to the right
  if(SideDef < 0) then
  begin
    changeRect.Right := spriteRect.Right;
  end
  else
  begin
    changeRect.Left := spriteRect.Left;
  end;

  TopDef := changeRect.Top - spriteRect.Top;
  // If SideDiff < 0 the paddle is to the Down
  if(TopDef < 0) then
  begin
    changeRect.Bottom := spriteRect.Bottom;
  end
  else
  begin
    changeRect.Top := spriteRect.Top;
  end;

  workCanvas.CopyRect(spriteRect, backgroundCanvas, spriteRect);


  //ChangeRectCalcs
  if (y <= 0) then
  begin
    yDir := 5;
  end;
  if (y >= ClientHeight - 16) then
  begin
    FGameOver := true;
    SetCursor(HCURSOR( IDC_ARROW ));
    x := 0;
    y := 0;
  end;
  if ( (spriteRect.Bottom - 16) >= (paddleRect.Top) )
   and ( (spriteRect.Bottom - 16) <= (paddleRect.Top + 5) )
   and ( (spriteRect.Right) >= (paddleRect.Left) )
   and ( (spriteRect.Left) <= (paddleRect.Right) ) then
  begin
    yDir := -5;
    sndPlaySound('Utopia Default.wav', SND_ASYNC or SND_FILENAME);
  end;

  if (x <= 0) then
  begin
    xDir := 5;
  end;

  if(x >= ClientWidth - 16) then
  begin
    xDir := -5;
  end;

  inc ( x , xDir );
  inc ( y , yDir );

  PaddleDifference := changePaddleRect.Left - paddleRect.Left;
  // If PaddleDiff < 0 the paddle is to the right
  if(PaddleDifference < 0) then
  begin
    changePaddleRect.Right := paddleRect.Right;
  end
  else
  begin
    changePaddleRect.Left := paddleRect.Left;
  end;

  //Perform dirty rectangle animation on memory and Form canvas
  workCanvas.Draw(x, y, spriteImage.Picture.Icon);
  workCanvas.Draw(paddleX, paddleY, paddle.Picture.Icon);
  RealizePalette(backgroundCanvas.Handle);
  RealizePalette(workCanvas.Handle);
  Canvas.CopyRect(changeRect, workCanvas, changeRect);
  Canvas.CopyRect(changePaddleRect, workCanvas, changePaddleRect);
end;

procedure TForm1.WMSetCursor(var Message: TWMSetCursor);
begin
  //Hides Cursor
  if not(FGameOver) then
  begin
    SetCursor( HCURSOR( nil ) );
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品视频免费| 国产69精品久久久久毛片| 成人av在线看| 久久久久久久久久久久久夜| 六月婷婷色综合| 4438亚洲最大| 青青草国产成人av片免费| 欧美日韩成人综合在线一区二区| 亚洲激情在线播放| 色天天综合久久久久综合片| 亚洲欧美成人一区二区三区| 99久久精品久久久久久清纯| 中文字幕电影一区| 成人av电影观看| 国产精品家庭影院| av电影在线不卡| 亚洲精品高清在线| 欧美日韩一区久久| 石原莉奈在线亚洲三区| 欧美肥妇bbw| 蜜桃视频在线一区| 精品国产a毛片| 日韩av中文字幕一区二区| 在线电影国产精品| 久久99精品久久久久久动态图| 精品美女一区二区三区| 国产尤物一区二区在线| 国产精品美女视频| 91免费国产视频网站| 亚洲最新视频在线观看| 日韩视频免费观看高清完整版| 视频一区在线播放| 久久久综合精品| 国产盗摄一区二区三区| 亚洲人成网站色在线观看| 欧美日韩高清在线| 日韩vs国产vs欧美| 久久久美女毛片| 99久久国产综合色|国产精品| 亚洲最新视频在线播放| 精品乱人伦小说| 不卡的av网站| 水野朝阳av一区二区三区| 欧美人成免费网站| 国产成人在线看| 一二三区精品视频| 日韩美女天天操| 91在线视频播放| 美女视频黄免费的久久| 久久久久久久性| 99re6这里只有精品视频在线观看| 亚洲电影激情视频网站| 精品粉嫩aⅴ一区二区三区四区| 99久久久精品免费观看国产蜜| 国产精品毛片久久久久久久| 欧美体内she精高潮| 国产成人av影院| 午夜在线电影亚洲一区| 国产日韩欧美一区二区三区综合| 欧美视频一区在线观看| 懂色一区二区三区免费观看| 日韩二区三区四区| 国产精品国产馆在线真实露脸 | 7777精品伊人久久久大香线蕉完整版 | 欧美日韩国产高清一区二区三区 | 国产精品系列在线| 99在线视频精品| 精品一区二区影视| 日日骚欧美日韩| 日本一区二区不卡视频| 欧美一卡在线观看| 色乱码一区二区三区88| 麻豆极品一区二区三区| 亚洲aⅴ怡春院| 亚洲色图丝袜美腿| 中文字幕乱码一区二区免费| 欧美午夜一区二区三区| 99re热这里只有精品免费视频| 国产综合色在线| 日本午夜精品一区二区三区电影| 一区二区在线免费| 国产精品久久毛片a| 欧美一区二区成人6969| 欧美日韩国产小视频| 日韩不卡免费视频| 日本亚洲视频在线| 精品一区二区在线观看| 国产一区 二区| 国产成人精品免费| 成人性生交大片免费看在线播放| 成人黄色在线网站| 91蜜桃免费观看视频| 欧美专区亚洲专区| 欧美一区二区三区系列电影| 日韩欧美高清一区| 国产女同互慰高潮91漫画| 亚洲欧洲国产日本综合| 有码一区二区三区| 免费视频最近日韩| 国产一区 二区| 91理论电影在线观看| 欧美亚洲国产一区二区三区| 欧美精品精品一区| 久久一区二区视频| 亚洲欧美日韩国产中文在线| 亚洲成人一区在线| 国产在线精品不卡| 91丨九色丨蝌蚪丨老版| 91精品国产91久久久久久一区二区| 欧美α欧美αv大片| 中文字幕一区二区在线播放| 亚洲一区二区三区国产| 精品一区二区精品| 91在线你懂得| 日韩无一区二区| 国产精品超碰97尤物18| 日韩高清一级片| 99久久国产综合精品女不卡| 91.麻豆视频| 国产精品久久久久三级| 天天综合天天做天天综合| 国产精品一区二区视频| 欧美日韩免费高清一区色橹橹| www成人在线观看| 亚洲激情一二三区| 国产美女娇喘av呻吟久久| 在线观看av一区| 国产欧美精品一区二区色综合| 五月婷婷激情综合| 成人美女在线观看| 91麻豆精品国产91久久久更新时间| 国产精品人人做人人爽人人添| 亚洲成在线观看| 99精品视频免费在线观看| 欧美不卡视频一区| 亚洲一区电影777| 成人黄色在线网站| 精品久久久久一区二区国产| 亚洲午夜免费电影| 99久久er热在这里只有精品15| 精品国产sm最大网站免费看| 亚洲国产日韩精品| 99精品视频在线观看| 久久综合色婷婷| 成人污污视频在线观看| 欧美一区二区在线视频| 一区二区免费在线| 成人av网址在线| 久久伊99综合婷婷久久伊| 日韩**一区毛片| 欧美少妇一区二区| 亚洲视频电影在线| 成人综合在线视频| 久久女同性恋中文字幕| 日韩高清国产一区在线| 欧美日韩一本到| 亚洲精品久久7777| a在线播放不卡| 中文字幕欧美日韩一区| 国产精品一级在线| 26uuu精品一区二区三区四区在线| 午夜精品久久久久久| 欧美日韩中文国产| 五月天中文字幕一区二区| 欧美性大战久久| 亚洲一区av在线| 欧美日韩亚洲高清一区二区| 一区二区三区四区精品在线视频| www.色精品| 自拍视频在线观看一区二区| eeuss影院一区二区三区| 中文字幕乱码日本亚洲一区二区 | 成人av在线网站| 国产色产综合色产在线视频| 精久久久久久久久久久| 久久毛片高清国产| 粉嫩aⅴ一区二区三区四区五区 | 欧美丝袜自拍制服另类| 亚洲成av人片在www色猫咪| 欧美日韩一区二区三区在线| 午夜激情一区二区| 日韩午夜激情电影| 国产一区二区三区不卡在线观看 | 精品视频一区二区不卡| 视频在线观看91| 精品国产1区2区3区| 高清在线不卡av| 亚洲欧美偷拍另类a∨色屁股| 欧美三级韩国三级日本一级| 日韩国产欧美三级| 精品日产卡一卡二卡麻豆| 高清久久久久久| 一区二区三区电影在线播| 欧美嫩在线观看| 国产麻豆精品久久一二三| 中文字幕在线观看不卡视频| 欧美亚一区二区| 激情久久五月天| 最新国产成人在线观看| 欧美精品久久99久久在免费线 |