用到的组件(TDXInput、TTimer):


原文链接:http://www.delphigamedev.com/tutorials/dxtut1.htm

在这一教程里,我们将会学习如何使用键盘来移动我们的角色(在DelphiX的组件的帮助下)。如果您还没有这些组件,您可以通过这里来下载最新的版本。一旦您成功安装DelphiX,您就能开始学习本教程了。我们将会使用其中特定的组件——DXInput,该组件能允许我们处理键盘和摇杆的输入。

那么,开始前我们还需要装载我们的代码(这里下载)。我们需要移去窗体上的按钮,还有其BtnClick过程的源代码。首先,我们需要修改每个BtnClick过程的第一行代码,使其不再关联到buttons里的Onclick事件。

procedure TForm1.LeftBtnClick(Sender: TObject);

应该修改成:

procedure TForm1.Left

procedure TForm1.UpBtnClick(Sender: TObject);

应该修改成:

procedure TForm1.Up;

procedure TForm1.RightBtnClick(Sender: TObject);

应该修改成:

procedure TForm1.Right;

procedure TForm1.DownBtnClick(Sender: TObject);

应该修改成:

procedure TForm1.Down;

现在我们需要删除窗体上的4个方向按钮。之后我们还需要删除type声明区域下所有属于这几个按钮的过程代码。如下:

procedure LeftBtnClick(Sender: TObject);
procedure UpBtnClick(Sender: TObject);
procedure RightBtnClick(Sender: TObject);
procedure DownBtnClick(Sender: TObject);

在我们使用Left、Right、Up和Down这4个过程之前,我们需要添加以下的代码来再次声明他们(在private声明区域下,其他事先声明的过程之前声明)。

procedure Left;
procedure Right;
procedure Up;
procedure Down;

我 们准备好使用DXInput组件了。首先双击其组建栏上的图标,使之添加到窗体上。如果您不确定是哪个组件,请参照本文顶部的组件列表。我们还需要另外一 个组件——Timer,您可以在组件栏的System标签下找到(一个钟面的图标)。双击该图标使之添加到窗体上。我们将会使用它来定期地检查键盘上的方 向键是否被按下。您需要修改其时间间隔(默认值为1000毫秒)为50毫秒左右,使计算机能够检查到是否有键按下。您可能需要把该值调高一些,因为您在运 行该程序的时候会发现键盘上的按键会有点过于敏感(译注:响应太快)。现在我们开始写DXInput组件的代码。所有的代码都写在Timer的过程里,我 们双击窗体上的Timer图标。

在begin之后输入以下代码:

DXInput1.Update;
if isLeft in DXInput1.States then Left;
if isRight in DXInput1.States then Right;
if isUp in DXInput1.States then Up;
if isDown in DXInput1.States then Down;

这些代码简单的告诉程序去检查是否有任何按键按下。如果是,则在左方向键按下的时候调用Left过程,在右方向键按下的时候调用Right过程,其他亦然。你可以现在运行该程序,通过键盘来控制窗体上的角色移动。

最后,如果您有连接到电脑的摇杆,您会发现您能使用摇杆上的上下左右键来移动您的角色。

在下一个教程里,我们将继续学习其他有用的DelphiX组件。如果您对本教程有任何疑问或建议,请E-mail我,邮箱地址为:ben@delphigamedev.com

版权说明

本 系列译文在博客园发表,除允许在互联网上自由转载外,不允许以其它任何方式拷贝、编辑、印刷出版、制作发行及传播,包括不允许在笔者未知晓的情况下制作成 各种格式的电子文档并传播,更不得在未经笔者本人允许的情况下以任何形式的拷贝用于商业用途。笔者对本系列译文保留有追究其侵权责任的权利。

若需制成电子文档并用于非商业用途方式的传播,请保留以下版权信息,并与笔者联系邮寄副本一份。

作者:Nicholas.Yuen
网名:小丸
Email:ruanjiayuan AT gmail.com ( AT -> @)
Blog:http://genkagen.blogspot.com/
时间:2008.08.05
Copyright: All right resver

PS:转载请保留以上版权信息

转载于:https://www.cnblogs.com/waterfalleagle/archive/2010/06/27/1766330.html

DelphiX教程系列 1 - 使用键盘和摇杆相关推荐

  1. DelphiX教程系列 4 - 滚动背景 part 1

    用到的组件: (TDXDraw, TDXImageList, TDXSpriteEngine, TDXTimer, TDXInput) 原文链接:http://www.delphigamedev.co ...

  2. DelphiX教程系列 3 - 动画 part 1

    用到的组件(TDXDraw,TDXImageList,TDXSpriteEngine): 原文链接:http://www.delphigamedev.com/tutorials/dxtut3.htm ...

  3. eeglab教程系列(2)-加载、显示数据

    1 准备工作 1.1 安装eeglab: 在matlab中安装eeglab,请看安装教程:eeglab教程系列(1)-安装教程 1.2 测试数据 由于公众号上不好上传文件,所以请到QQ群中下载 测试数 ...

  4. Windows 8实例教程系列 - 理解应用框架

    Windows 操作系统之所以风靡世界,是因为其"易学易用",从用户的角度出发,让数以万计的非IT人员使用计算机实现娱乐,工作等目的.Windows 8继承Windows桌面的优点 ...

  5. WPF入门教程系列四——Dispatcher介绍

    WPF入门教程系列四--Dispatcher介绍 一.Dispatcher介绍 微软在WPF引入了Dispatcher,那么这个Dispatcher的主要作用是什么呢? 不管是WinForm应用程序还 ...

  6. Linux Shell脚本入门教程系列之(十六) Shell输入输出重定向

    本文是Linux Shell系列教程的第(十六)篇,更多Linux Shell教程请看:Linux Shell系列教程 Shell中的输出和输入的重定向是在使用中经常用到的一个功能,非常实用,今天就为 ...

  7. Linux Shell脚本入门教程系列之(七)Shell输出

    本文是Linux Shell脚本系列教程的第(七)篇,更多shell教程请看:Linux Shell脚本系列教程 与其他语言一样,Shell中也有输出操作,而且在实际应用中也是非常重要的,继上一篇之后 ...

  8. mobaxterm的linux安装教程,MobaXterm详尽使用教程系列一

    常用SSH客户端介绍: SSH 为 Secure Shell 的简写,是目前较可靠,专为远程登入会话和其他网路服务提供安全性的合同.利用 SSH 协议可以有效避免远程管理过程中的信息泄漏问题. 我们做 ...

  9. 【Excel 教程系列第 2 篇】同一行不同列的数据,如何快速合并与拆分?

    这是[Excel 教程系列第 2 篇],如果觉得有用的话,欢迎关注专栏. 文章目录 一:数据的快速合并 二:数据的快速拆分 三:不相邻的两列如何合并数据 四:如何合并两列以上的数据 工作中我们难免会碰 ...

最新文章

  1. android byte转16进制字符串,如何将字节数组转换为十六进制字符串,反之亦然?...
  2. wxWidgets:引用计数
  3. jsp中获取当前项目名称
  4. XML DTD用法【转载】
  5. 在win7下安装VC6.0
  6. 正确使用招呼语、称呼语_5
  7. 新iPhone同款?谷歌Pixel 4渲染图曝光:“浴霸”相机模组抢眼
  8. 用Typescript 开发 node.js (方法2)
  9. [转]nonlocal和global
  10. FFmpeg源代码简单分析:libavdevice的gdigrab
  11. 2018ACM-ICPC南京赛区网络赛: J. Sum(积性函数前缀和)
  12. php依赖注入 简书,依赖注入
  13. 类文件结构和字节码指令
  14. 服装CAD计算机试衣的好处,浅议服装CAD三维试衣探究及创新.doc
  15. c语言选猴王链表,C语言程序设计-猴子选大王[链表应用]
  16. android 短信列表优化,android listview优化几种写法详细介绍
  17. Maxwell参数化建模
  18. 10本最热门科普书免费送!人工智能数学物理获奖经典佳作!
  19. 科技爱好者周刊(第 163 期):你的城市有多少张病床?
  20. pause容器作用_kubernetes中的Pause容器如何理解?

热门文章

  1. 【Notes】《Thinking in Java》【Chapter 11】Part II
  2. https的那些事儿
  3. linux挂载windows共享的文件夹
  4. Spring Cloud构建微服务架构-Hystrix依赖隔离
  5. [转]Java——Servlet的配置和测试
  6. 08-GCD常用方法
  7. solaris10找安装包的地方
  8. 再学 GDI+[83]: TGPImage(3) - 平行四边形变换
  9. Command_Of_Windows1
  10. 陶哲轩实分析 定理 8.2.2 (无限和的富比尼定理) 证明