手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

用Delphi DirectX开发简单RPG游戏2

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

Shift: TShiftState; X, Y: Integer);
begin
PlayerSprite.CanMove:=False;
end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DXSpriteEngine.Free;
end;

procedure TPlayerSprite.MoveTo(MoveCount: Integer; Direction: TDirection);
begin
{控制精灵往各个方向移动}
case Direction of
DrUp:
begin
Y := Y-(150/1000)*MoveCount;
Inc(steps);
AnimPos:=steps div speed 20 1;
{当前动画中播放的图片序号}


if steps>4*speed-2 then steps:=0;
end;
DrDown:
begin
Y := Y (150/1000)*MoveCount;
Inc(steps);
AnimPos:=steps div speed 1;
if steps> 4*speed-2 then steps:=0;
end;
DrLeft:
begin
X := X-(150/1000)*MoveCount;
Inc(steps);
AnimPos:=steps div speed 10 1;
if steps>4*speed-2 then steps:=0;
end;
DrRight:
begin
X := X (150/1000)*MoveCount;
Inc(steps);
AnimPos:=steps div speed 30 1;
if steps>4*speed-2 then steps:=0;
end;
DrUpLeft:
begin
X := X-(150/1000)*MoveCount;
Y := Y-(150/1000)*MoveCount;
Inc(steps);
AnimPos:=steps div speed 15 1;
if steps>4*speed-2 then steps:=0;
end;
DrUpRight:
begin
X := X (150/1000)*MoveCount;
Y := Y-(150/1000)*MoveCount;
Inc(steps);
AnimPos:=steps div speed 25 1;
if steps>4*speed-2 then steps:=0;
end;
DrDownLeft:
begin
X := X-(150/1000)*MoveCount;
Y := Y (150/1000)*MoveCount;
Inc(steps);
AnimPos:=steps div speed 5 1;
if steps>4*speed-2 then steps:=0;
end;
DrDownRight:
begin
X := X (150/1000)*MoveCount;
Y := Y (150/1000)*MoveCount;
Inc(steps);
AnimPos:=steps div speed 35 1;
if steps>4*speed-2 then steps:=0;
end;
end;
end;

end.

后记

  通过以上的讲解和例子,相信大家已经对 Delphi 下的 DirectX 游戏开发有了初步的概念。国内讲解开发 DirectX 游戏的权威资料很少,如果这篇讲解可以起到抛砖引玉的效果的话,我将再高兴不过了。本文部分内容借鉴了国外一些游戏开发网站的技术文档,在此一并致谢。如果各位有什么问题需要和我交流,请发信至eagle_california@yahoo.com。
  源程序下载地址:http://www.cfan.com.cn/11PROGRAM/200312/0312yde.zip


作者:郭磊

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!