cocos2d

魔改和上线你的合成大西瓜,超详细图文教程!源码分析!

╄→尐↘猪︶ㄣ 提交于 2021-02-02 12:06:01
本文是从 0 到 1 的教程,让小白也能够魔改和上线发布属于你的合成大西瓜! 最近,一款名为『 合成大西瓜 』的游戏突然火了!看来真的是大家吃瓜吃太多了,这个小游戏深抓人心! 当然,游戏本身非常有趣,玩法简单,就是俄罗斯方块、2048、水果忍者的结合。控制水果的下落,相同的两个水果会合成更大的水果,然后消除,并发出溅射效果。 玩了一会后,看到朋友圈的晒图,我也安耐不住了,开始思考怎么拿高分。对于程序员来说,最简单的方式就是直接改造程序。 正好在知乎上偶然刷到了一个相关问题,“ 小游戏《合成大西瓜》源代码有吗?” 那就开工吧! 首先去 GitHub 搜索源代码,发现源码已经被曝光的稀巴烂了,然后就下载了一份源代码到本地,摩拳擦掌。 浏览源码后,发现只是魔改一些基础功能的话,不要太简单! 这是我魔改的自定义加分版,轻轻松松千万分!可在线玩:https://dadaxigua.liyupi.com 大西瓜魔改版 下面一起来打造自己的魔改合成大西瓜吧! 主要分为如下几个步骤: 下载源代码及本地运行 动手魔改及原理分析 发布上线 1. 下载源码,本地运行 下载源码 首先从 GitHub 上下载源代码(地址在文末): 下载源代码 下载代码后,我们得到这样的目录结构: 目录结构 可以看到整个代码目录并不复杂,是基于 cocos2d 游戏引擎开发,我们只需要了解几个重要文件: index.html

游戏开发中的利器TexturePacker实现游戏贴图打包

人盡茶涼 提交于 2020-10-17 23:34:13
著名的图片打包软件 TexturePacker ,只要是做游戏应用开发,几乎都会或多或少的用到它。 使用 TexturePacker 更多的性能优势在于手游上,因为无论 Android 或者 ios 系统使用的是 OpenGL ES 来渲染,所以我们要针对 OpenGL ES 来进行优化。 第一点:内存方面 , OpenGL ES 纹理要求宽和高都是 2 的 n 次幂的倍数。就是说,若start.png这张图片本身是480X320的话,那它在载入内存后其实是一张512X512的纹理。那它具体占用了多少内存呢?默认情况下,当在Cocos2D里加载一张图片时,对于每一个像素点使用4个字节(1个byte即8bit)来表示——分别代表red\green\blue\alpha透明通道,简称RGBA8888。这样的话,这张start.png图片在使用默认像素格式下所占内存为:512*512*4=1MB。所以我们可以考虑将小的图片拼成到大的图片,然后一起加载。 第二点:渲染速度方面 , OpenGL ES 要求尽量减少渲染时切换纹理和glDrawArray的呼叫,所以将图片拼成大图片,这样就减少了纹理的切换。所以使用 TexturePacker 是很有必要的。 TexturePacker所支持的游戏引擎更是相当广泛,主要有: Cocos2d-iPhone Corona(TM) SDK -

Unity引擎UI模块知识Tree

假如想象 提交于 2020-08-12 10:50:28
现在主流的UI解决方案是UGUI和NGUI,近年来更是以UGUI为主,本期结合UWA学堂以及Blog的相关内容整理了《Unity引擎UI模块知识Tree》,主要介绍了UGUI的优化、框架完善及解决方案,也涉及到NGUI和FairyGUI的内容,最后是UWA的工具篇,开发者们可以根据报告查看问题,优化项目。 前期我们也整理更新过 《Unity引擎渲染模块知识Tree》 和 《Unity引擎资源管理模块知识Tree》 ,深受开发者们的喜爱,欢迎大家按照自己的兴趣和需要参考取阅。 UGUI 框架 《UGUI深度研究之源码鉴赏》 从UI的代码底层讲起,通过理解底层代码的原理来认知上层的有效优化方法。这里会从源码中深入分析UI网格重建的实现原理,并完成了提取触发UI重建的UI元素的代码实现,可以更方便、更准确地定位引起UI性能问题的UI元素,从而有针对性地做优化。 《Unity手游UI框架一站式解决方案》 该课程内容非常详实、性价比极高。初级开发者可以拥有一套完整的实战UI框架源码,快速进入实战;中级及以上者可以深入理解框架的形成过程并在此基础上进行修改,迭代出属于自己的框架;语言中并没有华丽的辞藻,技术则完全以实用、稳健为基础。 《UI框架搭建:控件定制篇》 《UI框架搭建:消息重构篇》 《UI框架搭建:应用技巧篇》 整套框架分为三节课程来讲解:第一节课程主要讲解控件侧的框架搭建

IOS应用内嵌cocos2dx游戏项目

左心房为你撑大大i 提交于 2020-08-09 13:47:41
1.创建Cocos2d-x项目 相比于Android来说cocos2dx的iPhone环境基本不用配置,直接创建用xcode打开就可以运行。 到 Cocos2d-x官方网站 下载最新版本引擎。 将刚才下载的压缩包解压到你指定的文件夹里(我的是 cocos2dx3.16 )。 进入到目录 cocos2d-x-3.16/tools/cocos2d-console/bin/cocos.py 打开终端运行 cocos.py 脚本创建文件 ./cocos.py new HelloWorldDemo -p com.coco2dx.TestCocos -l cpp -d ~/Desktop 或者 python cocos.py new HelloWorldDemo -p com.coco2dx.TestCocos -l cpp -d ~/Desktop 参数说明: TestCocos为项目名称 -p 后面接包名 -l 后面接开发语言类型,有cpp, lua, js三种类型 -d 后面接项目存放的目录 2.新建一个IOS项目,名字自取(我的是TestIOSCocos),把相应cocos2dx工程cocos2d-x和游戏资源(我创建的是lua项目,游戏资源包括res、src、config.json、Classes)拷贝到此IOS项目下,在IOS项目下创建Resource并将刚才拷贝的资源res

IOS应用内嵌cocos2dx游戏项目

╄→尐↘猪︶ㄣ 提交于 2020-08-09 07:52:26
1.创建Cocos2d-x项目 相比于Android来说cocos2dx的iPhone环境基本不用配置,直接创建用xcode打开就可以运行。 到 Cocos2d-x官方网站 下载最新版本引擎。 将刚才下载的压缩包解压到你指定的文件夹里(我的是 cocos2dx3.16 )。 进入到目录 cocos2d-x-3.16/tools/cocos2d-console/bin/cocos.py 打开终端运行 cocos.py 脚本创建文件 ./cocos.py new HelloWorldDemo -p com.coco2dx.TestCocos -l cpp -d ~/Desktop 或者 python cocos.py new HelloWorldDemo -p com.coco2dx.TestCocos -l cpp -d ~/Desktop 参数说明: TestCocos为项目名称 -p 后面接包名 -l 后面接开发语言类型,有cpp, lua, js三种类型 -d 后面接项目存放的目录 2.新建一个IOS项目,名字自取(我的是TestIOSCocos),把相应cocos2dx工程cocos2d-x和游戏资源(我创建的是lua项目,游戏资源包括res、src、config.json、Classes)拷贝到此IOS项目下,在IOS项目下创建Resource并将刚才拷贝的资源res

Unity引擎UI模块知识Tree

霸气de小男生 提交于 2020-08-06 04:04:25
现在主流的UI解决方案是UGUI和NGUI,近年来更是以UGUI为主,本期结合UWA学堂以及Blog的相关内容整理了《Unity引擎UI模块知识Tree》,主要介绍了UGUI的优化、框架完善及解决方案,也涉及到NGUI和FairyGUI的内容,最后是UWA的工具篇,开发者们可以根据报告查看问题,优化项目。 前期我们也整理更新过 《Unity引擎渲染模块知识Tree》 和 《Unity引擎资源管理模块知识Tree》 ,深受开发者们的喜爱,欢迎大家按照自己的兴趣和需要参考取阅。 UGUI 框架 《UGUI深度研究之源码鉴赏》 从UI的代码底层讲起,通过理解底层代码的原理来认知上层的有效优化方法。这里会从源码中深入分析UI网格重建的实现原理,并完成了提取触发UI重建的UI元素的代码实现,可以更方便、更准确地定位引起UI性能问题的UI元素,从而有针对性地做优化。 《Unity手游UI框架一站式解决方案》 该课程内容非常详实、性价比极高。初级开发者可以拥有一套完整的实战UI框架源码,快速进入实战;中级及以上者可以深入理解框架的形成过程并在此基础上进行修改,迭代出属于自己的框架;语言中并没有华丽的辞藻,技术则完全以实用、稳健为基础。 《UI框架搭建:控件定制篇》 《UI框架搭建:消息重构篇》 《UI框架搭建:应用技巧篇》 整套框架分为三节课程来讲解:第一节课程主要讲解控件侧的框架搭建

对于游戏开发,这些知识一定要了解

霸气de小男生 提交于 2020-04-27 19:26:56
  我们的程序员可以为世界带来什么?   有些程序员做出了 淘宝/Amazon,为世界带来了电子商务。   有些程序员做出了 微信/Twitter,为世界带来了社交平台。   程序员可以制作的一些东西,虽然它们不能应用于我们的食物,衣服和住房,但它们可以带给我们快乐和回忆。这种东西叫做游戏,也叫做第九艺术。   不知看到本文的读者当中,有多少人是正在从事 游戏开发 的,有多少人有尝试游戏开发的意愿。对于 游戏开发 领域,肖格雷只是一个门外汉,但幸运的是程序员非常擅长学习。肖格雷认为,只要他愿意用自己的思想,他就能进入游戏开发的大门。   什么是游戏引擎   任何领域的软件开发都有一些成熟的框架和类库。例如,对于Web开发,我们经常使用SSM框架;对于机器学习,我们经常使用TensorFlow框架。   对于游戏开发,还有一些工件可以帮助我们提高开发效率,并制作更酷,更强大的项目。以下是一些主流游戏开发引擎。   虚幻4   虚幻4引擎,英文 Unreal Engine 4,是一款功能强大的3D游戏引擎。主要支持C语言开发,渲染3D图形逼真高效,非常适合开发主机游戏,PC游戏,VR游戏。该引擎目前开放给外界免费使用,因此吸引了越来越多的开发者。   用虚幻的4引擎开发的杰作是什么?最著名的游戏就是《绝地求生》(俗称吃鸡)。   Unity3D   Unity3D引擎简称U3D

cocos2d+lua实现帧动画播放

守給你的承諾、 提交于 2020-04-06 19:46:00
使用Cocos2d播放帧动画的方法有两种: 先来介绍一下流程: 1.得到动画的每一帧的数组FrameArray 2.将帧动画数组包装成Animation对象 3.将Animation对象转化为可以播放的Action对象 4.使用Sprite来播放Action 第一种: 使用TexturePicture来压缩图,用CCSpriteFrameCache来加载 --建立一个Cache来加载解压出的图片 local frameCache = CCSpriteFrameCache:create() frameCache:addSpriteFrameWithFile("abc.plist","abc.png") local frameArr = CCArray:createWithCapacity(图片总数) --建立一个数组来粗放得到的帧 for j=0,图片总数减一 do local framePath = string.format("abc.%5dpng",j) --将每个帧图片转换成帧Frame local frame = frameCache:spriteFrameByName(framePath) frameArr.addObject(frame) end --array 中已经有了Frame了,下来需要将其生成为Animation对象 local animation =

使用SpriteBuilder制作Cocos2D游戏完全中文教程(四)

六月ゝ 毕业季﹏ 提交于 2020-03-22 21:24:40
3 月,跳不动了?>>> 使用 SpriteBuilder 添加菜单 ( Add Menus Using SpriteBuilder ) 现在,我们要设置开始菜单。这开始菜单会引导我们进入游戏场景。 从 MainScene.ccb 删除一切 我们将使用 MainScene 作为我们的主菜单,从项目模板中删除的默认生成的标签和背景图像。 设置背景图像 美术提供菜单背景的设计工作在 3.5 英寸( <= iPhone 4 )和 4 英寸( > = iPhone 5 )的屏幕。 拖动 menubackground.png 到屏幕上。通过保持默认锚点( 0.5 , 0.5 )和位置将背景图片设置到屏幕中央,并设置相对父容器位置的 x 和 y 为父容器的 50 %: 定位 Sprite 的这种方式确保其始终居中 - 独立的屏幕尺寸。 添加播放按钮 打开 节点库视图( Node library View ) 在左窗格中拖动一个 按钮 到舞台( Stage )。现在你需要修改选择的按钮的一些设置。 在右侧面板的底部,你可以选择不同的按钮状态下的图片。对于正常状态和高亮状态都选择 button.png 图片。不要担心,如果该按钮现在看起来失真,您需要更改其他设置: 首选大小 应为( 167.0 , 152.0 )较好的尺寸需要的图像大小的 50 %为视网膜图像。最后一步,删除按钮的 “ 标题

【Cocos2d-x-基础概念】Animations

我是研究僧i 提交于 2020-02-29 16:27:49
#Cocos2d-x-基本概念-Animations ###帧动画 你可以通过一系列的图片来创建一个童话,如下 CCAnimation *animation = CCAnimation:create(); //load image file from local system to CCSpriteFrame, then add into CCAnimation for (int i = 0; i < 15; ++i) { char szImageFileName[128] = {0}; sprintf(szImageFileName, "Images/grossini_dance_%02d.png", i); animation->addSpriteFrameWithFilename(szImageFileName); } animation->setDelayPerUnit(2.8f / 14.0f);// This animation contains 14 frames, will continuous 2.8 seconds. animation->setRestoreOriginalFrame(true);// Return to the 1st frame after the 14th frame is played. CCAnimate *action =