目录

1. 载入logo界面类的实现

2. 设置设计分辨率和屏幕分辨率

3. 加载游戏资源到帧缓存

正文

一、载入logo界面的类

游戏在启动时,会有短暂各个公司logo的短暂显示,接着进入另外一个场景(往往是主场景),出现logo的这个场景程序往往在后台做了很多事情,比如:游戏的初始化,加载游戏资源等。今天开发第一个场景——载入logo界面的场景。该场景写在头文件CopyrightLayer.h中,cpp文件为CopyrightLayer.cpp。

1.1 头文件——CopyrightLayer.h

#pragma once
#include "cocos2d.h"USING_NS_CC;class CopyrightLayer : public Layer
{
public:CopyrightLayer();~CopyrightLayer();CREATE_FUNC(CopyrightLayer);virtual bool init();static Scene* scene();private:void LoadPicResourceToCache();void LoadHeroProperty();
private:void gotoNextScene(float dt);
};

其中, #pragma once这是一个比较常用的C/C++杂注,只要在头文件的最开始加入这条杂注,就能够保证头文件只被编译一次,类似于#ifndef _SOMEFILE_H_

#define _SOMEFILE_H_   .......... // 一些声明语句 #endif。

LoadPicResourceToCache()函数用把*.plist文件加入到帧缓存(SpriteFrameCache),节省游戏性能。

1.2 cpp文件——CopyrightLayer.cpp

#include "CopyrightLayer.h"
#include "cocos2d.h"
USING_NS_CC;CopyrightLayer::CopyrightLayer()
{
}CopyrightLayer::~CopyrightLayer()
{
}Scene* CopyrightLayer::scene()
{auto scene = Scene::create();auto layer = CopyrightLayer::create();scene->addChild(layer);return scene;
}bool CopyrightLayer::init()
{bool bRef = false;do{CC_BREAK_IF(!Layer::init());//CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();Size visibleSize = Director::getInstance()->getVisibleSize();Sprite* logo = Sprite::create("ui/logo.png");logo->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2));this->addChild(logo);this->scheduleOnce(schedule_selector(CopyrightLayer::gotoNextScene), 1.0);bRef = true;} while (0);return bRef;
}// 加载游戏资源到缓存
void CopyrightLayer::LoadPicResourceToCache()
{// CCSpriteFrameCache* pSpriteFrameCache = CCSpriteFrameCache::sharedSpriteFrameCache();SpriteFrameCache* pSpriteFrameCache = SpriteFrameCache::getInstance();pSpriteFrameCache->addSpriteFramesWithFile("ui/login_animation.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/ui_text.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/ui_serverlist.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/ui_rank.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/ui_occupation.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/ui_navigation.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/ui_mainface.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/ui_littcard_frame.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/ui_listbutton.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/ui_listbutton1.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/ui_friend.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/ui_fight.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/ui_eatcard.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/ui_arena.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/skill_blizzard.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/skill_zhongji.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/skill_windhit.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/skill_thunde.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/skill_tenarmy.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/skill_customattack.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/raffle.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/play_script2.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/play_script1.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/play_image.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/play_animation.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/heal.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/fight_victory.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/fight_star.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/evolution.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/equipment_part2.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/equipment_part1.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/eatcard_part1.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/bigcard_frame_white.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/bigcard_frame_purpleandyellow.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/bigcard_frame_greenandblue.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/bigcard_0489_0494.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/bigcard_0345_0351.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/bigcard_0337_0343.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/bigcard_0329_0335.plist");pSpriteFrameCache->addSpriteFramesWithFile("ui/bigcard_0000_0004.plist");
}void CopyrightLayer::LoadHeroProperty()
{}void CopyrightLayer::gotoNextScene(float dt)
{}

注意:init()函数在CopyrightLayer::create()函数中被调用,一切秘密都在CREATE_FUNC(_TYPE_)宏中,详情在这里。

1.3 AppDelegate.cpp启动CopyrighLayer场景

CopyrighLayer是程序的第一个场景,运行游戏时首先加载这个场景,它的启动在AppDelegate.cpp的applicationDidFinishLaunching()函数中,往该函数里添加如下代码:

// create a scene. it's an autorelease object// 修改为第一个场景auto scene = CopyrightLayer::scene();

二、设置设计分辨率和屏幕分辨率

这里logo界面的资源分辨率为480 × 960,我们要设计的分辨率为480 × 960(这里是竖屏)。在applicationDidFinishLaunching()函数中添加如下代码:

// Set the design resolutionglview->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, ResolutionPolicy::EXACT_FIT);glview->setFrameSize(designResolutionSize.width, designResolutionSize.height);glview->setFrameZoomFactor(0.7f);// 480 X 960 高度太高,故用该方法进行缩放

其中,setFrame ZoomFactor()函数解决480 × 960的模拟器在14寸笔记本显示过大的问题,这里取原始尺寸的0.7倍。

一、logo载入界面相关推荐

  1. 联想卡在logo界面_联想电脑卡在logo界面 联想电脑卡在载入界面怎么办

    有时候我们会遇到电脑开机一直卡在主板Logo界面的问题,原因有很多,怎么解决呢?下面是小编为大家整理的关于联想电脑卡在载入界面的相关资料,希望对您有所帮助! 联想电脑卡在载入界面的解决方法 下面这张就 ...

  2. 联想卡在logo界面_联想电脑卡在载入界面如何修复 联想电脑卡在logo界面

    电脑有时候会遇到一些故障,发现电脑开机卡在logo界面,我们该怎么进行处理?下面是小编为大家整理的关于联想电脑卡在载入界面的相关资料,希望对您有所帮助! 联想电脑卡在载入界面的解决方法 原因分析:一般 ...

  3. 联想卡在logo界面_[联想电脑卡在载入界面有什么解决方法]联想电脑卡在logo界面...

    [ 联想电脑卡在载入界面有什么解决方法 ] 联想电 脑卡在 logo 界面 首先我是开机时按 F8, 进入安全模式界面.但是进去的时候等待 了几分钟都无反应,上面一直显示请稍等 ... 没办法只有按下 ...

  4. (仿头条APP项目)1.app载入界面相关功能实现

    app载入界面相关功能实现 模块功能 1.设置页面布局 2.初始化视频播放 //控制是否跳到主界面private boolean isjump = false;private VideoView vi ...

  5. 解决安装Ubuntu系统卡在载入界面,显示正在安装open vm tools

    解决安装Ubuntu系统卡在载入界面,显示正在安装open vm tools 在虚拟机上安装Ubuntu的时候,老是卡在open vm tools这,卡很久.查了一圈,浏览最多的帖子17年的没有用.之 ...

  6. 安装Ubuntu系统卡在载入界面,显示正在安装open vm tools

    在vmware workstation中安装Ubuntu系统过程中卡在载入界面. 我原先以为.我是因为系统镜像问题,前前后后下载好几个镜像,试了后发现根本没用,都是这个问题,右键虚拟机编辑设置,看到多 ...

  7. 简单的C++游戏载入界面设计

    源代码下载地址: 网盘:http://pan.baidu.com/s/1eQ33c7w CSDN:http://download.csdn.net/detail/u011418173/9080501 ...

  8. RPG游戏《黑暗之光》流程介绍与代码分析之(一):游戏载入界面的创建

    <黑暗之光>是一款中等大小的RPG游戏,在入门Unity后适合用来上手,了解一整套游戏开发流程以及游戏内的各种功能.借助几篇博客整理一下整体的开发步骤以及代码,方便自己回顾,也便于各位交流 ...

  9. Unity黑暗之光笔记-NGUI-01-游戏载入界面

    在这一篇中主要是游戏载入界面 1.设置鼠标指针.添加水面和天空盒子 2.镜头缓慢的拉进 3.载入界面UI 1.设置鼠标指针.添加水面和天空盒子 1.1设置鼠标指针 因为场景已经有人做好,直接导入别人做 ...

最新文章

  1. pandas中dataframe的构造(csv等结构化文件读取,字典读取)以及保存
  2. 「小程序JAVA实战」小程序视频上传方法的抽象复用(57)
  3. 矩阵管理——本质是职能分工,例如所有部门都执行财务部门制定的财务制度而不会各自为政...
  4. 今日头条极速版怎样签到_今日头条投放广告的费用多少钱?今日头条广告投放完整流程是怎样?...
  5. struts2在加载首页是访问action
  6. 根据dtd编写xml的小例子
  7. unity 批量导入模型工具_如何将VMD舞蹈导入桌面萌娘MMD
  8. Coursera吴恩达《神经网络与深度学习》课程笔记(5)-- 深层神经网络
  9. unity 3d物体描边效果_从零开始的卡通渲染描边篇
  10. 理解浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。
  11. 双时隙的工作原理_双作用叶片泵工作原理是怎样的?作为8年工程师都没了解这么深...
  12. 总结:PHP值得注意的几个问题
  13. RenderMonkey 练习 第一天 【opengl 纹理】
  14. Zabbix监控内存
  15. CSS3过渡练习-进度条(CSS3)
  16. 刷屏了!张一鸣6000字内部演讲:不依赖捷径,不轻言All-in(附全文)
  17. 使用kaminari实现分页
  18. c/c++中指针学习的两个绝好例子
  19. CRM:网站证书过期怎么办
  20. DDD理论学习系列(7)-- 值对象

热门文章

  1. 基于微信小程序的家政服务预约系统的设计与实现
  2. 弗洛伊德算法(求最短路径)
  3. 如何用游戏培养宝宝的自理能力?
  4. 【通信原理】第三章 -- 随机过程[下]
  5. linux下 postgresql 安装 postgis 拓展
  6. 直播真的适合金融行业吗?
  7. 中学生人际交往5大技巧
  8. 高中理科学生成绩管理系统(C语言课程设计)
  9. 移动端APP客户旅程图免费下载,提升用户体验感
  10. mysql 数组存储类型_mysql 数组存储类型