目录
一、开发环境介绍
二、开发内容
2.1 修改窗口的大小。
2.2 添加加载场景相关代码
2.3 添加资源
三、显示效果
四、知识点
4.1 Sprite
4.2 定时器
一、开发环境介绍
操作系统:UOS1060专业版本。
cocos2dx:版本
环境搭建教程:
统信UOS下配置安装cocos2dx开发环境_三雷科技的博客-CSDN博客
二、开发内容
游戏在开始时都需要加载大量的资源,为了让用户有等待时间,因此最先开发的场景为加载游戏资源场景,用于加载游戏资源,当然其中还可以处理升级等操作。
2.1 修改窗口的大小。
在AppDelegate.cpp文件中修改为以下内容:
static cocos2d::Size designResolutionSize = cocos2d::Size(960, 640);
2.2 添加加载场景相关代码
在Classes目录中创建Scene目录用于存储关于场景相关的代码。
mkdir Sence
touch LoadingScene.cpp
touch LoadingScene.h
在CMakeLists.txt文件中加入场景代码文件
2.3 代码内容如下:
- LoadingScene.cpp
#include "LoadingScene.h"
USING_NS_CC;
Scene* LoadingScene::createScene()
{
return LoadingScene::create();
}
// on "init" you need to initialize your instance
bool LoadingScene::init()
{
//
// 1. super init first
if ( !Scene::init() )
{
return false;
}
numberOfLoadedRes = 0;
auto visibleSize = Director::getInstance()->getVisibleSize();
auto background = Sprite::create("Loadding.png");
background->setRotation(-90.0f);
background->setPosition(Point(visibleSize.width/2,visibleSize.height/2));
addChild(background);
// 定时更新,用于检测资源是否被加载完成,如果加载完成才跳入到正真的欢迎页面。
schedule(CC_SCHEDULE_SELECTOR(LoadingScene::logic),1.0f);
return true;
}
// 该代码处理加载资源的操作。
// 加载资源包括图片,声音等。
void LoadingScene::loadSource(){
}
void LoadingScene::logic(float dt)
{
// 如果你愿意可以在这里通过监听numberOfLoadedRes的值来显示加载进度。
if(0 == numberOfLoadedRes){
loadSource();
}else if(100 == numberOfLoadedRes){
// 处理跳转动作。
}
}
- LoadingScene.h
#ifndef __LOADING_SCENE_H__
#define __LOADING_SCENE_H__
#include "cocos2d.h"
class LoadingScene : public cocos2d::Scene
{
public:
static cocos2d::Scene* createScene();
virtual bool init();
// implement the "static create()" method manually
CREATE_FUNC(LoadingScene)
void loadSource();
void logic(float dt);
int numberOfLoadedRes;
};
#endif // __LOADING_SCENE_H__
2.3 添加资源
由于加载场景中需要使用到资源。因此我们需要将资源拷贝到Resources目录中。
注意:在使用QT调试的时候有可能出现无法找到资源的情况,需要手动将Resources目录内容拷贝的debug/bin/Resources目录中!!!!
三、显示效果
四、知识点
4.1 Sprite
Sprite翻译成精灵,其实就是场景中的一个图片元素,我们可以通过控制这个图片元素移动来达到动画效果,从而完成功能。
创建精灵需要传递一个图片,图片需要存放在Resources目录内,创建代码如下:
auto background = Sprite::create("Loadding.png");
4.2 定时器
我们可以通过schedule函数来启动定时器。
schedule(CC_SCHEDULE_SELECTOR(LoadingScene::logic),1.0f);
1.0f:表示每隔一秒钟触发一次。
void logic(float dt);
dt:表示两次触发之间的间隔时间。