自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

何自健的博客

life is a game,game is my life.

  • 博客(42)
  • 收藏
  • 关注

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

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

2015-05-30 12:55:35 1512 1

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

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

2015-01-29 19:29:37 2774 2

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

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

2015-01-27 21:46:36 1971

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

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

2015-01-26 15:01:10 1492

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

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

2015-01-26 14:25:22 2904 3

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

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

2015-01-24 17:00:56 1805 1

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

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

2015-01-11 15:23:24 1705

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

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

2015-01-11 15:17:03 955

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

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

2015-01-10 22:42:02 1412

原创 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

2015-01-10 22:34:15 1210

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

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

2015-01-10 21:27:36 1941

原创 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_

2015-01-10 21:15:01 1019

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

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

2015-01-10 20:33:44 1256

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

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

2015-01-10 19:41:15 1272

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

一、前言至此,我们的战斗场景关于角色移动已经讲得七七八八了。不过还是有一些问题需要注意注意。二、正文在第五节里面我们讲了FlightLayer里面有一个很重要的容器m_rolesArray,并且说道其初始化是由以下两个函数负责的。void FlightLayer::initTeam(const HeroMessage& h1,const HeroMessage& h2,co

2015-01-10 19:23:24 1144

原创 cocos2dx3.2开发 RPG《Flighting》(六)角色的状态和控制效果

一、前言一般来说,我们在做一个稍微有点智能的实体的时候都会用到状态机。这里我没有用到,但是我也为角色设置了几种状态。如果大家看了上一节,也完成了角色的基本移动的话。对比过我一直说的《BattleHeart》之后,你会发现,现在的控制移动操作也太挫了,既没有那一条拉出来的导航线,也没有角色被选中的效果。所以接下来我们要对我们的基本控制操作加入一些效果。二、正文1、角色的状态

2015-01-10 16:52:29 1569

原创 cocos2dx3.2开发 RPG《Flighting》(五)只能行走的战斗场景

一、前言前面几节好像与我们一开始说的游戏不太相关,现在我们正式进入战斗场景的开发。不过凡事不要心急,要循序渐进,我们先搭建一个能够让角色在上面行走的战斗场景吧。二、正文首先精简一下Role类,让他能够实现移动功能就好了。顾名思义,role就是角色,在战斗场景出现的一个一个人都是一个role,废话不多说,直接贴上经过精简过得Role头文件class Role :

2015-01-09 22:40:05 1559

原创 cocos2dx3.2开发 RPG《Flighting》(四)预先加载与选人界面

一、前言假设你已经看懂了前面三节,那么接下来我们就开始进入真正的开发啦~~二、正文1、预先加载首先我们先谈谈预先加载,什么叫预先加载,就是在资源没有被用到的时候就先把资源加载到内存,等要用的时候直接从内存里面获取就好。这样的好处是当用的时候会省去加载的时间,但是坏处就是占用一部分内存,这是一个时间与空间的选择问题。游戏一开始进入的是MenuScenebool M

2015-01-09 20:57:17 1855

原创 cocos2dx3.2开发 RPG《Flighting》(三)从Excel表中加载需要的数据

一、前言在一个游戏里面,需要用到的数据一般都是由游戏策划提供的(这里的策划还是由我自己担任啦哈哈)。什么是需要用到的数据?例如我创建一个角色A,A有他自己的攻击力,防御力,速度等,再创建一个角色B,B也有自己的攻击力,防御力,速度等。每个角色都有一些基础属性,但是对应不同的角色,属性的值有可能不同。我们不可能在代码里面把这些数据写死。最好的办法是从一个文件(通常是Excel表格)中读入数据,这

2015-01-09 20:09:36 1796

原创 cocos2dx3.2开发 RPG《Flighting》(二)骨骼动画介绍及游戏美术资源分享

一、前言关于骨骼动画,如果大家不知道是什么东东的话,可以先百度一下。如果大家有去玩过我介绍的《BattleHeart》的话,你会发现,里面用到的就是骨骼动画,而且骨骼动画有几个帧序列动画无法比拟的优点:1)不需要太多的资源,就可以实现多种动画2)动画效果可以自行设置(很适合像我这种没有美工MM辅助的苦逼)3)可以随意替换,如果你有认真观察《BattleHeart》的话,你会发现

2015-01-09 16:13:49 2953

原创 cocos2dx3.2开发 RPG《Flighting》(一)基本介绍

前言:上次写了一个消灭星星,很多人都回复了我,并且提出了宝贵的意见,先感谢大家啦~上几个月我发现了一个很好玩的游戏——《BattleHeart》,心里面想着,这么好的游戏要是可以联机跟好朋友一起玩(就像CS那样)那就爽歪歪了,于是就动手开始模仿这款游戏,并且为其加入网络模块。可惜,因为对多人网络游戏开发并不熟悉,虽然最后还是开发出来了,但是效果却差强人意。不过在开发过程中学到了很多新的知识和网

2015-01-09 15:15:45 2684 2

原创 服务器框架搭建随笔(2)

2014-12-10 15:53:48 561

原创 C++中使用MySQL

我的电脑上的软件如下:VS2012 MySQL 5.6操作系统是64位win8.11.前提下载并安装MySQL 2.配置(1)在项目中 属性》C++》常规》添加附加包含目录:MY_SQL的目录/include(2)在项目中 属性》连接器》常规》添加附加库目录:MY_SQL的目录/lib(3)在项目中 属性》连接器》输入》添加附加依赖项:libmysql.

2014-12-04 16:11:43 2213 2

原创 基于boost::asio封装搭建的简单服务器

经过一天的简单学习,尝试自己写一个简单的服务器,能够实现以下三大回调功能:onConnect onMessage onClose下面直接贴出代码1.BaseServer抽象类BaseServer.h/*name:BaseServeruse:the basest serverauthor:hezijian([email protected])*/#ifdef _MSC_

2014-11-30 12:09:36 2659 1

原创 服务器框架搭建随笔

上一个星期去旅游了,玩得挺开心的,不过心里老是惦记着项目。前晚11点才飞回广州,没有交通只好在机场度过一晚,顺便拿起笔记本日期笔写下一些服务器的小想法。

2014-11-30 11:59:14 695

原创 C++中继承中遇到的构造函数问题

今天在开发时遇到了一个之前一直以为理所当然的构造函数问题。先给总结:子类在构造时,如果没有显式调用父类的构造函数,会先调用父类的默认构造函数(无参数的)下面给出不同情况的例子例子一:父类有默认的构造函数,子类的构造函数随便#include class Base{public: Base(){ }};class Derive:public Base{

2014-11-29 20:43:46 3790

原创 Boost在Windows上的配置以及的Boost::asio C/S同步例子

一、 下载boostboost.orghttp://www.boost.org/users/download/boost_1_51_0.zip 下载并解压到C盘根文件夹二、编译boost1、生成生命行程序  执行bootstrap.bat2、编译  执行b2.exe,完成后显示:The Boost C+

2014-11-29 13:57:44 2919

原创 Flighting游戏服务器:关于TCP和UDP

1.前言思考了两天怎么去做游戏的服务器,

2014-11-20 01:44:20 1320

转载 关于用UDP网络游戏服务器的一些探讨

关于UDP网络游戏服务器的一些探讨(转) 作者: lijins2005-10-09 10:46分类:默认分类标签:关于UDP网络游戏服务器的一些探讨(转)近来跟人讨论一些关于实时性要求比较高的服务器设计的问题,这个问题纯粹是理论的,概念的,架构的,整理一下以供参考。 众所周知,UDP是无连接的,面向消息的数据传输协议,对于

2014-11-20 01:38:43 5600

转载 游戏服务器:到底使用UDP还是TCP

在编写网络游戏的时候,到底使用UDP还是TCP的问题迟早都要面对。一般来说你会听到人们这样说:“除非你正在写一个动作类游戏,否则你就用TCP吧” 或者是 “你能够在MMO游戏中用TCP,因为魔兽世界就用的TCP!”遗憾的是,这些观点都没有反映这个问题的复杂性。背景首先,说明一下,我之前主要是用TCP进行网络编程。我曾为一个流行的在线纸牌游戏编写服务器了好几年,在高峰

2014-11-20 01:11:14 1950

原创 关于Cocos2dx的Position和锚点问题

刚刚在地铁上,有点无聊,突然想到cocos2dx

2014-11-15 16:47:18 3578

原创 利用cocos2dx 3.2开发消灭星星(十)为游戏添加音效(项目源码分享)

一个游戏,声音也是非常的重要,其实cocos

2014-10-01 20:12:01 3774 7

原创 利用cocos2dx 3.2开发消灭星星(九)为游戏添加一些特效

其实整个消灭星星开发也差不多了,为了使游戏好看些,不如为游戏添加一些

2014-10-01 19:45:39 3530

原创 利用cocos2dx 3.2开发消灭星星(八)游戏的结束判断与数据控制

如果你看完之前的,那么你基本已经拥有一个消灭星星

2014-10-01 19:41:48 2437

原创 利用cocos2dx 3.2开发消灭星星(七)关于星星的算法

在前面,我们已经在GameLayer中利用随机数初始化了一个StarMatrix(星星矩阵:即所有的星星)

2014-10-01 17:57:15 3269

原创 利用cocos2dx 3.2开发消灭星星(六)如何在cocos2dx中显示中文

由于编码的不同,在cocos2dx中的Label控件中如果放入

2014-10-01 17:44:14 2268 4

原创 利用cocos2dx 3.2开发消灭星星(五)update与触摸事件

上一节我们一直在讲星星有两个位置,当前位置与目标位置。究竟是什么,

2014-09-10 20:48:48 2741

原创 利用cocos2dx 3.2开发消灭星星(四)游戏主场景

第二节说到在菜单场景MenuScene中加入一个菜单并且加入一个开始按钮切换到GameScene,下面我们来讲一下游戏的主界面GameScene和GameLayer一、主场景GameSceneGameScene.hclass GameScene : public Scene{public: virtual bool init(); CREATE_FUNC(GameScene)

2014-09-10 20:36:46 3929

原创 利用cocos2dx 3.2开发消灭星星(三)常用的飘字效果

游戏中经常需要用到一串字体从右到左的飘入,

2014-09-08 19:30:53 3563

原创 利用cocos2dx 3.2开发消灭星星(二)菜单(附素材)

1.游戏分辨率,这里由于背景素材是480

2014-09-08 17:46:56 4172 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除