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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? ufire.pas

?? 一個(gè)dos游戲的源代碼
?? PAS
字號(hào):
//極限1000米
//Author: CrazyWill
//Email: CrazyWill@163.com

unit uFire;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ImgList, ExtCtrls, StdCtrls, MMSystem,
  IniFiles, uInclude;

type

  TFire = class
  private
    FSpeed: Integer; //速度  單位:像素
    FDelay, FDelayCount: Integer;

    FX, FY: Integer; //坐標(biāo)
    FYMin, FYMax: Integer;

    FActive: Boolean; //是否進(jìn)行動(dòng)作
    FVisible: Boolean; //是否可見(jiàn)
    FRect: TRect; //占用矩形區(qū)域

    FHurtPoint: integer; //傷害點(diǎn)數(shù)
    FHurtDelay: integer;

    FProbability: double; //出現(xiàn)機(jī)率

    FBits, FInvBitmap: TBitmap;

    Numbers: Integer; //每張角色圖片包含幾張小圖在里面
    CurrentNo: Integer; //當(dāng)前顯示的小圖片編號(hào)

    //取得角色尺寸
    function GetObjectRect: TRect;
    //取得角色的寬和高
    function GetObjectWidth: Integer;
    function GetObjectHeight: Integer;

  protected

  public

    constructor Create; virtual;
    destructor Destroy; override;
    procedure Draw(Canvas: TCanvas);
    procedure Drop;
    procedure ReSet;

    property X: Integer read FX write FX;
    property Y: Integer read FY write FY;

    property HurtPoint: integer read FHurtPoint write FHurtPoint;
    property Probability: Double read FProbability;

    //    property Speed:integer read FSpeed write FSpeed;

    property Active: Boolean read FActive write FActive;
    property Visible: Boolean read FVisible write FVisible;
    property Rect: TRect read FRect;

    property Width: integer read GetObjectWidth;
    property Height: integer read GetObjectHeight;

    property ObjectRect: TRect read GetObjectRect;
    property ObjectWidth: Integer read GetObjectWidth;
    property ObjectHeight: Integer read GetObjectHeight;

  end;

implementation

constructor TFire.Create;
var
  ini: TIniFile;
  sTemp: string;
  iniSection: string;
begin
  inherited Create;
  // 初始化
  iniSection := 'Fire';

  FActive := False;
  FVisible := true;

  FBits := TBitmap.Create;
  FInvBitmap := TBitmap.Create;

  ini := TIniFile.Create(IniDirectory + IniFilename);

  sTemp := ini.ReadString(iniSection, 'Filename', sTemp);
  FBits.LoadFromFile(IniDirectory + sTemp);

  FInvBitmap.Width := ini.ReadInteger(iniSection, 'Width', FInvBitmap.Width);
  FInvBitmap.Height := ini.ReadInteger(iniSection, 'Height', FInvBitmap.Height);

  FInvBitmap.Transparent := True;
  FInvBitmap.TransparentColor := TRANSPARENT_COLOR;

  Numbers := ini.ReadInteger(iniSection, 'Numbers', 1);
  CurrentNo := 0;

  FSpeed := ini.ReadInteger(iniSection, 'Speed', 1);

  FDelay := ini.ReadInteger(iniSection, 'Delay', 0);
  FDelayCount := 0;

  FHurtPoint := ini.ReadInteger(iniSection, 'HurtPoint', 0);
  FHurtDelay := ini.ReadInteger(iniSection, 'HurtDelay', 0);

  FProbability := ini.ReadFloat(iniSection, 'Probability', 0.1);

  FX := WORLD_WIDTH;
  FY := 0;

  FYMin := 0;
  FYMax := ini.ReadInteger('Map', 'Height', 0)
    - ini.ReadInteger('Map', 'GroundHeight', 0) - FInvBitmap.Height;

  FRect := classes.Rect(FX, FY, FInvBitmap.Width, FInvBitmap.Height);

  ini.Destroy;
end;

destructor TFire.Destroy;
begin
  FInvBitmap.Free;
  FBits.Free;
  inherited Destroy;
end;

function TFire.GetObjectRect: TRect;
begin
  Result := FInvBitmap.Canvas.ClipRect;
end;

function TFire.GetObjectWidth: Integer;
begin
  with GetObjectRect do
    Result := Right - Left;
end;

function TFire.GetObjectHeight: Integer;
begin
  with GetObjectRect do
    Result := Bottom - Top;
end;

procedure TFire.Draw(Canvas: TCanvas);
begin
  if not FVisible then
    Exit;
  if (FY > FYMax) then
    exit;

  FInvBitmap.Canvas.CopyRect(
    ObjectRect,
    FBits.Canvas,
    Classes.Rect(CurrentNo * ObjectWidth, 0, (CurrentNo + 1) * ObjectWidth,
    ObjectHeight));

  Canvas.Draw(FX, FY, FInvBitmap);
end;

procedure TFire.Drop;
begin
  if not FActive then
    Exit;
  if FSpeed = 0 then
    Exit;

  if (FDelay <> 0) then
  begin
    Inc(FDelayCount);
    if FDelayCount <> FDelay then
      Exit;
    FDelayCount := 0;
  end;

  CurrentNo := (CurrentNo + 1) mod Numbers;
  Inc(FY, FSpeed);

  if FX < (-Width) then
    ReSet;

  FRect := ObjectRect;
  FRect := classes.Rect(FRect.Left + 5, FRect.Top + 5, FRect.Right - 5,
    FRect.Bottom - 5);
  OffsetRect(FRect, FX, Fy);

  if (FY > FYMax) then // 如果火球已經(jīng)隱藏不見(jiàn)
    FRect := classes.Rect(WORLD_WIDTH, WORLD_HEIGHT, 0, 0);
end;

procedure TFire.ReSet;
begin
  if Random(Dynameter) * FProbability > 1 then
  begin
    FY := 0;
    CurrentNo := 0;
    FDelayCount := 0;
    FX := Random(WORLD_WIDTH) + 50;

    FRect := ObjectRect;
    FRect := classes.Rect(FRect.Left + 5, FRect.Top + 5, FRect.Right - 5,
      FRect.Bottom - 5);
    OffsetRect(FRect, FX, Fy);

  end;
end;

end.

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久午夜国产精品| 色综合天天综合网国产成人综合天| 欧美少妇bbb| 亚洲图片一区二区| 在线中文字幕一区二区| 亚洲欧美日韩中文播放| 国产在线播精品第三| www亚洲一区| 国产91在线看| 亚洲特级片在线| 在线观看日韩毛片| 午夜亚洲国产au精品一区二区| 欧美精品tushy高清| 裸体歌舞表演一区二区| 久久日韩精品一区二区五区| 从欧美一区二区三区| 亚洲人成7777| 91精品国产乱| 福利一区二区在线观看| 亚洲天堂成人网| 日韩欧美一区二区久久婷婷| 国产精品综合在线视频| 国产精品福利一区| 在线日韩av片| 国产一区二区三区国产| 亚洲欧洲无码一区二区三区| 欧美日韩国产123区| 国产一区二区导航在线播放| 国产精品欧美一级免费| 欧美三级日本三级少妇99| 热久久久久久久| 欧美激情一区二区三区在线| 欧美午夜精品免费| 经典一区二区三区| 亚洲免费av在线| 久久影院午夜论| 色综合久久久网| 国产一区二区三区久久悠悠色av | 国产在线精品一区二区三区不卡 | 91猫先生在线| 麻豆精品在线看| 亚洲私人黄色宅男| 日韩精品中文字幕在线一区| 99久久精品免费精品国产| 日本不卡视频在线观看| 日韩伦理电影网| 国产亚洲美州欧州综合国 | 欧美日韩情趣电影| av成人老司机| 人人精品人人爱| 亚洲综合在线观看视频| 久久男人中文字幕资源站| 欧美理论电影在线| 91天堂素人约啪| 国产一区二区福利| 久久精品噜噜噜成人av农村| 亚洲色图欧美偷拍| 久久精品一区四区| 欧美一卡二卡在线观看| 成人精品免费视频| 国产精品一区免费视频| 免费av成人在线| 午夜不卡av免费| 一级精品视频在线观看宜春院| 亚洲国产精品精华液2区45| 日韩欧美不卡在线观看视频| 欧美欧美欧美欧美首页| 欧美午夜精品一区二区蜜桃| 97se狠狠狠综合亚洲狠狠| 国产精品18久久久久久久久| 精品一区二区三区香蕉蜜桃 | 日韩av不卡在线观看| 亚洲制服丝袜一区| 亚洲三级免费电影| 国产精品不卡视频| 国产精品久久久一本精品 | 亚洲视频一二区| 欧美国产欧美综合| 久久精品一二三| 国产欧美日韩在线视频| 久久嫩草精品久久久精品一| 久久综合久久综合久久综合| 精品日韩一区二区三区免费视频| 6080yy午夜一二三区久久| 欧美日韩精品一区二区| 欧美日韩精品综合在线| 欧美日韩美女一区二区| 欧美人xxxx| 91精品久久久久久久久99蜜臂| 欧美日韩一级片在线观看| 欧美日本一区二区| 欧美一级高清片| 欧美精品一区二区三区一线天视频| 精品久久久久久久久久久久久久久| 日韩欧美亚洲国产另类| 日韩丝袜美女视频| 久久久久久久电影| 国产欧美一二三区| 亚洲色图欧洲色图| 日产国产欧美视频一区精品| 蜜臀a∨国产成人精品| 激情综合亚洲精品| 国产成人精品1024| 色综合久久九月婷婷色综合| 欧美性猛交一区二区三区精品| 欧美午夜精品久久久久久孕妇 | 亚洲综合一二区| 一区二区三区在线免费观看| 亚洲激情网站免费观看| 天堂av在线一区| 激情五月播播久久久精品| 成人免费高清在线| 欧美性videosxxxxx| 欧美一区二区三区在线观看视频| 26uuu精品一区二区| 亚洲天堂精品在线观看| 日韩福利视频导航| 成人黄色av电影| 欧美日免费三级在线| 久久亚洲综合色| 亚洲另类在线制服丝袜| 麻豆精品视频在线观看免费| 成人动漫一区二区三区| 欧美高清视频一二三区| 久久久蜜臀国产一区二区| 亚洲乱码一区二区三区在线观看| 久久97超碰色| 色先锋资源久久综合| 精品国产一区二区三区不卡 | 欧美天堂一区二区三区| 精品免费一区二区三区| 亚洲激情六月丁香| 国产一区二区三区日韩| 欧美日韩国产一级片| 国产欧美日韩综合| 三级不卡在线观看| 99久久精品国产毛片| 精品福利视频一区二区三区| 一区二区在线观看视频| 国产精品一区二区三区99 | 日韩欧美不卡一区| 亚洲制服丝袜一区| 972aa.com艺术欧美| 欧美电影免费观看高清完整版在线| 亚洲欧美激情小说另类| 国产精品亚洲午夜一区二区三区| 欧美日本乱大交xxxxx| 亚洲精品免费视频| 成人aaaa免费全部观看| 精品国产免费人成在线观看| 亚洲大片在线观看| 色综合久久久久网| 亚洲欧美影音先锋| 国产69精品久久777的优势| 精品电影一区二区三区| 天堂一区二区在线免费观看| 91免费视频观看| 日韩一区有码在线| 成人激情小说网站| 国产精品嫩草影院com| 狠狠色丁香久久婷婷综合丁香| 91.麻豆视频| 日韩经典一区二区| 欧美区视频在线观看| 亚洲午夜成aⅴ人片| 一本大道av伊人久久综合| 中文字幕亚洲视频| 91丝袜呻吟高潮美腿白嫩在线观看| 国产精品久久久久影院| 国产成人av自拍| 国产欧美视频在线观看| 成人黄色综合网站| 成人欧美一区二区三区| av一区二区三区| 亚洲天堂免费看| 在线免费亚洲电影| 亚洲一区在线电影| 欧美亚洲另类激情小说| 午夜在线电影亚洲一区| 91.成人天堂一区| 免费不卡在线视频| 久久久精品免费免费| 成人三级在线视频| 亚洲天堂免费在线观看视频| 欧美视频一区二区三区在线观看| 亚洲成人av电影在线| 91精品福利在线一区二区三区| 免费观看91视频大全| 精品国产91乱码一区二区三区 | 国产99久久久久| 国产精品欧美极品| 色香蕉久久蜜桃| 免费观看一级特黄欧美大片| 国产视频亚洲色图| av在线这里只有精品| 亚洲国产日韩a在线播放性色| 91精品午夜视频| 国产精品白丝jk白祙喷水网站| 中文字幕一区二区三| 欧美伦理影视网|