幻世(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游戏开发教程之游戏精灵的开火状态 精灵的开火状态 “开火”就是发射子弹的意思,在战争类型的电影或者电视剧中,主角们就爱这么说!本节打算为精灵添加发射子弹的能力.因为本游戏在后面会引入敌 ...
随机推荐
- LNMP一键安装结果
============================== Check install ============================== Checking ... Nginx: OK M ...
- 转:.Net程序员学习Linux最简单的方法
有很多关于Linux的书籍,博客.大多数都会比较“粗暴“的将一大堆的命令塞给读者,从而使很多.NET程序员望而却步.未入其门就路过了. 所以我设想用一种更为平滑的学习方式, 就是在学习命令时,先用纯语 ...
- Hadoop HDFS分布式文件系统设计要点与架构
Hadoop HDFS分布式文件系统设计要点与架构 Hadoop简介:一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群 ...
- 关于JAVA 向上转型
最近复习中比较绕的一个地方 通过试验总结一下 若A为父类 B为子类 声明方式为: A t= new B(); 将子类对象赋值给父类对象,它编译时为父类对象,但运行时却是子类对象: 1)被声明为父类对象 ...
- POJ--1300--Door Man【推断无向图欧拉通路】
链接:http://poj.org/problem?id=1300 题意:有n个房间.每一个房间有若干个门和别的房间相连.管家从m房间開始走.要回到自己的住处(0),问是否有一条路能够走遍全部的门而且 ...
- SeekBar 样式设置
1 SeekBar简介 SeekBar是进度条.我们使用进度条时,可以使用系统默认的进度条:也可以自定义进度条的图片和滑块图片等. 2 SeekBar示例 创建一个activity,包含2个SeekB ...
- hdu3306 Another kind of Fibonacci【矩阵快速幂】
转载请注明出处:http://www.cnblogs.com/KirisameMarisa/p/4187670.html 题目链接:http://acm.hdu.edu.cn/showproblem. ...
- C# 中根据datetime的值来计算属于本年的第几周,类似delphi中的weekoftheyear功能
/// <summary> /// 获得今天是今年的第几周 /// </summary> /// <param name="year">< ...
- 【JavaScript】==与===对比
1.对于string,number等基础类型,==和===是有区别的 1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等 2)同类型比较,直接进 ...
- Linux 下github的使用
*初始化git仓库,使用git init命令 *添加文件到git仓库分两步: 1.使用git add filename :可分多次使用,添加多个文件到暂存区 2.使用git commit -m “ ...