一、logo载入界面
来源:互联网 发布:linux查看cpu核数命令 编辑:程序博客网 时间:2024/05/21 10:46
目录
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 resolution glview->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, ResolutionPolicy::EXACT_FIT);glview->setFrameSize(designResolutionSize.width, designResolutionSize.height);glview->setFrameZoomFactor(0.7f);// 480 X 960 高度太高,故用该方法进行缩放其中,setFrameZoomFactor()函数解决480 × 960的模拟器在14寸笔记本显示过大的问题,这里取原始尺寸的0.7倍。
0 0
- 一、logo载入界面
- Unity3D学习 愤怒的小鸟之Logo界面(一)
- DXUT 初始载入界面
- LayoutInflater 动态载入界面
- layoutinflater 载入动态界面
- 页面载入等待界面
- Android开机界面logo
- 有进度条的界面载入
- Unity3D WebPlayer 修改载入界面
- 004页面载入等待界面
- 新浪微博Android客户端学习记录一:完成Logo界面
- 新浪微博Android客户端学习记录一:完成Logo界面
- 修改EBS R12界面LOGO
- 用FLASH载入的方法来隐藏FusionCharts的LOGO
- 最好的通用式silverlight载入界面
- 页面载入的时候,设置等待界面
- 动态载入并使用界面XML-----LayoutInflater
- Xcode 6 LaunchImage 载入界面标准大小
- Redis——简介
- C 语言中的constructor与destructor
- 设置HTML:target=_blank,在新窗口中打开链接
- xUtils源码阅读(8)-ImageDecoder
- Spring 源码梳理(八) Spring常用配置
- 一、logo载入界面
- HTML character codes
- JSP页面用EL表达式 输出date格式
- HDU 1166 敌兵布阵 树状数组-(模板)
- Swift语言2.2版本,够初学者学习
- Android 广告(banner)图片轮播、图片浏览、仿微信大图查看控件(支持视频和gif图片)、支持动态添加数据
- Android 之下拉刷新控件XRefreshableView
- 初学Spring框架,测试时出现的小问题
- JNI编程中如何传递参数和返回值。