- 博客(18)
- 资源 (5)
- 收藏
- 关注
原创 华容道05--关卡数据的显示
前面写了那么多,现在就是用前面信息的时候,把Level中的关卡显示出来。首先,需要有一个关卡类的引用,这样才能得到我们想要的信息。然后,需要一个Vector来存储RoleSprite。 代码:GameLayer.hprivate: Level * m_pLevel;//<关卡数据的引用 cocos2d::Vector m_pRoleSpriteVec ;//
2015-04-14 20:29:48 1734
原创 华容道03---关卡类的设计和数据读取
关卡类中需要有没关初始的地图数据,即每个角色的位置。属性:ID:所有RoleID:用到哪个Role写哪个,每个ID用‘,’分开对应RoleID的行列:读取的时候有一个Row数据和一个Col数据,将这两个数据合并为1个Pos数据。 Level.h #ifndef _LEVEL_H_#define _LEVEL_H_#include "cocos2d.h"USI
2015-04-14 20:24:17 2213
原创 华容道01--分析
一直想写一个华容道的游戏,现在就通过学习Cocos2D3.x写一个华容道的游戏吧。这个游戏的要求是,最后生成安卓项目,安装到自己的手机上玩玩吧!开发周期初步定在2-3天。 华容道有多种开局方式,不同的开局方式就是不同的关卡,所以需要有一个选关界面。 再就是游戏界面。 在华容道中,每个元素所占的空间是一定的,兵是最小的,也是最基本的单位,最大的占四个单位空间,然
2015-04-14 19:39:42 1839
原创 Cocostudio骨骼动画的复用
同一个游戏中,有很多角色的骨骼动画是能够复用的,甚至是一些骨骼。在开发过程中,做好一个角色的骨骼动画,另存出下一个角色的项目,将角色的骨骼进行调整,动作进行微调,这样就又有了一个新的角色。但是,这时导出的骨骼动画的文件和上一个角色导出的骨骼动画的文件资源名可能会重复,那么,在使用的时候就会出现,两个角色的贴图是同一套资源。解决方案:对资源的路径进行更改,当然更改的方式有两种。第一种
2015-04-13 13:01:51 1113
原创 俄罗斯方块的设计思路
前段时间帮人写了个俄罗斯方块的Demo,今天有时间分享下设计思路。分析:游戏中会出现7种形状,每种形状在游戏中都能够旋转,形成新的形状。每种形状都是由方形的色块组成的。数据类:Shape:形状类,总共7个。Block:方块类,其实只有一个贴图的属性。关于旋转:为每个形状寻找旋转点,每个形状的旋转点都是固定的。红色的点为参考点,所在行列为(x,y)在S
2015-04-10 18:43:32 20497 1
原创 飞机大战开发05按角度发射的子弹和拖尾子弹的实现
多角度的子弹:这个的实现可以仍然用MoveBy动作来完成,设定一个子弹偏移的角度,计算出到出屏幕,子弹在x轴和y轴上移动的距离,移动就OK了。上代码: void GameLayer::createBulletByAngle(float angle){ Size screenSize = Director::getInstance()->getWinSize() ; Vec2
2015-04-10 18:37:56 7758 1
原创 飞机大战开发04子弹与敌机的碰撞检测
先是敌机与玩家子弹的碰撞检测:代码:GameLayer.hvoid GameLayer::update(float dt){ for (int i = 0 ;i < m_pEnermyVec.size();i++) { Sprite * pEne = m_pEnermyVec.at(i) ; for (int j = 0 ; j < m_pPlayerBullet.siz
2015-04-09 10:24:13 5621
原创 飞机大战03之飞机发射子弹,添加敌人
飞机发射子弹:弹幕,是雷电游戏的精华。这就需要对子弹的运动轨迹进行控制。先做一个最简单的子弹发射,后面再添加各种弹幕(实际上主要是研究弹幕)说是最简单,其实也是最普通的子弹发射,产生一个颗子弹移动就OK了。方法:做一个子弹发射的计时器,产生子弹,子弹做MoveBy动作就OK了。代码:GameLayer.cppvoid GameLayer::fireSchedule(fl
2015-04-09 10:19:30 5161
原创 飞机大战开发02之添加玩家飞机
玩家的飞机直接用Sprite来创建代码:GameLayer.hSprite * m_pPlayerPlane ;GameLayer.cppm_pPlayerPlane = Sprite::create("myPlane.png") ;m_pPlayerPlane->setPosition(Vec2(screenSize.width / 2,screenSize.height
2015-04-08 20:05:25 522
原创 飞机大战开发01之添加主逻辑层,显示背景的移动
GameLayer负责游戏的主逻辑的实现:代码: GameLayer.h#ifndef _GAME_LAYER_H_#define _GAME_LAYER_H_#include "cocos2d.h"USING_NS_CC ;class GameLayer : public Layer{public: static cocos2d::Scene* createS
2015-04-08 19:59:50 2184
原创 cocos2d2.x中的CCRect
CCRect在引擎中是一个经常被用到的属性,用的比较多的地方就是boundingbox,有的时候对于CCRect的具体实现不明白,使用的时候就会有错误。CCRect有两个属性:CCPoint,CCSize,一个表示的是原点,一个表示的是长宽,这样就构成了一个以左下角为原点,Size为长宽的矩形。所有用到CCRect的地方都是以这个为基准的。这样,Rect的最小值就是远点,最大值就是右上点。
2015-04-07 11:56:01 1268
原创 cocos2D-x3.4 新建项目的批处理文件
做了一个3.4版本的批处理文件,分享下。希望对新手有帮助。新建个txt,将下面的代码拷进去,改后缀为.bat,就OK了,原理不说了,有兴趣学学批处理吧!echo offecho 第一步请输入要创建的项目名称,例:CocosTestset /p name=echo 第二步请输入要创建的项目的包名 例:com.dd.CocosTestset /p pack=cocos new %na
2015-04-03 00:42:45 598
原创 通过cocos裁切图片,将大图分为小图
游戏要用动画,美工还没做出来,于是,从网上找来了几张图,不过图是JavaME时代的图,动画都是靠裁切来显示的,于是想将大图分割成小图来用。图片规格:图中每个小图的大小是相等的,基本上都是正行,整列的。上代码:const char * CutNormalImage::IMAGE_FORMAT_NAME = "image_ (%d).png" ;const char * pSav
2015-04-02 19:42:59 8764
原创 动态设置CCNode的zOrder
游戏中有一个需求,敌人在移动的过程中,可能会由于速度的不同,产生相互的遮挡。这个需要动态的设置敌人的zOrder,在TestCpp中见过SpriteTest中的设置zOrder,就模仿着写了个。基本思路:1. 确定一个评定渲染顺序的标准2. 按评定标准给需要动态渲染的对象排序3. 重置每个对象的zOrder,并reOrder 测试的时候用的是静态图,产生了2
2015-04-02 16:52:03 1142
原创 产生连续的随机数
之前用到的随机数是以时间为种子的,当连续产生的时候,就会出现问题,更改了下。在设置种子的时候加上一个随机数。试了试,感觉还OK。static unsigned int s_seed ;void Utils::random_seed(int seed) { if(!seed) s_seed=time(NULL); else s_seed=seed;}int Utils::random_
2015-04-01 12:02:36 1040
android程序间数据的共享(ContentProvider和ContentResolver的使用)
2015-12-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人