展会信息港展会大全

cocos2d-x 3.6版连连看加载资源,cocos2d-x3.6
来源:互联网   发布日期:2015-09-28 11:14:29   浏览:1424次  

导读: cocos2d-x 3.6版连连看加载资源,cocos2d-x3.6 网上找了一个梦幻连连看的资源,大家可以百度一下。然后整理一下加到工程里面去,包括声音和图片文件,后面解释如何...

cocos2d-x 3.6版连连看加载资源,cocos2d-x3.6

网上找了一个梦幻连连看的资源,大家可以百度一下。然后整理一下加到工程里面去,包括声音和图片文件,后面解释如何整理可以方便管理。

我不推荐在代码里面直接引用资源文件名,我称之为硬编码。做iOS开发的同学好像比较习惯这样,要用按个图片,直接用图片来索引。

我们将所有的资源文件用C风格的字符串做一个索引,放在一个头文件Resources.h里面。这样以后需要修改图片或者索引可以很方便的修改。

好,先加这么多资源。来看看AppDelegate.cpp,这是入口。看看入口函数

applicationDidFinishLaunching。

auto screenSize = glview->getFrameSize();

auto designSize = Size(960, 640);

auto fileUtils = FileUtils::getInstance();

std::vector<std::string> searchPath;

if (screenSize.width > 960) {

designSize = Size(1136, 640);

searchPath.push_back("Iphone5");

}

fileUtils->setSearchPaths(searchPath);

glview->setDesignResolutionSize(designSize.width, designSize.height, ResolutionPolicy::SHOW_ALL);

// create a scene. it's an autorelease object

auto scene = StartGame::createScene();

// run

director->runWithScene(scene);

我这里写的比较简单,因为只做了960X640和1136X640两种资源,所以只做了这两个的适配。这里的适配比较简单粗暴,就是根据屏幕尺寸去加载对应的资源,同时设置对应的设计分辨率。

这不是重点,后面我会重点讲分辨率适配。这里只是出来一个界面,重点是我们的连连看游戏。

// create a scene. it's an autorelease object

auto scene = StartGame::createScene();

// run

director->runWithScene(scene);

最后两句创建了一个StartGame的场景,导演执行这个场景。如果你看你创建的工程,会发现源码里面是用的Helloworld。是的,我们就是要干掉HelloWorld,创建我们自己的游戏场景。

右键点击xcode左侧的Classes,选择新建文件,选择C++,取个名字StartScene,同时创建头文件。

好了,如何来写这个StartScene,呢。一步一步来。

我先不讲原理,直接讲怎么搞。

首先要知道,我们这个连连会是神马样子的。

至少应该是这样的,首页进来有个大背景,然后有些点缀物,比如蓝天白云神马的,然后有个按钮,点击开始游戏。

好,先看怎么来出一个背景。

StartScene.h

class StartGame : public cocos2d::Layer

{

public:

static cocos2d::Scene* createScene();

virtual bool init();

void play(void);

CREATE_FUNC(StartGame);

};

定义了几个函数。

createScene()是一个静态函数,用来创建一个场景。

init()函数比较怪,是一个虚函数,为什么会这样,后面讲,先这么写好了。

play(void)是我们自定义的一个函数,看名字就知道干嘛的。

CREATE_FUNC(StartGame),是个神马东西,也是一个create函数,用来创建StartGame实例的,后面大家会知道这就是引擎里面用的最多的二阶段构造器。

再来看实现文件cpp

#include "StartScene.h"

#include "Resources.h"

USING_NS_CC;

Scene* StartGame::createScene()

{

// 创建一个场景实例

auto scene = Scene::create();

// 创建StartGame的实例,是一个Layer

auto Layer = StartGame::create();

// 把StartGame的对象添加到场景里面

scene->addChild(Layer);

return scene;

}

bool StartGame::init()

{

// 先调父类的init函数

// 这里可以知道,init()函数是一个继承下来的函数,而且是一个虚函数,子类可以重写这个函数

if ( !Layer::init() ) {

return false;

}

// 获取屏幕可视区域

Size visibleSize = Director::getInstance()->getVisibleSize();

// 创建一个背景

auto background = Sprite::create(s_backgound);

// 设置位置为中心位置

background->setPosition(visibleSize.width / 2, visibleSize.height / 2);

// 添加到当前层

addChild(background);

return true;

}

void StartGame::play()

{

}

代码里面有写注释,很简单对不对。看跑起来会是个什么东西。

就是个海洋背景图嘛。

http://www.bkjia.com/Androidjc/1016237.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/1016237.htmlTechArticlecocos2d-x 3.6版连连看加载资源,cocos2d-x3.6 网上找了一个梦幻连连看的资源,大家可以百度一下。然后整理一下加到工程里面去,包括声音和...

赞助本站

人工智能实验室

相关热词: android开发 android教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港