目前网络中关于cocos2d-iphone 方面的资料,大部分都是基于c++ 语言跨平台的cocos2d-x,偶尔搜到一些cocos2d方面的也由于版本比较早(1.0~2.x之间),与目前cocos2d 3.0差异较大,不利于初学者上手,因此近日整理了一部分关于在cocos2d 3.0方面的实践经验,希望能对cocos2d 感兴趣的朋友有所帮助.(本文中的项目代码示例是以cocos2d最新的v3.5版本为参考)
在游戏中,角色(cocos2d中的术语为精灵)都是具有丰富的动作效果,合理的使用这些动作比如闪烁,跳跃,翻转,都会带来体验上的差异.cocos2d为我们提供了多种CCAction类,本文通过对CCAction的简单使用示例,帮助大家了解在实际应用中如何借助这些Action实现自己的动画效果.
在cocos2d中,CCNode是最基本的显示对象. 在3.0后的新版本中CCNode继承自CCResponder类,可以响应用户的交互事件(点击,触摸等),也正由于这个原因,在新版本中去除了CCLayer(在旧版本中响应用户的交互). CCNode 在cocos2d中的重要性类似于UIView之于UIKit.
练习操作:直CClayer子类init在 this->setTouchEnabled(true);
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115255.html原文链接:https://javaforall.cn
本文翻译自 https://www.raywenderlich.com/网站上Guanghui Qu写的2015年4月30号的一篇博文 Cocos2d-x Tutorial for Beginners,他使用的Cocos2d-x的版本是 version 3.5。另外,关于在Windows10下使用Cocos2d-x 3.17.2构建项目的,可以参考我之前写的博客: Win10+Python2.7.14+cocos2d-x-3.17.2+VS2017环境搭建
VS2013快捷键:注释,Ctrl+K+C;取消注释Ctrl+K+U。都是单行。要实现多行注释与取消注释,就选中多行。 run方法调用了AppDelegate的applicationDidFinishLaunching方法 要调整窗体的大小的话,在AppDelegate.cpp的 auto director = Director::getInstance(); auto glview = director->getOpenGLView(); if(!glview) { glview = GLViewImpl
推荐一个关于游戏开发的一个网站:https://www.raywenderlich.com/ 上面有些游戏开发视频是收费的,不过有些博客是面免费的,对游戏感兴趣的同学可以看一下:
Objection是一款移动设备运行时漏洞利用工具,该工具由Frida驱动,可以帮助研究人员访问移动端应用程序,并在无需越狱或root操作的情况下对移动端应用程序的安全进行评估检查。
使用官方的安装器cocos2d Installer创建的工程后,默认的cocos2d-ext路径下是不完整的.
cocos2d-x环境搭建比較简单,可是小问题还是不少,我尽量都涵盖的全面一些。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115397.html原文链接:https://javaforall.cn
命令工具cocos实现,cocos工具其实是cocos2d团队自己开发的。是使用Python脚本编写的,cocos工具的运行需要安装Python环境 (还会用到ant,eclipse等工具哦,后面介绍) Python下载地址 https://www.python.org/ 需要注意的是它目前有Python3和Python2可以下载,我们选择Python 2,不要下载3,因为2和3语法有很大差别,cocos这个工具是使用2编写的,如果你使用了3,会在脚本编译就出问题 (我的源代码中有window的Python安装包) 下载->安装->配置环境变量(Path中添加Python根目录)
今天从 Python 跑偏,简略地介绍下另一个东西 -- Cocos2d-x。 Cocos2d-x 是一个开源的跨平台游戏框架,也是目前最流行的游戏引擎之一。现在国内流行的手机游戏,多半都是用此引擎开发。如果是对游戏开发,尤其是手机游戏开发感兴趣的同学,不妨去深入了解一下。不管是用来自己开发游戏,还是去找一份游戏开发的工作,都很有用处。 虽然是一个广泛应用在移动设备上的引擎,但 Cocos2d-x 和 Python 还是有些渊源的。它的前身 Cocos2d 框架的最早版本就是基于 Python 开发的。 相
在游戏开发中,通常对于性能的处理是比应用型的App要敏感一些.游戏中的操作往往比较频繁而且多数都需要立刻响应,若是性能问题导致用户体验卡顿,算是比较糟糕的情况了,对于大型游戏开发公司来说,会有专门的团队(也可能是个人)处理性能优化,其重要性不言而喻.在cocos2d的项目开发中,性能调节的入手点往往都是最先由纹理开始的.下面我们就来讲一下纹理的基础知识.
游戏引擎主要用于快速开发游戏,将游戏中固定不变的处理抽取出来,形成完整的游戏主体,用户只需要对开放的接口进行对象设计和驱动即可。在当前的环境,还需要两个特别重要的属性,第一就是跨平台(基本标准),还有一个我觉得更重要是社区的系统,没有强大的网络社区做支撑,再牛B的游戏引擎都很难发挥所长。
写这篇博客时2D游戏引擎Cocos2d-x的最新版本为2.1.4,记得很久以前使用博客园博主子龙山人的一篇博文《Cocos2d-x win7+vs2010配置图文详解(亲测)》成功配置过cocos2d-1.01-x-0.9.1版本,链接为:Cocos2d-x win7 + vs2010 配置图文详解(亲测)-来自子龙山人的博客,他写的博客图文并茂,很是详细。
今天在开发游戏引导框架时,遇到这样的需求:人物对话文本支持打字机效果,且需要个别文字高亮。如果仅仅是前者的需求,是挺好实现的,创建一个Label,通过getLetter(index)获取每个字,调用setVisible(isVisible)即可;但是个别文字高亮是RichText才有的功能,于是难点变成了如何获取RichText里的每个字?
本篇博客讲解: Cocos2d-x介绍与环境搭建 1.移动平台游戏引擎介绍 2.Cocos2d家谱介绍 3.Cocos2d-x设计目标 4.在Windows平台下开始开发Cocos2d-x游戏
最后一篇讲一下游戏中的主要逻辑推断,在上面的工作都做充分准备后,游戏主要逻辑将变得特别清晰,接下来你会看到全部的逻辑都是那么的清晰自然,由于前面已经做好了充分的准备工作,这里仅仅是整合了前面的工作,略微增加了一些游戏推断元素。
首先对捕鱼达人这款游戏做个简单了解。捕鱼达人是前几年特别火的一款游戏,他是一款以深海狩猎为题材的休闲竞技游戏。2009年《捕鱼达人》上线,最初以简单轻松的捕鱼玩法获得了玩家的喜爱。随后几年,获得了游戏工委颁发的“游戏十强”2015年度十大最受欢迎移动网络游戏奖等多项奖项。郑重宣布捕鱼达人的地位。
cocos2d是经常使用的iOS游戏引擎,在编写代码的时候,经常需要参考它的API文档,本文主要介绍如何将cocos2d的文档整合到XCode中。
cocos2d引擎是一款非常优秀的扩平台的游戏开发引擎,在apple游戏榜上,有很多排名靠前的游戏都是由他创造出来的,他也有一套十分方便的坐标体系。
而在主循环的内容中还会涉及到:组件的生命周期和计时器、缓动系统、动画系统和物理系统等...
cocos studio(支持c++和lua不需要插件)的替代品,electron架构编写的编辑器,支持react、vue等
Cocos2d-x封装了3个类来处理HTTP请求: HttpRequest,HttpClient和HttpResponse.
#include "PianoScene.h" #include "SimpleAudioEngine.h" USING_NS_CC; Scene* Piano::createScene() { Scene* scene = Scene::create(); Piano* layer = Piano::create(); scene->addChild(layer); return scene; } bool Piano::init() { if (!Layer::init()) r
#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include "EnemyPlane.h" #include "EnemyBullet.h" USING_NS_CC; Scene* GamePlane::createScene() { auto scene = Scene::create(); auto layer = GamePlane::create(); scene->addChild(l
在前一章中,我们谈到游戏的场景滚动主要包括3种类型:纵向、横向、纵横向。无论何种画面滚动方式,都需要实现主角在地图中的游历。在游历的过程中需要判断: 1) 是否遇到障碍物。 2) 是否被敌方炮弹击中。 以上两种判断都涉及到游戏中一个十分重要的概念:碰撞探测(Collision detection)。本章将在前一章的基础之上,讲解主教精灵如何在地图中漫游,如何实现碰撞探测,如何通过火炮击中敌人。并且给出简单的敌方AI模拟。总之,完成本章学习之后,读者已经可以开始编写类似于“坦克大战”等基本简单游戏了。 下图就是我们示例ZYG007的游戏画面:
cocos2d-x-v3版本v2的版本有的很大的改动,最直观的是在一些函数的改动和类名的改动上,首先以CC开头的类,都不再使用CC。在我个人的理解上,原来的cocos2d-x是完全从iphone的框架cocos2d移植过来的,代码的风格和编程的思想都及类似于Object-C,除了语法是C++的外,其他就像是OC版的翻译,新的版本更好的体现了跨平台的特性,也更多的运用了C++的一些编码思想和语言特点,更易于各平台的开发者使用。这篇博客的主要内容,是总结cocos2d中行为动作的处理方法和相关函数。
Cocos Code IDE 是一个基于 Eclipse 的跨平台 IDE ,专门为 cocos2d lua & js 开发者准备,通过此工具。你能够方便的创建游戏project、编写而且调试代码、实时查看代码被改变后的效果,终于直接公布成一个可上架的安装包。当前公布的是第一个 alpha 版本号,我们有信心将它打造成众多X-man的开发神器。
感觉游戏审核新政实施后,国内手游市场略冷清,是不是各家的新游戏都在排队等审核。媒体们除了之前竞相追捧《Pokemon Go》热闹了一把,似乎也听不到什么声音了。直到最近几天,突然听见好几人都提到同一个游戏,网上还有人表示朋友圈被它刷屏了。(不过现在微信已经悍然屏蔽了它的分享) 这个游戏就是现在iOS免费榜排名第一的《贪吃蛇大作战》。一个简单到不行的游戏,也不知道怎么就火了。反正一款游戏火了,各路媒体、专家总能说出种种套路来,所以我就不发表意见了。不过这实在是一个挺好实现的游戏,于是一时技痒,拿 Python
#include "GameScene.h" #include "CardSprite.h" #include "ScoreBoard.h" #include "SimpleAudioEngine.h" USING_NS_CC; Scene* GameLayer::createScene() { auto scene = Scene::create(); auto layer = GameLayer::create(); scene->addChild(layer); return scen
最开始项目使用的是自己DIY的很简陋的上报系统,后来改成google breakpad来上报,发现其实都做的不太理想,游戏引擎因为版本历史问题存在一些崩溃问题。后来3.x接入了bugly,我这边抽了几天时间也准备接入,在接入bugly之前我是想用BugTags的,说实话我特别喜欢也为这款产品点赞(它的技术人员、客服人员响应速度和服务都是很赞的,最开始公司总结5个人,我也担任过客服的角色去跟用户沟通知道这其中的不易),但是毕竟它目前为止对NDK以及Lua方面支持的比较弱,而且截图时还存在黑屏的现象,对非原生的应用不太友好,所以后来还是放弃了,转入对C++崩溃捕获更为专业的Bugly。
本篇博客讲解: 1.UI坐标 2.OpenGL坐标 3.世界坐标和模型坐标 4.实例:世界坐标转换为模型坐标 5.实例:模型坐标转换为世界坐标
DragonBones是Adobe支持的一个开源项目,用于制作和播放骨骼动画,官网地址是:http://dragonbones.effecthub.com/。DragonBones首先在Flash和S
引言:无论是对引擎研发团队或是游戏开发团队来说,优化的重要性都不言而喻。本次,来自乐府互娱的「乐府小学生」在实际项目开发中,通过修改引擎源码实现了更加深入的加载优化。
游戏运行中,所有图像文件(PNG、PVR)都被加载成GPU可以理解的OpenGL ES纹理,而精灵则对应着这些纹理图。Cocos2D内置一个纹理缓存管理器(CCTextureCache)来保存这些纹理图,这样可以极大加速创建新精灵,并充分利用已有的纹理图。不利的是,如果收到内存警报,Cocos2D会将当前未使用的纹理图(即引用计数为1的纹理图)全部从内存中清除。 首先我们了解一下和纹理相关的概念。 3.5.1 纹理和纹理图集 所有游戏角色都是以图像的形式存储在iPhone和iPad设备的内存中,通常使用的格式是PNG或JPEG。这些图像一旦被加载入内存,它们将以一种未压缩的纹理格式来存储。PNG是苹果官方推荐的用于iOS设备的图像存储格式。 1 . 纹理(Texture) 游戏角色的图像文件在使用前必须解压缩,并转换成iPhone和iPad的GPU可以理解的格式,同时要加载进RAM(随机存储器),这样的图像称为纹理。GPU原生支持一系列压缩格式,如PVRTC,其他格式必须存储为未压缩的图像数据。OpenGL ES可以使用这些数据在屏幕上绘制图像,所使用的PNG图像文件虽然在闪存中不占用多少空间,但是因为要解压缩,所以会在内存中占用更大的空间。 2 . 纹理图集(TextureAtlas) 对于iPhone和iPad设备而言,内存是非常宝贵的。而且iOS设备的GPU使用共享显存,而不是独立显存,换句话说,GPU将使用主系统的内存来存储纹理图和几何图形。旧版iOS设备的内存是128MB。 让这种内存限制更捉襟见肘的是,旧版iOS设备中,图像填充到纹理中时,其长度和宽度必须使用2的乘方。虽然iPhone 3GS和iPhone 4、iPad等设备支持非2的乘方大小的纹理图,但在Cocos2D中,为了兼容所有设备,仍然使用2的乘方来填充纹理。当然,也可以在ccConfig.h文件中修改这一点。 为了节省内存空间,并减少纹理中的浪费空间,将把这些纹理拼合成为一个大的纹理图,称为纹理图集。纹理图集只是一个大的纹理图而已,其中包含所有的图像。想象有一大张纸,然后把自己的照片都贴在上面,在需要时从纸上把照片剪下来。如果想把所有照片一次性给别人,只需给这一大张纸就行,而不需一张张地递过去。OpenGL ES处理图像也是类似,如果使用纹理图集或精灵表单(Spritesheet)把所有图像一次性交给OpenGL ES来处理,比把单个图像逐个交给OpenGL ES处理要高效。 下面大致介绍CCTexture2D、CCTextureCache和CCTextureAtlas这三个纹理类。 3.5.2 CCTexture2D、CCTextureCache和CCTextureAtlas 在Cocos2D中,使用CCTexture2D(纹理)从图片、文本或源数据中创建OpenGL 2D纹理,所创建的纹理对象使用2的乘方来填充。根据创建CCTexture2D对象的方法不同,纹理的真实图片大小可能和纹理大小略有差异。另外需要注意的是,纹理内容通常是上下颠倒的!关于该类的更多内容,可以参考CCTexture2D.h。 CCTextureCache(纹理缓存)作为单例使用,用于加载和管理纹理。一旦纹理加载完成,下次使用时可使用它返回之前加载的纹理,从而减少对GPU和CPU内存的占用。关于该类的更多内容,大家可以参考CCTextureCache.h。 CCTextureAtlas(纹理图集)用来实现纹理图集。纹理图文件可以是PVRTC、PNG或任何Texture2D所支持的文件类型。CCTextureAtlas(纹理图集)可以对纹理图集的矩形进行实时的更新、添加、删除或重排序。关于该类的更多内容,大家可以参考CCTextureAtlas.h。 在Cocos2D的开发中,CCTexture2D和CCTextureCache在多个方法中都有体现,以CCSprite类的初始化方法之一为例:
在Sprite中使用Shader做特殊的颜色处理比较简单,只需要把Shader程序绑定到Sprite上即可: sprite.shaderProgram = alphaTestShader; Cocos
我们解释win32在Visual Studio下一个libcurl图书馆开发环境的搭建。 Cocos2d-x发动机实际上与Win32在访问libcurl库。Cocos2d-x 3.x在libcurl库文件的位置<project文件夹>\cocos2d\external\curl\prebuilt\win32文件夹中,头文件在<project文件夹>\cocos2d\external\curl\include\win32文件夹中。 首先,我们须要配置头文件搜索路径,选中HelloCppproject,打开菜单“项目”→ “属性”弹出project属性对话框,如图所看到的,选择“配置属性”→“C++” →“常规”。在右边的“附加包括文件夹”中加入$(EngineRoot)external\curl\include\win32。注意配置目之间须要用分号分隔开。
(1)v3.0 发布说明:https://github.com/fusijie/Cocos2d-x3.0-Release-Note/blob/master/cocos2d-x_v3.0_release_notes.md
VS 2015,cocos2d 3.17,python 2.7.9(windows版本),安卓NDK,SDK,ant。
cocos2d的Shader也就是差不多直接跟GPU打交道了,跟Flash的Stage3D(AGAL)类似,不过没有AGAL这么恶心,不需要直接编写汇编语言。而Fragment Shader又跟Flash的pixelbender类似。 本文以cocos2d-js为例,但cocos2dx其他版本也是同理的,只是函数名略有不同而已。 当然还是得先复习或者学习一下GPU的原理,至少得知道vertex shader和fragment shader的作用和区别。 详细可以看看大神的说明: http://www.op
最近开始学习cocos2dx开发手机游戏,搞定了开发环境后,准备开始使用cocos2dx来写demo了。
关于Win7下配置Coco2d-x的Android开发环境,可以参考子龙山人的博客:Setting Up Cocos2d-x Android Development on Win7,这篇文章写得很详细,包括cocos2d-x 2.x版本、VS2010、JDK、Android、cygwin的下载、安装配置等等,该文章使用的版本是:Cocos2d-x 2.2.x。
Cocos Creator 升级的2.2之后,渲染流程发生了比较大的变化,主要是重构了一些类,属性的位置发生了变化。为了防止日后忘记,先记录下来。
近期倒腾下客户端,想搞个cocos2d的工具。 之前的那个集成到Win32工具下的调试辅助工具是直接用的windows api。拓展起来巨麻烦。而且Windows默认的字符集是宽字符集,和cocos2d与lua交互起来得到utf-8之间转来转去,十分麻烦。所以干脆花点时间一口气搞完这货。
腾讯企鹅辅导使用 Cocos Creator 实现课中互动练习。内嵌 Cocos 引擎的方式二次启动v8引擎会有报错,因为 v8 引擎在同一个进程中只能初始化一次。所以,在 Android 平台上,我们将 Cocos 引擎跑在单独的一个进程上,关闭 Cocos 只需销毁进程,不存在内存泄漏问题。问题出在 iOS 平台上,因为 iOS 无法使用多进程,Cocos 引擎只能跑在主进程,每次关闭习题,我们切到一个空场景(场景中没有节点),理想情况下,这样做可以将游戏资源的内存释放掉。但是现实很残酷,内存泄漏还是发
上一篇文章讲述了利用cocos2d-x构建精灵的动画效果,今天打算以此为引子,创建一个在移动时同时指挥角色到我手指触摸的移动地点,那么就开始吧。
调度器: 定时任务是通过调度器实现的。cocos2d-x推荐用调度器而不是其他方法实现定时任务。Node类都知道如何调度和取消调度事件。 有3种调度器: 默认调度器:schedulerUpdate() 自定义调度器:schedule(SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay) schedule(SEL_SCHEDULE selector, float delay) 单次调度器:
领取专属 10元无门槛券
手把手带您无忧上云