Cocos2dx
lpossible
这个作者很懒,什么都没留下…
展开
-
FlappyBird暂时完结
1.说明本来是打算将这个小游戏做的很完美才结束的,但是从基本写完到发出的两个月里有太多事,可能短时间内也不会再优化所以只能暂时就这样了。相较于前文增加了两个界面,主要是主游戏界面的逻辑和分数计算和显示等。全部代码及游戏资源的地址为:https://github.com/lpossible/FlappyBird2.游戏效果...原创 2021-02-25 10:48:51 · 126 阅读 · 0 评论 -
cocos2dx3.x实现FlappyBird(二)
1.引言 之前基本实现了界面部分的代码,本文为此游戏实现的第二个部分,主要内容是游戏的开始界面,也主要分为两个阶段,一点击屏幕;二开始游戏。游戏考虑到小鸟与柱子的碰撞以及自动下落的特性,引入了物理引擎,暂时只添加了小鸟的刚体。2.代码部分#ifndef GAME_SCENE_H_#define GAME_SCENE_H_#include"cocos2d.h"#include"GameManager.h"USING_NS_CC;class GameScene:public...原创 2020-10-28 21:32:57 · 228 阅读 · 0 评论 -
Cocos2dx3.x实现FlappyBird(主界面)
1.引言 今天在网上找到了FlappyBird的图片资源,虽然是整图,但我用pngSplit分成了独立子图,这样就可以使用了。所以会尝试尽量实现这个经典游戏,由于没有太集中的时间,所以只能一天写一点,所以本文只是该游戏的一部分。2.界面部分#ifndef MAIN_SCENE_H_#define MAIN_SCENE_H_#include"cocos2d.h"USING_NS_CC;class MainScene:public Layer{public: bool init(..原创 2020-10-21 21:44:43 · 183 阅读 · 0 评论 -
cocos2dx3.x中Opacity和visible
当我们需要场景中的某个精灵不可见时可能会面临两种选择,特别地,我们可能经常使用Fadein和Fadeout表示淡入淡出的特效,而当我调用Fadeout淡出精灵时,其实本质上是在对精灵的Opacity,即精灵的透明度进行操作。透明度操作并不会影响精灵的Visible即可见属性。 综合来讲,当精灵的Opacity属性设置为0时,在场景中是不可见的,但是其visible为true,也就是说该精灵仍然被渲染;而当我们将该精灵的visible设置为fasle时,尽管该精灵不可见,但其实其opacity为25...原创 2020-09-19 17:36:46 · 523 阅读 · 0 评论 -
cocos2dx3官方Demo摘星星小游戏
1.前言 本来是creator提供的资源,用的js实现(因为最近想要用creator),考虑到有段时间没有用cpp写了,所以就用cocos2dx实现看看(c++可真是没有好一点的官方demo),为2dx的新手们提供一个demo学习。2.游戏效果3.说明 相较于原版做了速度上的调整,使得更好控制小球了(虽然机制本来就是让我们不好控制,但是为了测试效果特意简化)还有就是没有设置失败重来机制,想要添加的同学可以自行添加。4.游戏资源代码https://github.com/lpos..原创 2020-09-15 17:16:48 · 403 阅读 · 0 评论 -
cocos2dx3.x的TableView使用
1.TableViewTableView直译为表视图(感觉则拗口),一般用于展示信息或者商城商品等。可以直接理解为一个信息展示的框。2.效果展示这里我做了一个3x3的TablelView表视图,展示了几张英雄的图片(其实就一个)。3.代码#ifndef TABLEVIEW_TEST_H_#define TABLEVIEW_TEST_H_#include"cocos2d.h"#include"cocos-ext.h"USING_NS_CC;USING_NS_CC_EX.原创 2020-09-06 16:23:00 · 593 阅读 · 0 评论 -
cocos2dx3.x的EditBox和ControlSlider使用
1.EditBoxEditBox即cocos2dx提供的输入框组件,创建需要一个九宫格精灵图片和Size作为初始化参数,我自己使用发现有一个小问题,就是当我点击组件进行输入时,不是使用图片背景,而是普通的组件背景,这样就显得有失美感。不知道是不是自己没设置对。2.ControlSlider即滑动条,一般用作音量调节等。3.代码实现说了这么多下面看下具体的代码实现:#ifndef _EDIT_TEST_H_#define _EDIT_TEST_H_#include"cocos2d原创 2020-09-05 19:57:26 · 318 阅读 · 0 评论 -
cocos2dx3.x加载瓦片地图TiledMap
1.瓦片地图就我个人理解所谓瓦片地图即由许多地图砖块拼成的整体的地图,这样的好处就是对不同地貌的地图块可以设置不同的属性,比如墙壁和河流显然是不能直接穿过的,而整体的地图显然要设置这样的属性就显得非常的麻烦。2.制作瓦片地图我是采用Tield,下面是一张960x640的瓦片地图3.加载瓦片地图cocos2dx提供了TMXTiledMap类加载瓦片地图,具体代码如下:const auto mapLayer = TMXTiledMap::create("GameMap.tmx");原创 2020-09-05 19:08:10 · 545 阅读 · 0 评论 -
cocos2dx3.x网格特效
//震动效果auto shaky = Shaky3D::create(6,Size(2,1),5,false);gridNode->runAction(shaky);//翻转效果auto flipx = FlipX3D::create(2);auto reflipx = flipx->reverse();auto dely = DelayTime::create(2);gridNode->runAction(Sequence::create(flipx,dely,refli.原创 2020-08-31 20:32:56 · 200 阅读 · 0 评论 -
cocos2dx3.x实现人物行走动画
1.效果2.实现原理 首先需要四个方向运动的动画(建议使用动画缓存提前加载),第二步需要根据人物移动的方向设置五个状态即上、下、左、右、站立,第三步添加键盘的监控事件,按下相应方向的方向键则播放对应的动画,当然这里需要检查这次按键是否与上次按键相同若相同则不更改动画,不同则需要更改动画。这里的所有动画设置为无限循环,即setLoop(-1)。大概的原理是这样,具体细节可讨论。...原创 2020-08-17 20:47:04 · 904 阅读 · 2 评论 -
cocos2dx3.x裁剪节点ClippingNode
1.效果2.说明官方好像有一个类似的子弹穿孔效果,因为没有相关资源,所以只做了根据点击位置进行裁剪的效果。需要一个裁剪节点ClippingNode和一个底板图片和多个样板图片。原理很简单:添加一个点击事件获取每次点击的位置,判断该位置是否在底板区域内,若在则在此位置添加一个模板精灵,这样就实现了动态裁剪。3.代码参考头文件:private: ClippingNode* clipNode; Node* stencilNode; bool onTouchBega原创 2020-08-13 11:21:45 · 220 阅读 · 0 评论 -
cocos2dx3.x物理引擎根据条件实现门开启
1.效果2.实现细节在创建时需要对人物的碰撞组设置为负数值(如-1),对其余刚体不设置碰撞组即为默认0,但对需要碰撞的刚体需要设置相同的碰撞测试掩码即contactTestBitMask()。然后再需要在碰撞之后不再产生碰撞的刚体的碰撞组设为-1,这样人物就不会再再与其碰撞。当然对于不再需要显示的刚体可以直接移出,或者对需要显示的刚体移出后在原处添加相应的非刚体精灵。...原创 2020-08-11 11:47:35 · 139 阅读 · 0 评论 -
cocos2dx3.x实现ProgressTimer显示资源加载进度
1.效果图2.代码参考 //create the progresser const auto progresserBgSprite = Sprite::create("0.png"); progresserBgSprite->setRotation(90); progresserBgSprite->setPosition(Vec2(size.width / 2, progresserBgSprite->getContentSize().width ...原创 2020-08-02 18:10:23 · 208 阅读 · 0 评论 -
cocos2dx3小游戏迷你飞机大作战
1 前言因为最近在学习cocos2dx引擎,所以就下了下了一个官方demo的资源,源代码好像是lua的,我也没看,因为我主要是选择用c++做。做了四五个场景吧,大部分都是加载界面,主菜单等。主要是对一个boss战场景做了一个小的demo(因为还有部分功能没实现,也不想实现了,方法已经会了)。2 boss战场景为boss添加了两种移动方式,基本随机的移动和技能式的移动,即会隐身到你面前来射击。攻击也主要分两种,普攻和散弹式的攻击,因为我的场景小,所以对原来的主机做了0.5倍缩小,所以叫迷你机大作战原创 2020-07-03 17:01:59 · 453 阅读 · 0 评论 -
cocos2dx3中的LoadingBar和ProgressTimer
1.LoadingBar需要引入头文件#include"ui/UILoadingBar.h"2.实现 //LoadingBar auto loadingbar = LoadingBar::create("bird.png"); //设置方向 loadingbar->setDirection(LoadingBar::Direction::LEFT); loadingbar->setPosition(Vec2(100,100)); loadingb...原创 2020-06-22 20:59:29 · 299 阅读 · 0 评论 -
cocos2dx3的TableView
1 引入相关的头文件和继承相关类引入:#include"cocos-ext.h"USING_NS_CC_EXT;继承:TableViewDataSource, TableViewDelegate2.必须重写实现的父类的纯虚函数 //每个相应位置的tabelviewcell TableViewCell* tableCellAtIndex(TableView* table, ssize_t idx)override; //tableviewcell总个数 ...原创 2020-06-22 20:53:18 · 202 阅读 · 0 评论 -
cocos2dx3的几种粒子效果
//下雨效果,雨滴会从设置的坐标向下移动 //auto rain= ParticleRain::create(); rain->setPosition(Vec2(size.width/2,size.height/2)); rain->setTexture(sprite->getTexture()); //烟花效果 auto Fireworks = ParticleFireworks::create(); Fireworks->...原创 2020-06-22 20:42:19 · 311 阅读 · 0 评论 -
cocos2dx对于Label的样式设置
Label有三个样式设置:分别还是shadow(阴影),outline(外边),glow(发光)。我的一点小建议是对于一些不需要点击的label可以单独设置shadow或glow,但是对于需要点击的label而言,将字设置为白色,然后使用outline样式作laebl的边框,效果很好,效果图如下:需要点击的label:不需要点击的label:...原创 2020-06-10 11:14:10 · 653 阅读 · 0 评论 -
cocos2dx3.17部分场景切换方式
场景切换在游戏中非常重要,以下是coco2dx3.17版的部分场景切换方式: Director::getInstance()->pushScene(TransitionFade::create(1.0f, optionScene));//渐隐进入,推荐 Director::getInstance()->pushScene(TransitionFadeTR::create(1.0f, optionScene));//碎片化,包括下面三种,只是消失的方向不同,不推荐 Dir...原创 2020-06-10 11:05:13 · 286 阅读 · 0 评论 -
cocos2dx3实现背景的移动渲染
一.使用原因 我们在做类似跑酷等需要背景不断向前移动的游戏时需要我们的背景不是固定的而是不断变化的,这个时候就需要对背景进行改变,当然这就需要你自己的背景图的长度大于屏幕长度,这里主要介绍两种方法。1.通过不断更改不同的背景图关键需要设置一个全局的偏量offetstep1在初始化函数中创建第一个背景图,如auto bgSprite = Sprite::create("bgSprite.png",Rect(0,offset,width,height);这里的width和hei...原创 2020-05-23 18:20:07 · 376 阅读 · 0 评论 -
cocos2dx3的官方demo游戏c++实现(Kill Bugs)
最近一直在研究cocos2dx引擎,由于之前没有接触过,所以算是从小白入门,在官网找了下demo,但是是lua实现,没学过。所以只能自己一步步的搞,现在基本有个原型了,其他就是细节的方面。1.效果图开始界面游戏界面死亡画面可以看到bug的死亡方向有点奇怪,这主要是因为官方给的资源里面bug的死亡图与存活图的头部朝向不一致,所以不太好根据死亡的位置去设置...原创 2020-03-16 13:38:02 · 444 阅读 · 0 评论