⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 网络游戏神迹脱机外挂PASCAL源码
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,GameMap, StdCtrls, GameCode;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    OpenDialog1: TOpenDialog;
    Button3: TButton;
    Label1: TLabel;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1         : TForm1  ;
  FileName      : string  ;
  T1            : TMapInfo;
  p1,p2         : Point   ;
  MouseX,MouseY : Integer ;
implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
begin
if OpenDialog1.Execute=true then
  FileName:=OpenDialog1.FileName;
ShowMessage(FileName);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
hw:HWND;
begin
T1.ReadMap(FileName);
Canvas.Pen.Style:=TPenStyle(0);
Canvas.MoveTo(0,0);
hw:=Form1.Handle;
Perform(WM_Paint,GetDC(hw),0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
T1:=TMapInfo.Create;
end;

procedure TForm1.FormPaint(Sender: TObject);
var
i,j:Integer;
begin
for j:=1 to T1.GetYMax do
  begin
  for i:=1 to T1.GetXMax do
    begin
    if T1.TestPoint(i,j)=false then
      begin
      Canvas.Pixels[i,j]:=clBlack;
      end;
    end;
  end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
p1.x:=0;
p1.y:=0;
p2.x:=0;
p2.y:=0;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
rp: TTmpPnt;
begin
if (X<1) or (X>T1.GetXMax) or (Y<1) or (X>T1.GetYMax) then
  begin
  DBGOut('x=%d,y=%d,mx=%d,my=%d',[X,Y,T1.GetXMax,T1.GetYMax]);
  ShowMessage('点不在地图上');
  exit;
  end;
if (p1.x=0) and (p1.y=0) then
  begin
  p1.x:=X;
  p1.y:=Y;
  exit;
  end;

if (p2.x=0) and (p2.y=0) then
  begin
  p2.x:=X;
  p2.y:=Y;
  end;
RP:=TTmpPnt.Create;
if T1.FindRoad(p1,p2,RP)=false then
  ShowMessage('无法到达');

while RP.GetSize<>0 do
  begin
  sleep(20);
  Canvas.Pixels[RP.GetTail.x,RP.GetTail.y]:=clRed;
  end;
p1.x:=0;
p2.x:=0;
p1.y:=0;
p2.y:=0;
RP.Free;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
s1:string;
begin
MouseX:=X;
MouseY:=Y;
s1:=InttoStr(MouseX)+','+IntToStr(MouseY);
Label1.Caption:=s1;
end;


end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -