📄 umap.pas
字号:
//极限1000米
//Author: CrazyWill
//Email: CrazyWill@163.com
unit uMap;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, ExtCtrls, StdCtrls, MMSystem,
IniFiles, uInclude;
type
TMap = class
private
FSpeed: Integer; //屏幕卷动速度 单位:像素
FWidth: Integer;
FHeight: Integer;
FActive: Boolean; //是否进行动作
FPointPerMetre: integer; //屏幕上多少个点为1米
FCurrentMetre: Integer; //已经走了多少米
FCurrentPoint: Integer; //已经走了多少点
FRunMetre: Integer; //跑多少米加一次血
FAddHP: integer; //每跑RunMetre米加多少血
FBits, FInvBitmap: TBitmap;
protected
public
constructor Create; virtual;
destructor Destroy; override;
procedure Draw(Canvas: TCanvas);
procedure Roll;
property PointPerMetre: integer read FPointPerMetre;
property CurrentPoint: integer read FCurrentPoint write FCurrentPoint;
property CurrentMetre: integer read FCurrentMetre write FCurrentMetre;
property RunMetre: integer read FRunMetre;
property AddHP: integer read FAddHP;
property Speed: integer read FSpeed; //// write FSpeed;
property Width: integer read FWidth write FWidth;
property Height: integer read FHeight write FHeight;
property Active: Boolean read FActive write FActive;
end;
implementation
constructor TMap.Create;
var
ini: TIniFile;
sTemp: string;
iniSection: string;
begin
inherited Create;
// 初始化
iniSection := 'Map';
FActive := True;
FBits := TBitmap.Create;
FInvBitmap := TBitmap.Create;
ini := TIniFile.Create(IniDirectory + IniFilename);
sTemp := ini.ReadString(iniSection, 'Filename', sTemp);
FBits.LoadFromFile(IniDirectory + sTemp);
FSpeed := ini.ReadInteger(iniSection, 'Speed', MAP_DEFAULT_SPEED);
FWidth := ini.ReadInteger(iniSection, 'Width', FWidth);
FHeight := ini.ReadInteger(iniSection, 'Height', FHeight);
FPointPerMetre := ini.ReadInteger(iniSection, 'PointPerMetre', 100);
FRunMetre := ini.ReadInteger(iniSection, 'RunMetre', 0);
FAddHP := ini.ReadInteger(iniSection, 'AddHP', 0);
FCurrentMetre := 0;
FCurrentPoint := 0;
ini.Destroy;
end;
destructor TMap.Destroy;
begin
FInvBitmap.Free;
FBits.Free;
inherited Destroy;
end;
procedure TMap.Draw(Canvas: TCanvas);
var
i: integer;
begin
i := CurrentPoint mod Width;
BitBlt(Canvas.Handle, 0, 0, Width - i, Height, FBits.Canvas.Handle, i, 0,
SRCCOPY);
BitBlt(Canvas.Handle, Width - i, 0, i, Height, FBits.Canvas.Handle, 0, 0,
SRCCOPY);
// Bitblt(canvas.Handle,0,0,Width,Height,FBits.Canvas.Handle,0,0,SRCCOPY);
end;
procedure TMap.Roll;
begin
if not FActive then
Exit;
CurrentPoint := CurrentPoint + Speed;
FCurrentMetre := FCurrentPoint div FPointPerMetre;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -