[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控制台 ...
随机推荐
- 改变select组件的option选中状态的快捷方法
以前我都是在<option>标签处通过判断value是否与其中一个相同然后输出selected="selected"来处理的,今天发现可以直接能过Js改变<sel ...
- jps命令
转载:http://blog.csdn.net/wanglha/article/details/40181701 ps -- JavaVirtual Machine Process Status To ...
- SQL 锁的介绍
锁的概述 一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏 ...
- 搭建一个springmvc helloworld程序
1.加jar包,需要8个,从springframework里面选 logging core aop context expression bean web webmvc 2.配置web.xml,在文件 ...
- [Java] 过滤流BufferedInputStream和BufferedOutputStream
package test.stream; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ...
- Intellisense in Visual Studio for Microsoft Dynamics CRM 2016
Intellisense in Visual Studio for Microsoft Dynamics CRM 2016 posted by dynamicsnick on may 18, 2016 ...
- 网站引导页插件intro.js 的用法
intro.js是一个用于制作网页引导效果的js插件,用法很简单,intro.js.v2.0.rar 1.在需要的页面添加引用 intro.js introjs.css 这两个文件已经足够,但是文件夹 ...
- 理论沉淀:RANSAC算法
1.解决问题: 当一组样本数据中含有(较小波动的)正常数据(inliers)和(较大波动的)异常数据(outliers)且异常数据的量还不小于正常数据的量时,用最小二乘法将难以获得期望的直线(即能拟合 ...
- Apahce映射网络路径
要点有两个: 1. 要使用全路径,不要使用映射的网络驱动器.2. 路径之间用斜杠/,不要用反斜杠\. Alias /weili.mobile "//vmware-host/Shared Fo ...
- NYOJ 123 士兵杀敌4-树状数组的插线求点
士兵杀敌(四) 时间限制:2000 ms | 内存限制:65535 KB 难度:5 描述 南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战(编 ...