![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
cocos2dx
胖胖的战士
春有百花秋有月,夏有凉风冬有雪;
若无闲事挂心头,便是人间好时节。
展开
-
Cocos2dx游戏教程(二十):Cocos2dx 内存管理
内存管理是C/C++开发人员不可避免的问题,也是C/C++最有争议的问题,C/C++高手从中获得了更好的性能,更大的自由,C/C++菜鸟的收获则**《C从入门到放弃》**C/C++的灵魂拷问既然讲内存管理,我门首先介绍下C++的内存分配方式一、内存分配方式在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,在执行函数时,函数内局部变量的存储单元...原创 2020-04-28 10:45:35 · 460 阅读 · 0 评论 -
Cocos2dx游戏教程(十九):容器Value,Vector,Map
cocos2dx 3.x Value、Vector和Mapcocos2d::Value 这包括一个非常大的数字原生类型(int,float,double,bool,unsigned char,char* 和 std::string)外加std::vector, std::unordered_mapstd::string,Value 和 std::unordered_map<int,Val...原创 2020-04-28 10:02:02 · 444 阅读 · 0 评论 -
Cocos2dx游戏教程(十八):三种缓存,TextureCache,SpriteFrameCache,AnimationCache
Cocos引擎主要有三种缓存类:纹理缓存 : TextureCache精灵帧缓存 : SpriteFrameCache动画缓存 : AnimationCache原创 2020-04-15 17:08:08 · 804 阅读 · 0 评论 -
Cocos2dx游戏教程(十七):Sprite加载方式及内存优化
在前面的章节中,我们所涉及到的图片Sprite加载方式都是采用如下方式创建的auto sp = Sprite::create("sprite.png");sp->setPosition(Vec2::ZERO);this->addchild(sp);那么还有其他的加载方式没有?其实cocos2dx给我们提供了很多种的图片加载方式,下面来一一介绍下各个加载方式一、创建方式1...原创 2020-04-14 11:37:16 · 723 阅读 · 0 评论 -
Cocos2dx游戏教程(十六):绘制图形,DrawNode扇形以及环形
通过前面十五章的介绍,大家应该都能实现“见缝插针”的基本玩法了吧。但从头玩到尾都是一个模式,是不是有些单调呢?在这篇中将结合如何提升游戏难度和可玩性给大家介绍一下Cocos2dx 的DrawNode。提到DrawNode我们可以通过cocos2dx自带的例子,其中有很多已经实现了的方法。1、使用方法//创建DrawNode,然后后加入到Layer层中DrawNode* drawNode...原创 2020-04-06 16:24:10 · 1240 阅读 · 0 评论 -
Cocos2dx游戏教程(十五):“见缝插针”,愿你走出半生,归来仍是少年
从决定写这个教程到第一个有戏教程结束也经历了好长时间,有的地方可能写的不好,也请大家多多包涵。决定写这个教程也是对自己学习的一个总结吧,写教程的过程也是自己学的过程。一个小游戏所涉及到的知识点毕竟不是很全面,后续还是会继续写相关的内容介绍其他功能的使用,大家可以继续关注哦。开篇还记得夕阳下的奔跑,那是我逝去青春2020年开春,一场突如其来的疫情打乱了大家的生活,让很多人一下陷入十分被动的...原创 2020-03-24 09:16:47 · 447 阅读 · 1 评论 -
Cocos2dx游戏教程(十四):“见缝插针”,点击事件
Cocos的事件分为大概6种,分别为屏幕点击事件、键盘输入、鼠标点击、加速度事件、focus、自定义事件,对事件的操作施行的是监听机制,就是每种事件都有一个监听者类型。本节主要介绍屏幕/按键点击事件,其他不做详细说明,使用方式类似。一、屏幕点击事件我们首先来看屏幕点击事件的函数原型,屏幕点击事件分为单点触摸和多点触摸1、单点触摸 std::function<bool(Touc...原创 2020-03-20 15:11:46 · 424 阅读 · 0 评论 -
Cocos2dx游戏教程(十三):“见缝插针”,更新函数Update
在前两个教程中是不是都出现了update方法呢?那么这个方法的左右时什么呢?本节将会给大家介绍下cocos2dx update方法以及定时器的运用。相信大家在一看是创建空工程的时候应该就已经接触到了吧,运行工程后在屏幕的左下角有一个不停变换的数字,就在实时刷新哦,有一个方法pDirector->setDisplayStats(true);pDirector->setAnimati...原创 2020-03-20 14:40:38 · 1095 阅读 · 0 评论 -
Cocos2dx游戏教程(十二):“见缝插针”,游戏结算界面和音效
前面游戏主场景已经可以试玩了吧,但是是不是感觉很单调呢,如何进入下一关呢?要不要配置些音乐呢,在我的BGM中是不是有些无敌的感觉呢首先我们来看一下需要添加的文件我们可以看到,在这一节新增了GameFailedLayer,GameSuccessLayer,GameMusic,GameLevel四个类。我们都知道如何创建一个层,我们首先来看一下胜利失败的界面吧下面带领大家看看下如何实现界...原创 2020-03-19 22:25:00 · 733 阅读 · 0 评论 -
Cocos2dx游戏教程(十一):“见缝插针”,主场景实现
前面是节介绍了Cocos2dx的相关知识,也实现了相关场景,这一节设计的游戏的具体实现啦,我们看一下新增的类,主要有小球类ball,定义类define,全局方法类GlobalManage,主场景类GameScene这一节完成后大家就可以初步进行游戏啦,前介绍过的相关功能在本章节中都有体现哦,这章节主要就上代码吧。下面我们看下文件列表,可以看到红框中新增的文件,下面介绍文件的具体实现。大家将第...原创 2020-03-18 11:18:47 · 586 阅读 · 0 评论 -
Cocos2dx游戏教程(十):“见缝插针”,动作篇Action
一个成功的游戏如果只是一堆静态图片,那么和一幅画有什么区别呢?所以动静结合才是王道~~动作体系对于一款游戏的成功与否是有着非常重要的影响的。在这一节中将会带大家简单的认识动作体系。常见的动作我们在上节中发现场景的切换方式还可以采用runAction的方式使用//跳转场景this->runAction(Sequence::create( DelayTime::create(2.5f...原创 2020-03-18 11:20:22 · 591 阅读 · 0 评论 -
Cocos2dx游戏教程(九):“见缝插针”,场景切换效果介绍
他来了,他来了,他带着炫酷的效果来了,前面我们一直想知道场景怎么切换,效果是什么,在这一节中将会给大家介绍Cocos2dx场景切换的效果。一、游戏代码实现前面我们已经介绍了游戏场景的跳转,现在结合游戏逻辑具体介绍下1、将AppDelegate中的场景跳转还原到WelcomeSceneauto scene = WelcomeScene::createScene();2、在welcomeS...原创 2020-03-17 21:37:29 · 375 阅读 · 11 评论 -
Cocos2dx游戏教程(八):“见缝插针”,UserDefault数据存储与读取
前面已经介绍了前两个场景使用,中间涉及到了几个核心类,菜单,label标签等,同样我们也实现了两个场景的切换和关卡数字的显示。那么我们怎么记录游戏相关的信息呢?下面我们将走进cocos2dx的数据存储,UserDefault。一、UserDefault介绍cocos2dx提供了一个数据存储类UserDefault,可以作为一个轻量级的数据库来使用。它支持五种基本数据bool、int、floa...原创 2020-03-17 17:34:43 · 553 阅读 · 0 评论 -
Cocos2dx游戏教程(七):“见缝插针”,Label标签的使用
在创建第二场景中我们不仅看到了Menu的创建,其中是不是还有如下的创建方式啊?//关卡数字 auto levelTTF = Label::createWithCharMap("fonts/label/label_ball.png", 14, 20, '0'); levelTTF->setString(StringUtils::format("%d", 1)); levelTTF-&g...原创 2020-03-17 17:34:33 · 519 阅读 · 0 评论 -
Cocos2dx游戏教程(六):“见缝插针”,菜单Menu与C++11新特性
上一节我们已经实现了第二个场景界面,最后按下按钮发现没有反应是不是,这一节将会给大家介绍下Cocos2dx另一个重要的对象,菜单Menu。一、Menu介绍提到Menu,不得不提到MenuItem,MenuItem继承自Node,所以它的子类菜单项都可以使用Node的相关操作。MenuItem是所有菜单项的父类,建议不要直接使用该类,因为它并不包含具体显示的功能。作为其它菜单项的父类,主要提...原创 2020-03-17 17:34:13 · 730 阅读 · 0 评论 -
Cocos2dx游戏教程(五):“见缝插针”,第二个场景的建立
上一篇中我们建立了第一个场景,下面我们着手建立第二个场景哦,第二个场景比较复杂了,我们先看一下实现的效果吧,在本节中将会带大家一起实现第二场景。场景的将会涉及到文件标签,菜单按钮等操作,下两节将会分别介绍文字标签和菜单的实现,现在可以先带着问题做下去哦。看下对比图,是不是很有感觉了,好像当时上数学课的样子~~开始准备今天的场景吧。一、准备场景素材场景中存在的元素有哪些呢?对,有背...原创 2020-03-17 17:33:55 · 442 阅读 · 4 评论 -
Cocos2dx游戏教程(四):“见缝插针”,第一个场景的建立
从这一篇开始就正是进入游戏具体实现啦,前面都了解了核心类的基本操作,那么现在我们开始具体实现吧一、见缝插针的玩法简单的说,玩家有一些小球,将这些小球弹射到大球上且不能碰到大球上的小球哦,前面介绍的“口红机”就是这样的玩法,只不过我们把小球换成了口红而已。看看广告词,说的还是很清楚的么又是一款简单而不简略的游戏,游戏画面简略但玩法新颖。玩家手中有一定数量的针头,必须把所有的针头都插进旋转的球...原创 2020-03-17 17:33:46 · 612 阅读 · 0 评论 -
Cocos2dx游戏教程(三):“见缝插针”,Cocos2dx核心类介绍
前面给大家介绍了图片精灵的加载和相关核心类的描述,聪明的小伙伴们应该都已经了解了相关的使用方式吧,这次呢就详细的介绍下几个核心类的作用,使用方式和框架结构,巩固一下。序、框架结构图我们看一下将要实现的游戏的示意图,能看出哪些是场景,哪些是精灵么,还有文字和菜单按钮哦(后面介绍)如下图所示,上章的Director,Node,Scene,Layer,Sprite结构图如下。Node类是绝大部...原创 2020-03-17 17:33:26 · 526 阅读 · 0 评论 -
Cocos2dx游戏教程(二):“见缝插针”,从添加一幅图开始
前面的教程中我们已经完美的运行起了游戏工程,Cocos2dx是C/C++编写的呢,一个面向对象编程的游戏引擎哦,是不是有些心动呢,那么一起共勉吧!错了,下面才是一、认识工程目录结构前面的教程已经认识了工程的目录结构,默认的目录有两个类AppDelegate.cpp //程序入口文件HelloWorldScene.cpp //默认场景文件1.AppDelegate类我们可以仔细看...原创 2020-03-17 17:33:14 · 902 阅读 · 0 评论 -
Cocos2dx游戏教程(一):“见缝插针”,游戏项目的搭建
前篇文章展示了“见缝插针”的游戏截图,下面带领大家一步一步完成自己的小游戏吧,前提是cocos2dx环境已经搭好了哦,官网有搭建的详细教程,这里不多说啦cocos2dx 英文官网:http://www.cocos2d-x.org/cocos2dx 中文社区:http://www.cocos.com/先说说自己,其实最开始根本没想到会走游戏这条路。曾经总是认为自己是小说里面的主角,最后才发现自...原创 2020-03-17 17:32:53 · 1094 阅读 · 0 评论 -
Cocos2dx游戏教程(序):火爆抖音的网红口红机真能扎到口红吗?
一、口红机是什么最近口红机简直刷爆抖音,是不是看着都觉得手痒啦,它的玩法也很简单,扫码支付几块钱,然后就会获得一次闯三关的机会,用口红扎水果,三关如果口红全部扎上去了,就可以获得商家精心准备的各种大牌口红,那么小伙伴们是不是都去试了一式呢?到底能不能扎到口红呢?反正自己没试过~~~![在这里插入图片描述](https://img-blog.csdnimg.cn/2020030723465794...原创 2020-03-17 17:32:41 · 832 阅读 · 2 评论 -
Cocos2dx杂记:推小球,box2d与TiledMap的使用
前面介绍了box2d和tiledmap 下面以一个物理游戏Demo为例来介绍下box2d与TiledMap基本使用方式1、Demo运行截图(Demo素材收集与网络,如有侵权请告知删除)2、游戏功能介绍点击蓝色的物体变成小球把红色的球推下去,并且吃掉场景中的星星,右面三角形的是跷跷板,没什么作用,大家当做不存在就好。。。3、目录结构 Constants.h 中定义了像素和米数的比 GL原创 2017-02-22 13:12:22 · 1181 阅读 · 0 评论 -
Cocos2dx杂记:box2d初探
1、 所需头文件#include "Box2D/Box2D.h" 2、创建一个物理世界每个box2d游戏都有一个物理世界,下面创建一个与场景一样大小的物理场景。在该物理场景中box2d绑定的物体将满足基本物理属性bool HelloWorld::initPhysics() { Size s = Director::getInstance()->getVisibleSize(); //重原创 2017-02-22 13:34:10 · 494 阅读 · 0 评论 -
Cocos2dx杂记:cocos2dx解析csv格式文件
游戏存储或者配置经常使用到逗号分隔文件,如何实现解析呢?下面直接上代码1、头文件CSVParser.h#pragma once#include "cocos2d.h"#include <vector>#include <string>using namespace std;USING_NS_CC;namespace CSVParser { // 每一行的记录 class Ro转载 2017-02-17 16:59:28 · 875 阅读 · 0 评论 -
Cocos2dx杂记:如何显示中文
cocos2dx编译时经常会遇到中文乱码的问题,在cocos2dx下可以通过读取plist文件实现 1、plist文件strings.plist<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyL原创 2017-02-17 14:02:52 · 533 阅读 · 0 评论 -
Cocos2dx杂记:Tiledmap读取
瓦块地图编辑器Tiled在游戏制作中是比较通用的了,cocos2dx支持载入TiledMap,以cocos2d 3.x版本为例1、加载瓦块地图: //读取 auto m_pTileMap = TMXTiledMap::create("test.tmx"); m_pTileMap->setPosition(Vec2::ZERO); this->addChild(m_p原创 2017-02-17 11:31:25 · 2808 阅读 · 0 评论 -
Cocos2dx杂记:cocos2dx 3.14.1 Spine 处理与 cocos2dx3.10 Spine的区别
一、在游戏中经常用到Spine动画,在cocos2dx 3.10之前创建Spine动画可以采用1、第一种方式auto spine = SkeletonAnimation::createWithFile("spine.json", "spine.atlas");但是当json文件过大时每次解析会消耗大量时间导致卡顿2、第二种方式//获得数据spAtlas* _atlas = spAtlas_crea原创 2017-03-30 18:22:36 · 8342 阅读 · 2 评论 -
Cocos2dx杂记:如何显示中文(2)
在做跨平台开发的过程中,通常会遇到中文乱码问题。cocos2dx vs工程,C++源文件默认的就是ANSI编码,在编译到Android上运行的时候会出现乱码。在前面介绍过通过Plist文件读取的方式,可以实现中文的显示。这里介绍通过代码的形式实现该功能。一、源程序 Tools.h#include <string>using namespace std;class Tools {public:原创 2017-05-26 14:43:03 · 328 阅读 · 0 评论 -
Cocos2dx杂记:cocos2dx 文本布局UI
在开发游戏的过程中,UI布局是游戏必不可少的一部分。Cocos2dx游戏一般可以使用Cocostudio进行布局。简单的布局有时候可以采用文本方式。下面简单介绍下文本布局。 所谓的文本布局方式就是一个简单的Json文件,通过解析Json文件来进行调用。简单页面可以很快的实现,可以让代码和UI布局分离。一、数据格式解析的数据简单的分为:精灵“Sprite”,文本“Label”,菜单“Menu”等,可原创 2017-05-19 16:19:22 · 476 阅读 · 0 评论 -
Cocos2dx杂记:cocos 编译命令拷贝so文件
cocos compile命令在编译的过程中第三方so文件会丢失掉,如何解决这个问题呢1、我们在jni文件夹下面添加一个文件夹prebulid,如图所示 把第三方的so文件放入改文件夹下2、在proj.android下新建一个python文件,命名为custom_script.py 脚本内容:import osimport os.pathimport cocosfrom shuti原创 2017-10-16 11:28:25 · 2542 阅读 · 0 评论 -
Cocos2dx杂记:Cocos2d 3.x版本 MeshSprite Cocos的网格变换(非原创)
原文连接:Cocos2d-x MeshSprite类实现扭曲效果Sprite 默认只有四个点,即quad,不能做一些图片扭曲的效果。MeshSprite类,MeshSprite可以自动根据参数row,column创建Texture的网格点,并且你可以获取对这些点动态设置坐标点。1、MeshSprite源码地址: https://github.com/2youyouo2/cocos2d-x/blob转载 2017-10-25 17:47:40 · 1609 阅读 · 5 评论 -
Cocos2dx杂记:PhysicsEditor 对应cocos2dx 3.x的接口封装
PhysicsEditor是一款box2d形状生成器,只需点点鼠标即可生成plist图形文件,还有很有特色的魔术棒工具,可自动完成标记定点和分隔polygon的过程。可以直接在cocos2dx中使用。 如图所示:可以对边缘进行不规则图形的选取官方提供了Cocos2dx的第三方库,但是采用的是2.x的接口,3.x下面依然是可以使用的,不过在这添加了采用3.x接口封装的方法void GB2ShapeC原创 2017-10-25 18:20:02 · 514 阅读 · 0 评论 -
C#:Plist/Altas/Libgdx格式图片拆分工具合集
之前上传过plist,altas拆分工具,后来被其他用户上传了,现在做了个合集工具工具界面,主要包括Texture切图,spine切图,图标生成功能,拆分图片(九宫格切图),图像的简单处理数据格式详情可以参考Atlas:https://blog.csdn.net/slaron/article/details/60962577Plist:https://blog.csdn.net/slaro...原创 2019-06-12 19:54:34 · 1858 阅读 · 2 评论 -
Cocos2dx杂记:仿Android提示Toast
在游戏制作的过程中经常会使用到提示,常见的方法是通过jni调用android下的方法实现toast提示 通过cocos2dx的LayerColor可以实现如上功能1、头文件Toast.h#pragma once#include "cocos2d.h"USING_NS_CC;class Toast : public Layer {public: Toast(); ~Toast()原创 2017-02-17 12:40:42 · 1490 阅读 · 0 评论