Cocos2D-x引擎支持按键事件,它能检测设备的键盘输入并处理相应的事件.而基于不同操作系统的移动设备,可供用户操作的按键数量和功能都存在差异.   Cocos2D-x使用CCKeypadDelegate接口类处理相应的事件,这个类定义很简单,如下: class CC_DLL CCKeypadDelegate{public:    virtual void keyBackClicked() {} //返回按键事件    virtual void keyMenuClicked() {}; //M…
游戏跟视频最大的区别就是互动,而手游(基于智能手机)主要靠触摸屏幕.重力传感和虚拟键盘等方式实现互动.这里主要记录Cocos2D-x对玩家触屏操作的处理. 在Cocos2D-x中触屏分为单点触屏和多点触屏,下面介绍一下与触屏相关的几个类.触屏事件和流程. ·CCTouch(触屏点类):这个类用于封闭触屏点,通过它的locationInView方法返回当前触屏点CCPoint.它还记录上一个触屏点. ·CCTouchDelegate(触屏代理协议类):它是触屏事件委托,系统捕捉到触屏事件后交由它或…
游戏物理引擎是指在游戏中涉及物理现象的逻辑处理,它用于模拟现实世界的各种物理规律(如赛车碰撞.子弹飞行.物体掉落等),让玩家能够在游戏中有真实的体验. Cocos2D-x中支持Box2D和Chipmunk两种第三方开源物理引擎.这两种物理引擎功能上没有本质的区别,只是Chipmunk是用C语言实现的,Box2D是用C++语言实现的.Box2D目前相对使用更为广泛,所以本节只了解Box2D物理引擎. 要学习Box2D物理引擎,我们先来了解一些Box2D中定义的重要概念,这些概念是构成Box2D世界…
我想接触过游戏引擎的同学,对粒子系统应该不会陌生.它用于解决由大量按一定规则运动(变化)的微小物质在计算机上的生成和显示问题.粒子系统在游戏中有着非常广泛的应用,可以模拟很多现象,如火花.爆炸.烟雾.星云.流水.落花等. 粒子系统(partical system)在粒子效果中对所有粒子进行统一控制和调度,它的常见功能如下: ·产生粒子:也被称作粒子发射器(emitter). ·控制粒子:随时间更新粒子的位置.速度以及其他状态. ·回收粒子:当粒子的生存周期结束后就会被系统回收. Cocos2D-…
由于一张大的世界地图或背景图片往往可以由屈指可数的几种地形来表示,每种地形对应于一张小的图片,我们称这些小的地形图片为瓦片.把这些瓦片拼接在一起,组合成一个完整的地图,这就是瓦片地图集的基本原理. Cocos2D-x中支持两种瓦片地图集格式:一种是*.tag文件格式,一种是*.tmx文件格式. ·*.tag文件格式一般采用photoshop生成,在Cocos2D-x中为了兼容性仍保留,目前已经不推荐使用这种方式拼图.虽然如此,我们还是简单了解一下.Cocos2D-x通过类CCTileMapAtl…
在游戏中,经常会周期执行一些检测.操作或更新一些数据等,我们称之为调度.Cocos2D-x中将调度封装为类CCScheduler,方便在游戏开发中使用.我们一起来学习一下,CCScheduler具有哪些调度功能.    从上图可知,CCScheduler直接从基类CCObject继承而来.CCScheduler的调度模式分为两种:一种是update定时器调度,它是按照优先级来进行调度,在Cocos2D-x中优先级分为三类(大于零.小于零和等于零),值越小优先级越高.另一种是按照自定义定时器调度.…
在前面的Cocos2D-x的概念类中,我们了解到节点类CCNode.导演类CCDirector.场景类CCScene.布景层类CCLayer和精灵类CCSprite等,这些类都是构成游戏画面的基本元素.特别是精灵类CCSprite,它是游戏的主要元素.记得在讲CCSprite时说过,它本质上就是一张二维的图片对象.这些图片对象被加载到游戏中,显示到屏幕中形成各种静态画面.但游戏除了静态画面,更多需要有动态效果(如动作.特效和动画),它将游戏角色性格和情绪活灵活现的表现出来.可以说,动态效果的好坏…
智能手机的游戏与应用中,也经常会用到加速传感器事件来丰富用户的体验,比如飞翔的企鹅(英文AirPenguin)游戏就是通过加速度传感器来控制角色的移动和跳跃方向.下面学习Cocos2D-x中如何使用加速度传感器事件. Cocos2D-x中使用加速度传感器代理类CCAccelerometerDelegate提供的接口方法来接受加速度传感器的数值变化,类继承关系如下图: 布景层类CCLayer和其子类继承自CCAccelerometerDelegate类,因此它们支持加速度传感器.   CCAcce…
在移动终端(智能手机)平台下开发游戏一般都会涉及到屏幕多分辨率适配问题,原因是手机款式多种多样,不同的款式存在有不同的尺寸,即使尺寸相同又可能存在不同的分辨率. 手机屏幕尺寸:指手机屏幕对角线长度. 手机分辨率:指屏幕上横.纵的总象素点数.分辨率越高,即总象素点数越多,屏幕显示效果越好.               上面我们介绍了手机尺寸和分辨率的概念,结论是手机屏幕显示效果是由尺寸和分辨率决定的.相同尺寸不同分辨率手机,分辨率越高显示效果越好:相同分辨率不同尺寸的手机,尺寸越大显示效果越差.…
在游戏中,音效是一个不可或缺的部分,它可以为我们的游戏增加效果.音效在游戏中一般分为长时间的背景音乐和短促的特效音乐.Cocos2D-x支持多种常见音乐格式(mp3.wav等). Cocos2D-x提供了一个非常简单的跨平台声音引擎,它被包含在CocosDenshion库(编译生成libCocosDenshion.lib)中,目录结构如下:   上图可以看出,Cocos2D-x的声音引擎支持多个平台,我们这里使用的是win32平台. 在include目录中有一个SimpleAudioEngine…
我认为很多开发者面对层出不穷的新技术.新思想和新理念,最为之苦恼的是找不到行之有效的学习方法,对于知识的本质缺乏认识,虽阅读了大量教材,却无法将其融入自己的知识体系,并搭建自己的知识树.不可否认,教材的目录和编排有一定的结构和条理,但它未必符合人的思维结构.叔本华认为一切思想都是产生自我意识的素材,不加消化的接纳,只能成为别人思想的傀儡.我想说cocos2d-x研习录是我对学习cocos2d-x的认识.思考和总结,虽然可能比较肤浅或存在错误,当然也不具有要指导菜鸟.教训老鸟的重大使命,但这是我搭…
https://www.ieway.cn/index.html 免费无水印,集视频录制与直播功能于一身的桌面录屏软件,支持录屏涂鸦.实时按键显示.视频体积压缩等实用功能 EVCapture 3.9.7 下载地址: https://dl.softmgr.qq.com/original/multimedia/EVCapture_3.9.7.exe 下载地址 特色: 快捷键: 1. 无需额外设置 2. 鼠标点击 阴影设置一下,设置为“7” 比较合适 3. 完成! 目前最推荐使用 EV 录屏工具,效果比…
Cocos2D是一个2D开源游戏引擎,它最早是由Ricardo Quesada(阿根廷人,社区简称Riq)和他的朋友们用Python开发的,用于开发2D游戏和基于2D图形的任何应用.最早引擎的名字源自开发地阿根廷Cordoba市附近的Los Cocos,后来引擎在2008年2月29日发布第一个版本(版本号0.1.0),并改名为Cocos2D.那时该引擎鲜为人知,至到2008年6月移植到苹果iOS平台,并发布以Object-C为主语言的Cocos2D-iPhone版本才名声大噪. 我在网上搜索到一…
    上一节了解Cocos2D家族史,本节关注Cocos2D家庭的一个重要分支Cocos2D-x.Cocos2D-x是Cocos2D的C++移植版本,它的最大特性是跨平台,使开发者编写一套C++代码就可以横跨Android和iOS两大平台,大大提高了开发效率.         值得庆幸和骄傲的是Cocos2D-x的主力开发团队是中国人,这就为学习Cocos2D-x带来了极大的便利,扫清了语言的障碍.我在网上也搜索到一张主力成员的照片,如下:                  Cocos2D-x…
了解完Cocos2D-x的基本概念和概念类之后,是不是有一种蠢蠢欲动的冲动,想要探究Cocos2D-x是如何完成这一切的.接着我将通过对Cocos2D-x自代的HelloCpp项目进行分析,初步了解Cocos2D-x游戏的基本框架,揭开Cocos2D-x神秘的面纱.      作为一个Hello World程序,HelloCpp的功能非常简单.打开一个OpenGL窗口,在里面显示了一张Cocos2D-x的log图片,在图片的上面写着"Hello World".在右下角有一个按钮,用来退…
上一节说布景层CCLayer是小容器,那么精灵类CCSprite就是容器添加的内容,它是构成游戏的主要元素.精灵这个名称应该是游戏专用,它表示游戏中玩家操作的主角.敌人.NPC(Non Player Character-非玩家控制角色的缩写).背景.道具和机关等.在Cocos2D-x中,CCSprite本质上就是一张二维的图片对象而已.CCSprite的继承关系图如下:    从上图可知,CCSPrite也是CCNode的子类,不过它还支持纹理和色彩.看一看CCSprite的内部结构和功能.  …
上面说场景CCScene相当于一个大容器,那么布景层类CCLayer就是大容器里的若干个小容器.每个游戏场景CCScene会有很多层CCLayer,每一层CCLayer负责各自的任务.看一下CCLayer的类继承关系图,如下:          可以看出,CCLayer是CCNode的子类,并且它还支持触屏.加速度传感器和键盘输入.除此之外,CCLayer还有很多子类,如下:       这些子类实现了很多UI(如菜单.列表视图.滚(滑)动视图.控件(按钮.开关.滑动条等)),这些子类的用法将在…
CCDirector类是游戏的组织和控制中心(总指挥),它控制着主屏幕的显示.场景的切换和显示,以及游戏的开始.结束和暂停.它的继承关系图如下:    CCDirector继承自基类CCObject,它还有一个子类CCDisplayLinkDirector,它是一个可以自动刷新的CCDirector.CCDirector包括的核心功能如下:    ·初始化OpenGL和设置OpenGL参数:    ·控制场景管理和切换:    ·设置Cocos2D的配置细节:    ·访问视图(OpenGL.U…
节点类CCNode在基本概念中并不存在,它是为了建立基本概念之间的关联关系而抽象出来的中间辅助类.这个类在Cocos2D-x中极为重要,它为概念类之间搭建了一座宏伟的桥梁.它的继承关系图如下:      从继承关系图知,CCNode是继承自基类CCObject,而场景CCScene.布景层CCLayer和精灵CCSprite都从它继承而来.它是一个抽象类,没有可视化的表示形式,但任何需要画在屏幕上的对象几乎都是从节点类CCNode继承而来.下面这张CCNode及子类继承图可说明这一点:     …
在Cocos2D-x引擎中,有几个非常重要的概念:导演(CCDirector).摄像机(CCCamera).场景(CCSecen).布景(CCLayer).精灵(CCSPrite)和动作(CCAction).当看到这些概念,很容易联想到拍电影.我想Cocos2D在架构设计时,灵感恐怕正是来源于拍电影.我认为游戏除了需要与玩家交互外,和动画.电影制作具有很多相似的元素. 以下分别描述这些概念: ·导演(CCDirector):导演是整个游戏的组织和控制核心.导演可以制定游戏的运行规则,从而让游戏内…
在Cocos2D-x中,每个CCNode都拥有一个摄像机类CCCamera.只有通过CCCamera,CCNode才会被渲染出来.当CCNode发生缩放.旋转和位置变化时,都需要覆盖CCCamera,让CCNode能够通过CCCamera重新渲染.CCCamera的类继承关系图如下:          查看一下CCCamera的内部结构和功能.      ·CCCamera属性:       float m_fEyeX:视角位置坐标x      float m_fEyeY:视角位置坐标y    …
场景类CCScene是Cocos2D-x在屏幕显示的内容,相当于游戏关卡或界面.CCDirector任何时候只能显示一个场景CCScene,游戏中可能存在若干场景,CCDirector通过场景切换达到显示不同场景的目的. Scene继承于CCNode,它相当于一个大容器(CCNode树形结构),将其包含的布景层CCLayer以及CCSprite精灵等游戏元素输出到屏幕中显示,它是整个CCNode树的根节点.其实,CCScene的内部结构非常简单,虽然继承自CCNode,但没有在它的基础上增加任何…
<实战录>导语 一转眼作为一名Java开发者已经四年多时间了,说长不长说短不短,对于java的感情还是比较深的,主要嘛毕竟它给了我饭吃.哈哈,开个玩笑.今天我想借此机会来和大家聊聊Java多线程.文中若有错误还请各位小伙伴及时指出. Java是一种跨平台,适合于分布式计算环境的面向对象编程语言.关于Java的优点,我想每个刚接触Java的朋友,都会听过你的Java启蒙老师说过这么一句话:"一次编译,到处运行".这个"到处运行"是说任何平台上只要安装了JR…
关于spring的传播特性,我对其进行了详细的叙述了下: PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务.这是最常见的选择. 比如方法A调用方法B,如果方法A,B都使用该特性,那么A会开启事务, 执行到B的时候,B发现自己处于一个事务中,则会合并到该事务中和 A公用一个事务执行,弱任一异常会回滚整个事务,AB执行都失败. 若A未开启事务且未使用该特性,B使用该特性,B发现未处于一 个事务中,则会主动开启事务,只有B会使用事务,A不会. PROPAGAT…
数据库版本: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Oracle11g 增加了虚拟列的新特性, 具体说明如下: 1> 只能在堆组织表(普通表)上创建虚拟列,不能在索引组织表.外部表.临时表上创建虚拟列 2> 虚拟列不能是LOB或者RAW类型 3> 虚拟列的值并不是真实存在的,只有用到时,才根据表达式计算出虚拟列的值,磁盘上并不存放 4> 可把虚拟列当做分区关键字建立分区表,这是ORACLE…
一.输入事务代码SCAT,输入Z开头的程序名,点击左上角的新建图标 二.输入标题和模块名 三.保存为本地对象 四.包属性修改为CATT,然后保存 五.可以看到我们新建的一条内容,点击小铅笔修改 六.点击记录按钮 七.点击录屏之后,输入事务代码 八.我们修改前10个件号,以第一个“87292325V07”为例 九.输入件号后,点击对勾 十.选择基本数据2,打对勾 十一.在界面操作,去掉TSD的勾选 十二.点击保存之后,这个事件会结束,点击右下角的红色结束按钮 十三.在SCAT模块可以看到新增的一条…
黑金论坛地址: http://www.heijin.org/forum.php?mod=viewthread&tid=36640&extra=page%3D1 爱奇艺地址: http://www.iqiyi.com/w_19rugglzn1.html?source=…
​Android 开发中我们有时候需要借助一些命令帮助更好的高效率定位解决问题,本文就来介绍一些可能有些隐藏的而却非常好用的命令,可以帮我们快速找到问题,这些命令都是本人在开发中实践总结,个人觉得非常实用,所以可能对于你不是很有用,但是了解也是很好的,而 Android 中的命令很多的,有些个人觉得没多大用就不在这里提了,好了,下面就开始命令的分析总结. 一.基础命令 在说这些命令之前,得先提及一些基本命令用法: 第一个:cat 命令 主要用于查看文件内容,这个命令的重要性不言而喻,有时候我们想…
前面我们讲了精灵贴图.标签.菜单.按钮.感觉似乎少了点什么?UI控件里是不是应该还有一个很重要的控件--编辑框.在手机网游中,启动游戏,过了开场动画后,基本上显示的第一个界面应该就是游戏的登录界面了吧.输入用户名.密码什么的,这些都是需要借助编辑框来实现输入的.点击文本,弹出虚拟键盘,输入账号密码,点击登录. cocos2dx引擎为我们提供了两类编辑框的控件: (1)CCTextFieldTTF(基于CCLabelTTF) (2)CCEditBox(基于CCControlButton) 本节就先…
iOS的10.0 本文总结了iOS的10,运行于目前推出iOS设备推出的主要开发者相关的功能. iOS版10引入了新的方法来增加您的应用程序通过帮助系统参与在适当的时候建议你的应用程序给用户.如果你在你的iOS应用9采纳应用的搜索,你给了用户通过Spotlight和Safari浏览器的搜索结果,切换访问活动和内容的应用程序中深,Siri的建议.在iOS中10及更高版本,可以提供关于用户在您的应用程序,它有助于系统推广您的应用额外的地方,如键盘QuickType建议,地图和CarPlay,应用程序…