[Cocos2d-x for WP8学习笔记] HelloWorld结构分析
先来看一下目录结构:

Assets:游戏资源文件,图片音频等,Resource文件夹也有类似功能
include:用于放置游戏头文件
Shaders:渲染器着色器文件(大雾)
cocos2dorig.cpp/.h:Direct3D游戏默认入口,默认文件名和项目名相同,在Cocos2dx中,经由这里转而启动AppDelegate
//WP8Direct3D游戏默认启动入口
IFrameworkView^ Direct3DApplicationSource::CreateView()
{
return ref new PhoneDirect3DAppDemo();
}
[Platform::MTAThread]
int main(Platform::Array<Platform::String^>^)
{
auto direct3DApplicationSource = ref new Direct3DApplicationSource();
CoreApplication::Run(direct3DApplicationSource);
return ;
} //Cocos2dx启动入口
IFrameworkView^ Direct3DApplicationSource::CreateView()
{
return ref new cocos2dorig();
}
ref class CCApplicationFrameworkViewSource sealed : Windows::ApplicationModel::Core::IFrameworkViewSource
{
public:
virtual Windows::ApplicationModel::Core::IFrameworkView^ CreateView()
{
return cocos2d::getSharedCCApplicationFrameworkView();
}
};
[Platform::MTAThread]
int main(Platform::Array<Platform::String^>^)
{
//auto direct3DApplicationSource = ref new Direct3DApplicationSource();
//CoreApplication::Run(direct3DApplicationSource);
AppDelegate App;
auto frameworkViewSource = ref new CCApplicationFrameworkViewSource();
Windows::ApplicationModel::Core::CoreApplication::Run(frameworkViewSource);
return ;
}
AppDelegate.cpp/.h:
游戏通用入口文件,控制着游戏的生命周期
bool AppDelegate::applicationDidFinishLaunching()
游戏启动后调用这个方法
bool AppDelegate::applicationDidFinishLaunching()
{
// 初始化游戏引擎控制器
CCDirector *pDirector = CCDirector::sharedDirector();
pDirector->setOpenGLView(CCEGLView::sharedOpenGLView()); // 开发阶段可以打开FPS显示以观察流畅度
//pDirector->setDisplayFPS(false); // 设置横竖屏显示
pDirector->setDeviceOrientation(CCDeviceOrientationPortrait); // 设置每秒刷新率即FPS,默认每秒60次
//pDirector->setAnimationInterval(1.0 / 60); // 创建场景
CCScene *pScene = HelloWorld::scene(); // 运行场景
pDirector->runWithScene(pScene); return true;
}
void AppDelegate::applicationDidEnterBackground()
游戏转入后台时进行的操作,一般来说,要将游戏暂停
void AppDelegate::applicationWillEnterForeground()
游戏回到前台时对应的操作
HelloWorldScene.cpp/.h
HelloWorld游戏的场景,在AppDelegate::applicationDidFinishLaunching()中创建并运行。
CCScene* HelloWorld::scene()
场景创建
CCScene* HelloWorld::scene()
{
CCScene * scene = NULL;
do
{
// 创建一个空场景
scene = CCScene::create();
CC_BREAK_IF(! scene); // 创建一个HelloWorld层
HelloWorld *layer = HelloWorld::create();
CC_BREAK_IF(! layer); // 将HelloWorld层添加到场景中
scene->addChild(layer);
} while (); return scene;
}
bool HelloWorld::init()
初始化HelloWorld类
bool HelloWorld::init()
{
bool bRet = false; do
{
//调用父类方法进行初始化
if ( !CCLayer::init() )
{
break;
} //创建文字标签添加到层中
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Times New Roman", );
pLabel->setPosition( ccp(size.width * 0.5, size.height * 0.5) );
pLabel->setColor(ccc3(, , ));
this->addChild(pLabel, ); //创建显示HelloWorld的精灵并添加到层中
CCSprite *b = CCSprite::create("HelloWorld.png");
b->setPosition(ccp(, ));
b->setPosition(ccp(size.width * 0.5, size.height * 0.5));
this->addChild(b); //设置程序可以响应触摸
setTouchEnabled(true); bRet = true;
} while (); return bRet;
}
本文固定链接:[Cocos2d-x for WP8学习笔记] HelloWorld结构分析
[Cocos2d-x for WP8学习笔记] HelloWorld结构分析的更多相关文章
- [Cocos2d-x for WP8学习笔记] HelloWorld
Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于Cocos2d-iphone,支持 WOPhone, iOS 4.1, Android 2. ...
- (转)Android学习笔记②——HelloWorld的创建已经基本知识
开发第一应用 可以开发属于自己的应用,是否有点小激动?好吧!让我们开始,首先点击Start a new Android Studio Project创建工程:接下来需要输入应用名称(第一个字母要大写) ...
- WP8 学习笔记(001_环境配置)
Step 1 WP8 的开发要求64位操作系统,Windows 8及以上版本,需要激活版,建议网上买一个注册码.详见安装双系统. Step 2 安装好系统并已经激活之后,需要安装Windows Ph ...
- Struts2学习笔记 - HelloWorld总结
相信网上已经有很多关于struts2的HelloWorld可参考,我这里就不重复了,没个学struts2的人都会做过很多个HelloWorld,而我这里就总结一下一个简单的HelloWorld 我在一 ...
- [Cocos2d-x for WP8学习笔记] 获取系统字体
在Cocos2d-x for WP8较新的版本中,获取字体这一块,在wp8下默认返回了null,只能内嵌字体文件解决. 其实可以通过下面的方法获取系统的字体文件 CCFreeTypeFont::loa ...
- [Cocos2d-x for WP8学习笔记] 一些基本概念,建立自己的启动界面
流程控制:场景是相对不变的游戏元素集合,游戏在场景间的切换就是流程控制. 场景.层和精灵:它们是不同层次的游戏元素.通常,场景包含层,层包含精灵,场景与层是其他游戏元素的容器,而精灵是展示给玩家的图形 ...
- WP8学习笔记:如何在页面显示前自动转向到其他页面
在本次修练开始之前,我们除了预设的 MainPage页面外,也另外新增了一个 Login页面,如下图示: MainPage.xaml页面长这样 Login.xaml页面长这样 因为我们的需求是要求使用 ...
- WP8 学习笔记(002_应用程序结构)
下图是微软官方给出的WP8应用程序执行顺序: 在App.XAML.CS中,有程序主要步骤的函数 // 应用程序启动(例如,从“开始”菜单启动)时执行的代码 // 此代码在重新激活应用程序时不执行 pr ...
- Android开发 学习笔记——HelloWorld
Day01 1.java开发过程———————————————不建议先用ECLIPSE写代码,因为它的函数式自动生成的,不利于找寻编程手感打开记事本写完程序后,修改扩展名为.java然后在DOS控制台 ...
随机推荐
- 并发工具类(三)控制并发线程数的Semaphore
原文:http://ifeve.com/concurrency-semaphore/#more-14753 简介 Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程, ...
- 94、EventBus框架 ---- 转载
EventBus使用之基础 http://blog.csdn.net/yanbober/article/details/45667363 EventBus框架库代码走读 http://blog.cs ...
- javascript闭包的一个例子
<html> <head> <title>elementFromPoint</title> <script type="text/jav ...
- mysql 非安装版本就可以用, 用于打包用
http://blog.csdn.net/iihero/article/details/5596401 http://blog.csdn.net/iihero/article/details/5596 ...
- [SQL] 不知道是什么存储过程
CREATE PROCEDURE dt_DXS_STAFF_ACTIVE @STAFFSTATUS INT, @STAFFNUM INT, @STARTNO INT, @@TOTALCOUNT INT ...
- html标签属性
clientWidth = width + paddingclientHeight = height + paddingoffsetWidth = width + padding + borderof ...
- 深度解析EM菌
现在,在各大水族论坛里知道什么是EM菌的人不多,能正确说出EM菌的原理.成分和用途的人更是凤毛麟角,很多人对EM菌是否适用于水族箱存有疑虑,他们认为EM菌里大部分都是厌氧菌,因此不适合在水族箱这种好氧 ...
- Xfce 快捷键
1:显示桌面 修改文件:~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xmlvim命令:%s/"&l ...
- Hibernate三种状态的区分,以及save,update,saveOrUpdate,merge等的使用 引自http://www.blogjava.net/TiGERTiAN/archive/2008/10/25/236519.html
Hibernate的对象有3种状态,分别为:瞬时态(Transient). 持久态(Persistent).脱管态(Detached).处于持久态的对象也称为PO(Persistence Object ...
- Appnium移动自动化框架初探
作者:cryanimal QQ:164166060 本文简要介绍了appnium自动化框架的架构.加载流程.支持语言.相关配置,以及元素定位工具等. 官方网站: http://appium.io Ap ...