声明:本教程版权归Lizcst Software Lab所有,欢迎转载,但是转载必须保留本段声明文字,并注明文章来源:http://blog.csdn.net/kflizcst

谢谢合作!


现在我们该学习如果检测按键操作并作出反馈了。在这里按键操作包括用户在鼠标上的按键操作,以及用户在键盘上的按键操作。这篇教程我们将一起介绍,因为幻世引擎中并不区分这两种不同设备上接收到的操作,而是将它们统一定义为按键操作,只需要通过一个函数,就可以完成所有按键类操作的事件的接收。

幻世引擎提供了KeyDown、KeyUp和GetTheKeyState函数来帮助开发者检测按键的状态,这些函数的区别在于:

KeyDown和KeyUp仅仅对按键的某个状态有反应,KeyDown仅检测按键的按下状态,对于放开状态,该函数不会有反馈;KeyUp则刚好相反,该函数对按键的放开有反应,而对于按下操作则不会响应。对于每次按键操作,KeyDown和KeyUp函数只会对其相应一次,如果按键持续某个状态(比如持续的按下或持续的放开),这两个函数是不会一直反馈的。GetTheKeyState函数于此就有所不同了,它也只检测按下操作,但是,对于持续的按下状态,该函数会一直响应,从而可以持续不断的反馈用户的操作事件。

[检测按键操作]

好了,介绍了这么多,现在开始动手编写代码啦。我们使用上一篇教程的代码。我们今天想要实现的功能时,当用户按下ESC键后,就退出幻世程序。之前我们都是通过鼠标点击窗口关闭来退出程序的,现在我们尝试下一种新的方式!

1、找到代码的“帧处理函数”部分,编写检测按键操作的代码。

代码的含义就是:当检测到用户按下ESC的时候,退出幻世程序。

2、好了,现在我们编译并运行一下。这里我就不截图演示了,因为也无法截图展示出效果来,各位可以下载教程所附代码,自行测试效果。

[继续]

前一篇教程我们说过,要对之前的演示程序做一些改进以便让效果看上去更好些,在这里我们就通过本教程讲解的知识,完善下设计。

1、我们打开教程8的演示代码,找到“帧处理函数”部分,然后作如下修改。

当我们按下键盘的B键时才将鼠标的指针设置到窗口右下角。相比之前的设计,这样可以避免鼠标被固定而无法被移动。

2、效果截图我也不提供了,各位请看教程附带的示例程序。

[完成]

我们现在已经学习了如何与用户进行交互的方法了,这样我们的幻世程序将会更加有趣了,下篇教程,我们将继续学习如何检测鼠标的按键操作。

        [示例代码下载]

代码下载:http://kuai.xunlei.com/d/BiIvAJ2yT3iqUgQA929

幻世(OurDream)2D图形引擎使用教程9——处理操作输入(3)的更多相关文章

  1. 幻世(OurDream)2D图形引擎使用教程8——处理操作输入(2)

    声明:本教程版权归Lizcst Software Lab所有,欢迎转载,但是转载必须保留本段声明文字,并注明文章来源:http://blog.csdn.net/kflizcst 谢谢合作! 今天的教程 ...

  2. 幻世(OurDream)2D图形引擎使用教程11——播放媒体文件(1)

    声明:本教程版权归Lizcst Software Lab所有,欢迎转载,但是转载必须保留本段声明文字,并注明文章来源:http://blog.csdn.net/kflizcst 谢谢合作! 播放媒体是 ...

  3. 幻世(OurDream)2D图形引擎易语言汉化版更新提示

    幻世引擎的易语言汉化专版到目前为止已经累积了多个BUG,其中多个BUG是影响引擎功能使用的问题,我将会在近期发布修复所有问题的更新版本(此更新版本同时也将会支持最新的对加入的粒子系统的支持),敬请各位 ...

  4. 幻世(OurDream)2D图形引擎大更新——炫丽粒子特效强势回归!

    本次更新终于让各位期待已久的绚丽粒子系统特效强势回归到幻世当中了.凭借新引擎强大而又高效的绘图,新的粒子系统将比旧有版本(原Ycnd 2D)在性能上有极大幅度的增强,增幅超过十倍! 更强的性能!更好的 ...

  5. 幻世(OurDream)TM 2D图形引擎开通捐赠渠道

    为了支持幻世(OurDream)TM 2D图形引擎更好的发展,同一时候也是为了给希望支持引擎发展的朋友一个安全快捷的渠道,Lizcst Software Lab于今日正式在官方旗舰店增设了一个捐赠捐款 ...

  6. Unity 2D游戏开发教程之精灵的死亡和重生

    Unity 2D游戏开发教程之精灵的死亡和重生 精灵的死亡和重生 目前为止,游戏项目里的精灵只有Idle和Walking这两种状态.也就是说,无论精灵在游戏里做什么,它都不会进入其它的状态,如死亡.于 ...

  7. Unity 2D游戏开发教程之摄像头追踪功能

    Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以 ...

  8. Unity 2D游戏开发教程之使用脚本实现游戏逻辑

    Unity 2D游戏开发教程之使用脚本实现游戏逻辑 使用脚本实现游戏逻辑 通过上一节的操作,我们不仅创建了精灵的动画,还设置了动画的过渡条件,最终使得精灵得以按照我们的意愿,进入我们所指定的动画状态. ...

  9. Unity 2D游戏开发教程之游戏精灵的开火状态

    Unity 2D游戏开发教程之游戏精灵的开火状态 精灵的开火状态 “开火”就是发射子弹的意思,在战争类型的电影或者电视剧中,主角们就爱这么说!本节打算为精灵添加发射子弹的能力.因为本游戏在后面会引入敌 ...

随机推荐

  1. python--data type

    1.Python中常见的数据类型有: 数据类型    内建函数 整型    int(),long() 浮点型    float() 字符串型    str() 列表    list() 元组    t ...

  2. Objective-C 程序设计第四版 二

    1,%@  是用于输出OC里面的对象.例如 NSString *str = @“ls kd kd kf ”; NSLog(@“%@“, str); 2,NSInteger不是一个对象,而是基本数据类型 ...

  3. QT实现窗口缩放打开与关闭(重叠窗口,太有意思了)

    基本思想:假设A为主窗口,B为子窗口.A打开或关闭时,先对A窗口进行截图,然后将图片部满整个B窗口的,在paintEvent里面进行动态缩放或放大画图.最后使用动画,将B窗口以动画的形式打开或关闭,动 ...

  4. Windows Phone 8本地化多语言支持

    原文 Windows Phone 8本地化多语言支持 在WP8平台处理本地化多语言的支持还是比较容易的,大部分工作都有VS IDE处理,开发者只需简单操作,并翻译本地资源即可实现. 无论您目前的应用是 ...

  5. perl学习(5) 输入和输出

    1.1. 从标准输入设备输入 <STDIN> 行输入操作在到达文件的结尾时将返回undef,在while循环的条件中不能使用chomp: while (defined($line = &l ...

  6. lua学习:使用Lua处理游戏数据

    在之前lua学习:lua作配置文件里,我们学会了用lua作配置文件. 其实lua在游戏开发中可以作为一个强大的保存.载入游戏数据的工具. 1.载入游戏数据 比如说,现在我有一份表单: data.xls ...

  7. kinit manual

    Name kinit - obtain and cache Kerberos ticket-granting ticket Synopsis kinit [-V] [-l lifetime] [-s  ...

  8. 《Android第一行代码》笔记

    学习Android开发差点儿相同有两年时间了.期间也做了大大小小的一些项目.近来抽出闲暇想把Android基础强化一下,之前在网上看到了郭霖郭大神的几篇博客.从中受益不少.于是花了近一周时间看完了郭神 ...

  9. MSSQLServer的备份与还原

    最近用到了mssql2000的数据备份还原到2008上, 在备份2000时,一定注意要备份成一个文件,就是目标那里只添加一个就好,(否则待会还原数据库时要添加这两个文件,要不就报“备份了几个簇,只提供 ...

  10. iOS 把图片从Mac本地添加到iOS Simulator中

    [把图片从Mac本地添加到iOS Simulator中] 1. 把图片从Mac本机拖动到iOS Simulator中: 2. iOS Simulator会自动打开Safari去打开对应的图片,然后你用 ...