zoukankan      html  css  js  c++  java
  • DelphiX教程系列 1 使用键盘和摇杆

    用到的组件(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:转载请保留以上版权信息
  • 相关阅读:
    第一篇博文,纪念下
    HDU 1026 Ignatius and the Princess I (bfs+存储路径)
    acer Empowering Technology下载(转)
    设定sql server定期自动备份数据库
    web.config加密解密
    WCF安全性资料
    SharePoint中CAML日期格式
    Map Reduce the Free Lunch is not over?(转)
    asp.net与javascript
    获取当前build的版本信息
  • 原文地址:https://www.cnblogs.com/waterfalleagle/p/1766330.html
Copyright © 2011-2022 走看看