cocos2d-x

cocos2dx在C++层屏蔽emoji表情

China☆狼群 提交于 2020-08-10 18:13:04
在某些时候不希望用户输入emoji表情,所以需要将其过滤掉,屏蔽字符串中emoji表情方法如下: string check_input_str(const string& str ) { if (!str.compare("")) { return ""; } unsigned unicode; string ret; for (int i = 0; i < str.size(); i++) { char codePoint = str[i]; if (codePoint&0x80) { switch ((unsigned)(codePoint & 0xf0)) { case 0xf0: //0x9f -> emoji if ((unsigned)(str[i + 1] & 0x9f) != 0x9f) { for (int j = 0; j < 4; ++j) { ret.push_back(str[i + j]); char a = str[i + j]; } i+=3; } break; case 0xe0: for (int j = 0; j < 3; ++j) { ret.push_back(str[i + j]); } i+=2; break; case 0xc0: for (int j = 0; j < 2; ++j) { ret.push_back(str[i +

《UnityAPI.AnimationCurve动画曲线》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+AnimationCurve+Addkey+立钻哥哥++OK++)

不打扰是莪最后的温柔 提交于 2020-08-10 07:18:55
《Unity API. AnimationCurve动画曲线》 版本 作者 参与者 完成日期 备注 UnityAPI_AnimationCurve_V01_1.0 严立钻 2020.06.24 #《UnityAPI. AnimationCurve动画曲线 》发布说明: ++++“ UnityAPI. AnimationCurve动画曲线 ” 是对 UnityAPI 中 AnimationCurve动画曲线 类的剖析和拓展 ; 立钻哥哥: Unity 是一个入门快、提高难的游戏引擎,想要提升能力,至少需要越过 3 道坎: API + Shader + 综合能力 ; ++ 1、 API的积累: 对 API 的合理利用不仅可以减轻自己的编码负担,而且往往可以提高程序的运行效率;这也是钻哥开始“ Unity API ”独立打造分类的初衷 ; ++ 2、 Shader编程: 想要做出一款精品游戏往往需要有高效的 Shader 的支持; Unity 提供了一套改良的“ Shader Lab ”系统,优化了繁杂的“ Open GL ”编程 ; ++ 3、 综合能力(技术+业务+管理): 一款产品的制作除了功能编程外,往往会涉及很多其他领域,例如产品架构、 UI 交互设计、模型制作等,作为主要的编程人员,对其他相关领域的了解程序往往会影响到产品制作直至最后的产品体验 ; ++++

Cocos2d-x 学习笔记(15.2) EventDispatcher 事件分发机制 dispatchEvent(event)

隐身守侯 提交于 2020-08-09 19:39:28
1. 事件分发方法 EventDispatcher::dispatchEvent(Event* event) 首先通过_isEnabled标志判断事件分发是否启用。 执行 updateDirtyFlagForSceneGraph()。把一些node对应的ID置脏标记。 对_inDispatch++,当前正在分发的事件数+1。 DispatchGuard guard(_inDispatch); 接下来是一个判断,如果是触摸事件,会调用触摸专用的分发方法,而不是本方法。 if ( event ->getType() == Event::Type::TOUCH) { dispatchTouchEvent(static_cast <EventTouch*>( event )); return ; } 获取参数事件的ID作为监听器ID。 auto listenerID = __getListenerID( event ); 接下来对事件同ID的所有监听器进行排序。 sortEventListeners(listenerID); 又是一个类型判断,如果是鼠标事件,定义触摸事件分发函数指针,否则,定义通用的事件分发函数指针。 auto pfnDispatchEventToListeners = & EventDispatcher::dispatchEventToListeners; if (

‎Cocos2d-x 学习笔记(15.4) EventDispatcher 事件分发具体逻辑 dispatchEventToListeners函数

女生的网名这么多〃 提交于 2020-08-09 17:27:19
dispatchEvent(Event* event)方法在对事件对应的监听器进行重新排序后,进行事件分发操作。具体操作由dispatchEventToListeners方法执行。 该方法声明: void EventDispatcher::dispatchEventToListeners(EventListenerVector* listeners, const std::function< bool (EventListener*)>& onEvent); 第一个参数时监听器容器Vector,包含了存储两种监听器的容器。 第二个参数是回调函数,在该方法之前进行定义: auto onEvent = [& event ](EventListener* listener) -> bool { event ->setCurrentTarget(listener-> getAssociatedNode()); listener ->_onEvent( event ); return event -> isStopped(); }; 该方法运行流程简而言之,是对Vector内部的所有监听器按优先级从小到大进行遍历,对每个遍历到的监听器,先判断是否可以处理事件,可以后调用参数onEvent,执行回调函数。 接下来,事件分发方法内有以下操作: bool shouldStopPropagation

cocos2dx 入门 环境配置

我是研究僧i 提交于 2020-08-06 04:12:54
本人立志走游戏开发这条路,很早之前就准备学习cocos2dx,今天终于忙里偷闲入了一下门,把环境配置好了,创建了自己的第一个cocos项目! 一、环境配置 1、下载cocos https://cocos2d-x.org/download/cocos cocos集成了cocos2dx和cocos studio,不用再另外下载cocos2dx和cocos studio了。 2、下载Visual Studio 2015 社区版 http://download.microsoft.com/download/B/4/8/B4870509-05CB-447C-878F-2F80E4CB464C/vs2015.com_chs.iso cocos2dx官方推荐Visual Studio 2015或Visual Studio 2013(看了cocos的HelloWorld项目源代码我就懂了,cocos官方适配了Visual Studio 2015和Visual Studio 2013,其它版本可能无法正常运行cocos项目) 二、教学资源 找了一个多小时,在哔哩哔哩上找到一个还不错的教学视频(哔哩哔哩上关于cocos2dx的学习资源比较少) https://www.bilibili.com/video/BV1tC4y1W7Z8 三、第一个cocos项目 今天学习了第一个视频

cocos2dx 入门 环境配置

ⅰ亾dé卋堺 提交于 2020-08-04 23:15:52
本人立志走游戏开发这条路,很早之前就准备学习cocos2dx,今天终于忙里偷闲入了一下门,把环境配置好了,创建了自己的第一个cocos项目! 一、环境配置 1、下载cocos https://cocos2d-x.org/download/cocos cocos集成了cocos2dx和cocos studio,不用再另外下载cocos2dx和cocos studio了。 2、下载Visual Studio 2015 社区版 http://download.microsoft.com/download/B/4/8/B4870509-05CB-447C-878F-2F80E4CB464C/vs2015.com_chs.iso cocos2dx官方推荐Visual Studio 2015或Visual Studio 2013(看了cocos的HelloWorld项目源代码我就懂了,cocos官方适配了Visual Studio 2015和Visual Studio 2013,其它版本可能无法正常运行cocos项目) 二、教学资源 找了一个多小时,在哔哩哔哩上找到一个还不错的教学视频(哔哩哔哩上关于cocos2dx的学习资源比较少) https://www.bilibili.com/video/BV1tC4y1W7Z8 三、第一个cocos项目 今天学习了第一个视频

曾经我也有一个做游戏的梦想,这几本游戏开发的书籍推荐给为未来的游戏工程师

萝らか妹 提交于 2020-08-04 22:35:59
​ 想当年,我也是一名想做游戏开发的程序员,大学的时候照葫芦画瓢做了一个半成品的《炉石传说》一度让我以为我将来会成为一名游戏开发工程师,可惜后来我被C++的学习成本给全退了,于是乎和游戏开发这一领域从此是路人。 虽然现在也不能说这个选择到底是否正确,但是我对于游戏的热爱还是没怎么减少,只不过再也没时间玩了(o(╥﹏╥)o)今天我就来推荐一些关于游戏开发的游戏书籍,如果你刚好也是游戏开发爱好者,那么希望这些数据可以帮你指出一条明路。 这里主要推荐的是游戏开发入门、cocos2d、unity3d等常见游戏引擎的书籍,最后则是关于游戏引擎方面的书籍,不过不得不说的是,国内的游戏大厂确实越来越少了。 游戏开发书单 ​ 游戏开发 世嘉新人培训教材 《游戏开发:世嘉新人培训教材》全面介绍了游戏开发人员需要掌握的相关技术知识。内容由浅入深,从命令行游戏开发讲起,然后介绍如何开发简单的2D游戏,最后介绍如何开发出一个包含模型和动画的3D游戏,涵盖了计算机图形学(3DCG、2DCG、字体、光照、动画)、计算机运算(碰撞处理、计算误差)、编程(模块化、bug预防、性能优化)、游戏处理(状态迁移、实时处理、加载)和声音处理等知识。 作者简介 平山尚(作者) 1977年生于日本北海道,曾在京都大学研究生院工学研究科进行基因研究,毕业后进入世嘉株式会社,参与了《电脑战机》(PS2)、《超级网球大奖赛3》

Pixel Perfect Collision Detection in Cocos2dx

℡╲_俬逩灬. 提交于 2020-08-01 08:16:48
问题 I am trying to port the pixel perfect collision detection in Cocos2d-x the original version was made for Cocos2D and can be found here: http://www.cocos2d-iphone.org/forums/topic/pixel-perfect-collision-detection-using-color-blending/ Here is my code for the Cocos2d-x version bool CollisionDetection::areTheSpritesColliding(cocos2d::CCSprite *spr1, cocos2d::CCSprite *spr2, bool pp, CCRenderTexture* _rt) { bool isColliding = false; CCRect intersection; CCRect r1 = spr1->boundingBox(); CCRect r2

Cocos Creator 通用框架设计 —— 资源管理

吃可爱长大的小学妹 提交于 2020-07-28 08:53:24
如果你想使用Cocos Creator制作一些规模稍大的游戏,那么资源管理是必须解决的问题,随着游戏的进行,你可能会发现游戏的内存占用只升不降,哪怕你当前只用到了极少的资源,并且有使用cc.loader.release来释放之前加载的资源,但之前使用过的大部分资源都会留在内存中!为什么会这样呢? cocos creator 资源管理存在的问题 资源管理主要解决3个问题,资源加载,资源查找(使用),资源释放。这里要讨论的主要是资源释放的问题,这个问题看上去非常简单,在Cocos2d-x中确实也很简单,但在js中变得复杂了起来,因为难以跟踪一个资源是否可以被释放。 在Cocos2d-x中我们使用引用计数,在引用计数为0的时候释放资源,维护好引用计数即可,而且在Cocos2d-x中我们对资源的管理是比较分散的,引擎层面只提供如TextureCache、AudioManager之类的单例来管理某种特定的资源,大多数的资源都需要我们自己去管理,而在cocos creator中,我们的资源统一由cc.loader来管理,大量使用prefab,prefab与各种资源复杂的引用关系增加了资源管理的难度。 资源依赖 资源A可能依赖资源B、C、D,而资源D又依赖资源E,这是非常常见的一种资源依赖情况,如果我们使用 cc.loader.loadRes("A") 加载资源A,B~E都会被加载进来

《UnityAPI.MovieTexture影片纹理》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+MovieTexture+audioClip+立钻哥哥++OK++)

北慕城南 提交于 2020-07-27 14:50:53
《Unity API. MovieTexture影片纹理》 版本 作者 参与者 完成日期 备注 UnityAPI_MovieTexture_V01_1.0 严立钻 2020.05.29 #《UnityAPI. MovieTexture影片纹理 》发布说明: ++++“ UnityAPI. MovieTexture影片纹理 ” 是对 UnityAPI 中 MovieTexture影片纹理 类的剖析和拓展 ; 立钻哥哥: Unity 是一个入门快、提高难的游戏引擎,想要提升能力,至少需要越过 3 道坎: API + Shader + 综合能力 ; ++ 1、 API的积累: 对 API 的合理利用不仅可以减轻自己的编码负担,而且往往可以提高程序的运行效率;这也是钻哥开始“ Unity API ”独立打造分类的初衷 ; ++ 2、 Shader编程: 想要做出一款精品游戏往往需要有高效的 Shader 的支持; Unity 提供了一套改良的“ Shader Lab ”系统,优化了繁杂的“ Open GL ”编程 ; ++ 3、 综合能力(技术+业务+管理): 一款产品的制作除了功能编程外,往往会涉及很多其他领域,例如产品架构、 UI 交互设计、模型制作等,作为主要的编程人员,对其他相关领域的了解程序往往会影响到产品制作直至最后的产品体验 ; ++++ 立钻哥哥一直在推动【 VR云游戏 =