声明:本教程版权归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. r语言之给定的概率密度函数生成随机数

    假设概率密度函数为: 思路: 首先产生-1到1之间的均匀分布随机数x,和0到1之间的均匀分布随机数y. 如果y<f(x),则x是符合该概率密度的随机数,否则,重复上述操作. 用r语言生成100个 ...

  2. [LeetCode]题解(python):044-Wildcard Matching

    题目来源: https://leetcode.com/problems/wildcard-matching/ 题意分析: 定义两个新字符规则,'?'代表任意一个字符,’*‘代表任意长度的任意字符.输入 ...

  3. 多种EDA软件的鼠标增强工具EDAHelper

    最新版本(unicode版本,各种语言环境显示中文)下载地址:http://www.jyxtec.com/edahelper/EDAHelper-2.1.13.7z 繁体版:http://www.jy ...

  4. QT通过IP地址定位地址(用get方法取数据)

    通过IP地址定位地址,是要通过查询数据库,如果自己做一个这样的数据库工作量就比较大,所以在网上找了一个查询IP地址的网址,通过调用这个网址查询来实现,但是这个有一定的弊端,如果没有网络或者这个网址不可 ...

  5. 设计模式总结5--命令模式 commend pattern

    命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象.就像我们去餐厅,点菜是找服务员,然后服务员去让厨师做菜而不是我们直接找厨师做菜 public interface Commend { ...

  6. wiki oi 1044 拦截导弹

    题目描述 Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某 ...

  7. MFC基础类源码CPP实现文件

    WinMain.CPP---->AfxWinMain()  //近似可认为是WinMain()函数的入口 VIEWCORE.CPP---->CView DOCCORE.CPP----> ...

  8. More Divisors(反素数)

    More Divisors Time Limit: 2 Seconds      Memory Limit: 65536 KB Everybody knows that we use decimal ...

  9. 1245 - Harmonic Number (II)(规律题)

    1245 - Harmonic Number (II)   PDF (English) Statistics Forum Time Limit: 3 second(s) Memory Limit: 3 ...

  10. iOS UIView非常用方法及属性详解

    在调用视图的 Quartz  调用都可以正确地在视图中描画.   视图对象通过 bounds .和 center  属 性声明来跟踪自己的大小和位置.frame 属性包含一个矩形,即边框矩形,用于指定 ...