塔防游戏的开发:
1, 准备资源:
2, 一般的游戏开发中我们用到的都是大图,首先简单的介绍下图片的裁切,
3, 纹理打包工具的使用,Texturepacker工具,它会自动的把图片摆放图片,把多张图片整合到一张图片上,这样的话可以减少图片的开销,这样加载图片是只需要加载一张图片就好了,它导出的时cocos2d的plist格式。
4, 使用TexturePacker打包多张小图
5,
1,将多张小图拖动到TextPacker中
2.定义导出格式
导出plist文件名
导出合成图的png文件名
3. 选择publish发布 生成一个xxx.plist xxx.png
4.拷贝这2个文件到Resource目录
5.使用SpriteFrameCatch一次性加载到缓存
//使用plist实现动画的创建,使用SpriteFrameCache::加载所有帧在内存
SpriteFrameCache::getInstance()->addSpriteFramesWithFile("xxx.plist");
SpriteFrame*sf=SpriteFrameCache::getInstance()->getSpriteFrameByName("key");key就是在第一步拖动过去小图片的文件名。
6.屏幕的适配:
• 在applicationDidFinishLaunching方法中添加以下几行代码:
• glview->setDesignResolutionSize(1136.0f,640.0f, ResolutionPolicy::FIXED_HEIGHT);
• std::vector<std::string>searchPath;
• searchPath.push_back("height_864");
• CCFileUtils::getInstance()->setSearchPaths(searchPath);
• director->setContentScaleFactor(864.0f/ 640.0f);//注意:这里需要加上.0f
• 特别要说明的是,本游戏的地图资源大小为1536 * 864。我们要制作一个高度方向上全部显示的游戏,所以选择分辨率模式为:FIXED_HEIGHT。
7. 接下来我们会做如下的操作:
1.背景添加
2.地图添加
3.加载解析地图中的对象层数据
4.创建怪物
5.让怪物自动从第一个点移动到最后一个点
-------------------
//加载背景
auto sp=Sprite::create("playbg.png");
this->addChild(sp);
sp->setPosition(Vec2(Director::getInstance()->getWinSize().width/2,
Director::getInstance()->getWinSize().height/2));
//加载地图
auto map=TMXTiledMap::create("tilemap0.tmx");
this->addChild(map);
this->setTag(888);
//加载所有点:按照这个路径走下去
initAllPoint(map);
TDPoint。h
TDPoint。Cpp
//前提:可以做一个对象层的类
#include"cocos2d.h"
USING_NS_CC;
//定义每一个点
class TDPoint:public Ref
{
public:
int px;
int py;
static TDPoint *createPoint(int x,int y);
};
#include"TDPoint.h"
TDPoint * TDPoint::createPoint(int x,int y){
TDPoint * td=new TDPoint();
td->autorelease();