关闭

常用技巧(一):利用位运算去掉贴图空白部分

一、问题描述 在游戏开发的时候,特别是在2D游戏开发,我们经常会遇到这样一个问题,我们选用的是一张jpg/bmp图片,它不像png那样拥有透明的像素点。所以当我们把图片放到我们的屏幕的时候可能会出现如下问题: 我们的图片,我想把他贴到我们的背景上面 预期效果: 实际效果: 二、解决办法 1、首先我们先对图片素材做一点点的修改 我们需要两张图片:一张为原...
阅读(910) 评论(1)

Cocos2dx3.2编写常用UI组件(五)带滚动的表格GridView

前言: 按照惯例先发上效果图: 正文: 先来吐槽几句,一说起滚动效果大家可能会联想到Cocos2dx给我们提供的ScrollView。我一开始也是打算用ScrollView来实现的,但是用着用着发现出现了各种莫名其妙的错误,所以只好自己重新写一个Node,通过onTouchBegan和onTouhMoved两个事件回调来实现滚动的效果。 GridView使用说明: 1.利用Gri...
阅读(1524) 评论(2)

Cocos2dx3.2编写常用UI组件(四)发光的标题BlinkTitile

前言: 如果看了上一节我推荐的blog,并且掌握了遮罩层的运用,那么本节介绍的发光标题就非常的简单了。 没有看也没关系,现在我来具体讲一下ClippingNode 正文: 关于遮罩ClippingNode,我们先来介绍两个名词:模板和底板 不知道大家以前又没有玩过橡皮泥,通常有一下空心的模具,只要把花型的模具按在红色的橡皮泥上面,就可以裁剪出一个花型的红色橡皮泥 这里花型模...
阅读(1244) 评论(0)

Cocos2dx3.2编写常用UI组件(三)收集器效果Collector

前言: 在游戏中,我们经常可以看到,获取分数后,分数会自动升到对应的分数栏上面。今天我们就来实现这种效果 正文: 这种效果实现起来其实非常的简单,只需要对生成出来的分数(通常是一个Sprite或Node)添加动作,让其能够飘到目标位置,然后消失就可以了。这里我提供一个Collector类来供大家使用。方便大家的操作。 Collector的使用说明:①通过Collector::create(...
阅读(1062) 评论(0)

Cocos2dx3.2编写常用UI组件(二)滚动计数器NumberScroller

前言: 废话不多说,先看最终效果图 正文: 1、使用说明: ①引入头文件 “NumberScroller.h" ②用NumberScroller::create(int length,int fontSize) 函数来创建NumberScroller对象 ③利用setNumber(int number)函数来设置计时器里面的值(这里只实现了向后滚动,即设置的值要大于等于当前值)...
阅读(1575) 评论(2)

Cocos2dx3.2编写常用UI组件(一)新手指导框GuideLayer

前言: 在很多的游戏里(特别是RPG游戏),一开始都会有一个关于操作的介绍,几乎都像下图那样子的。 除了系统希望你所点击的区域外,其余区域都会变暗,而且你点暗的区域是不会有任何反应的。 正文: 下面我们来讲怎么实现的: 一、实现思路: 我们可以用Cocos2dx提供给我们的LayerColor,在你想要被点击的区域周围添加4块LayerColor,如下图所示 ...
阅读(1178) 评论(1)

cocos2dx3.2开发 RPG《Flighting》(十五)最后的总结说明,以及源码分享

一、前言 这次的Flighting系列教程一口气写了2天,到这里就要结束了。接下来我说明补充一下一些前面没有提到,但是我觉得有必要讲一下的。 二、正文 1.怪物的出场 前面已经说了一个个的XXXMessageUtil,其实StateMessageUtil是比较特别的。首先我们先看看StateMessage的Excel表(关卡) 前面的字段大家可以参透参透,我主要讲一讲mons...
阅读(1198) 评论(0)

cocos2dx3.2开发 RPG《Flighting》(十四)暂停按钮

一、前言 整个教程快接近尾声了。还有一个暂停功能需要添加 二、正文 首先,我们要在右上方添加一个按钮 bool FlightLayer::init(){ MenuItemImage* pauseBtnItem = MenuItemImage::create("UI/pauseBtn.png","UI/pauseBtn.png",[=](Ref* pSender){Director::...
阅读(701) 评论(0)

cocos2dx3.2开发 RPG《Flighting》(十三)让英雄炫酷点—技能以及技能效果

一、前言 怪物已经变聪明了,我们的英雄不变得厉害点怎么行呢 二、正文 其实技能这个问题纠结了我好久,因为每个角色的技能都不一样(参考英雄联盟),我当初也想把技能做得多姿多彩的。所以我就想在代码中嵌入lua,可惜小弟不才,虽然最后弄明白了怎么搞,但是发现已经太迟了(应为要把之前的自定义的类都转成lua接口)。所以采用了一种很笨很笨的方法。...
阅读(1001) 评论(0)

cocos2dx3.2开发 RPG《Flighting》(十二)让怪物智能点——怪物仇恨值

现在我才开始看怪物的头文件 class Monster : public Role{ public: Monster(); static Monster* create(const std::string& name,FlightLayer* layer); void initMonster(); virtual Point getHpSliderPos(); void add...
阅读(800) 评论(0)

cocos2dx3.2开发 RPG《Flighting》(十一)角色分类——英雄与怪物

一、前言 先补充一下,英雄的死亡 英雄的死亡,我们要在FlightLayer对m_rolesArray进行清除操作 void FlightLayer::cleanNullPtrInArray(){ auto it = m_rolesArray.begin(); while(it != m_rolesArray.end()){ if((**it)->getRoleStat() == R...
阅读(756) 评论(0)

cocos2dx3.2开发 RPG《Flighting》(十)为角色加上血量条

一、前言 先说明一下,Role类其实是有很多属性的 protected: /*与战斗相关的数据*/ int m_id; //id Role* m_attackTarget; Role** m_attackTargetPtr;//攻击目标 Point m_desPoint;//目标位置 ROLE_STAT en_stat; //当前状态 FlightLayer* m_...
阅读(615) 评论(0)

cocos2dx3.2开发 RPG《Flighting》(九)必不可少的子弹

一、前言 上一节我们讲完了攻击,其实也只是攻击者一方一厢情愿地播放自己的攻击动画罢了,被攻击的那一方根本不知道发生了什么,攻击者和被攻击者还没有联系起来。 所以,我们就引入了子弹这个东东。 二、正文 一开始我在开发的时候想到用物理引擎,后来想了想还是算了,一是难控制,二是可能会遇到一些问题(例如两个人之间可能会发生碰撞。。) 所以还是将错就错,直接用update函数解决问题吧。...
阅读(861) 评论(0)

cocos2dx3.2开发 RPG《Flighting》(八)开始战斗

一、前言 前面我们已经基本学会了怎么让角色走起路来而且也做了很多的优化。下面是时候开始战斗了。不过还是不要急,我们先暂时不引入英雄和怪物这两个类(毕竟只要是Role就可以打架,哪怕是英雄打英雄) 二、正文 先大致说一下整个思路: 1.选择角色并且可以拉出一条导航线出来(之前已经做了) 2.判断导航线的终点,如果终点刚好是在一个Role的身上,那么..嘻嘻就打他了。 3.角色移动...
阅读(774) 评论(0)

cocos2dx3.2开发 RPG《Flighting》(七)回到战斗场景,更新角色的叠放次序

一、前言 至此,我们的战斗场景关于角色移动已经讲得七七八八了。不过还是有一些问题需要注意注意。 二、正文 在第五节里面我们讲了FlightLayer里面有一个很重要的容器m_rolesArray,并且说道其初始化是由以下两个函数负责的。 void FlightLayer::initTeam(const HeroMessage& h1,const HeroMessage& h2,co...
阅读(712) 评论(0)
42条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:69884次
    • 积分:1129
    • 等级:
    • 排名:千里之外
    • 原创:39篇
    • 转载:3篇
    • 译文:0篇
    • 评论:25条
    最新评论