幻世(OurDream)2D图形引擎使用教程9——处理操作输入(3)
声明:本教程版权归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)的更多相关文章
- 幻世(OurDream)2D图形引擎使用教程8——处理操作输入(2)
声明:本教程版权归Lizcst Software Lab所有,欢迎转载,但是转载必须保留本段声明文字,并注明文章来源:http://blog.csdn.net/kflizcst 谢谢合作! 今天的教程 ...
- 幻世(OurDream)2D图形引擎使用教程11——播放媒体文件(1)
声明:本教程版权归Lizcst Software Lab所有,欢迎转载,但是转载必须保留本段声明文字,并注明文章来源:http://blog.csdn.net/kflizcst 谢谢合作! 播放媒体是 ...
- 幻世(OurDream)2D图形引擎易语言汉化版更新提示
幻世引擎的易语言汉化专版到目前为止已经累积了多个BUG,其中多个BUG是影响引擎功能使用的问题,我将会在近期发布修复所有问题的更新版本(此更新版本同时也将会支持最新的对加入的粒子系统的支持),敬请各位 ...
- 幻世(OurDream)2D图形引擎大更新——炫丽粒子特效强势回归!
本次更新终于让各位期待已久的绚丽粒子系统特效强势回归到幻世当中了.凭借新引擎强大而又高效的绘图,新的粒子系统将比旧有版本(原Ycnd 2D)在性能上有极大幅度的增强,增幅超过十倍! 更强的性能!更好的 ...
- 幻世(OurDream)TM 2D图形引擎开通捐赠渠道
为了支持幻世(OurDream)TM 2D图形引擎更好的发展,同一时候也是为了给希望支持引擎发展的朋友一个安全快捷的渠道,Lizcst Software Lab于今日正式在官方旗舰店增设了一个捐赠捐款 ...
- Unity 2D游戏开发教程之精灵的死亡和重生
Unity 2D游戏开发教程之精灵的死亡和重生 精灵的死亡和重生 目前为止,游戏项目里的精灵只有Idle和Walking这两种状态.也就是说,无论精灵在游戏里做什么,它都不会进入其它的状态,如死亡.于 ...
- Unity 2D游戏开发教程之摄像头追踪功能
Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以 ...
- Unity 2D游戏开发教程之使用脚本实现游戏逻辑
Unity 2D游戏开发教程之使用脚本实现游戏逻辑 使用脚本实现游戏逻辑 通过上一节的操作,我们不仅创建了精灵的动画,还设置了动画的过渡条件,最终使得精灵得以按照我们的意愿,进入我们所指定的动画状态. ...
- Unity 2D游戏开发教程之游戏精灵的开火状态
Unity 2D游戏开发教程之游戏精灵的开火状态 精灵的开火状态 “开火”就是发射子弹的意思,在战争类型的电影或者电视剧中,主角们就爱这么说!本节打算为精灵添加发射子弹的能力.因为本游戏在后面会引入敌 ...
随机推荐
- C#设置窗体最大化且不遮挡任务栏的方法
C#设置窗体最大化示例: 也可将方法内的内容放到主窗体首次加载load方法中. /// <summary> /// 设置窗体最大化(不遮挡任务栏)但此方法在宽屏中不能显示全屏/// < ...
- 查找最小的k个元素
题目:输入n个整数,输出其中最小的k个. 例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4. 两种思路,无非就是时间与空间的妥协. 限制空间的时候要对原数组进行排序, ...
- 转: c++继承中的内存布局
英文原文: http://www.openrce.org/articles/files/jangrayhood.pdf 翻译: http://blog.csdn.net/jiangyi711/arti ...
- Uva 552 Prime Ring Problem(dfs)
题目链接:Uva 552 思路分析:时间限制为3s,数据较小,使用深度搜索查找所有的解. 代码如下: #include <iostream> #include <string.h&g ...
- MSSQLServer的备份与还原
最近用到了mssql2000的数据备份还原到2008上, 在备份2000时,一定注意要备份成一个文件,就是目标那里只添加一个就好,(否则待会还原数据库时要添加这两个文件,要不就报“备份了几个簇,只提供 ...
- if语句之有房么?有钱么?有能力么?
思路:1.如果有房,可以谈谈 2.如果没有房,问第二个条件有钱么,如果有,可以谈谈 3.如果没有房没有钱,则问第三个条件有能力么,如果有,可以谈谈 4.如果以上三个条件都没有,则拜拜 Console. ...
- C语言,调试必备的DEBUG宏定义
1. #include <stdio.h> #include <stdarg.h> //仅仅是打印函数名字替换 DEBUG <--> printf #define ...
- php四舍五入函数(floor、ceil、round与intval)
原文链接:php四舍五入函数(floor.ceil.round与intval) PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法 ...
- django email用法
在settings里面设置 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'EMAIL_PORT = 25EMAIL_HOST ...
- HDU 4740 模拟题意
九野的博客,转载请注明出处:http://blog.csdn.net/acmmmm/article/details/11711743 题意:驴和老虎在方格中跑,跑的方式:径直跑,若遇到边界或之前走过的 ...