先来看一下目录结构:

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结构分析的更多相关文章

  1. [Cocos2d-x for WP8学习笔记] HelloWorld

    Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于Cocos2d-iphone,支持 WOPhone, iOS 4.1, Android 2. ...

  2. (转)Android学习笔记②——HelloWorld的创建已经基本知识

    开发第一应用 可以开发属于自己的应用,是否有点小激动?好吧!让我们开始,首先点击Start a new Android Studio Project创建工程:接下来需要输入应用名称(第一个字母要大写) ...

  3. WP8 学习笔记(001_环境配置)

    Step 1  WP8 的开发要求64位操作系统,Windows 8及以上版本,需要激活版,建议网上买一个注册码.详见安装双系统. Step 2 安装好系统并已经激活之后,需要安装Windows Ph ...

  4. Struts2学习笔记 - HelloWorld总结

    相信网上已经有很多关于struts2的HelloWorld可参考,我这里就不重复了,没个学struts2的人都会做过很多个HelloWorld,而我这里就总结一下一个简单的HelloWorld 我在一 ...

  5. [Cocos2d-x for WP8学习笔记] 获取系统字体

    在Cocos2d-x for WP8较新的版本中,获取字体这一块,在wp8下默认返回了null,只能内嵌字体文件解决. 其实可以通过下面的方法获取系统的字体文件 CCFreeTypeFont::loa ...

  6. [Cocos2d-x for WP8学习笔记] 一些基本概念,建立自己的启动界面

    流程控制:场景是相对不变的游戏元素集合,游戏在场景间的切换就是流程控制. 场景.层和精灵:它们是不同层次的游戏元素.通常,场景包含层,层包含精灵,场景与层是其他游戏元素的容器,而精灵是展示给玩家的图形 ...

  7. WP8学习笔记:如何在页面显示前自动转向到其他页面

    在本次修练开始之前,我们除了预设的 MainPage页面外,也另外新增了一个 Login页面,如下图示: MainPage.xaml页面长这样 Login.xaml页面长这样 因为我们的需求是要求使用 ...

  8. WP8 学习笔记(002_应用程序结构)

    下图是微软官方给出的WP8应用程序执行顺序: 在App.XAML.CS中,有程序主要步骤的函数 // 应用程序启动(例如,从“开始”菜单启动)时执行的代码 // 此代码在重新激活应用程序时不执行 pr ...

  9. Android开发 学习笔记——HelloWorld

    Day01 1.java开发过程———————————————不建议先用ECLIPSE写代码,因为它的函数式自动生成的,不利于找寻编程手感打开记事本写完程序后,修改扩展名为.java然后在DOS控制台 ...

随机推荐

  1. sql server 2008 评估期已过期如何升级

    1, http://wenku.baidu.com/view/49c88e2ab4daa58da0114af4.html 2, #BYTECH# ##

  2. ylbtech-dbs-m-QQ邮箱

    ylbtech-dbs:ylbtech-dbs-m-QQ邮箱 -- =============================================-- DatabaseName:QQ-Em ...

  3. 如何搭建Struts2环境

    1.解压下载到的struts-2.3.16压缩包. 2.将struts2-blank\WEB-INF\lib 下的jar包复制到Eclipse项目下的libs文件夹下. 3.struts-2.3.16 ...

  4. Package 'chkconfig' has no installation candidate

    Chkcofig不再适用于Ubuntu系统,可用类似的软件sysv-rc-conf进行替换: Chkconfig is no longer available in Ubuntu. Chkconfig ...

  5. Excel粘贴到textarea换行符替换

    复制到→ Excel列表的内容复制到textarea中后,前台取到的文本是这样的: chrome监视显示 console.log输出 现在需要将excel中的每行数据拼接起来用“;”隔开,方法如下: ...

  6. mssqlserver 查询数据库表结构语句

    查询指定表结构的表名.列名.类型.说明.字段长度 select o.name as tableName,c.name as columnName,t.name as columnType,p.valu ...

  7. Codeforces 626G Raffles 【贪心】【线段树】

    题意: 给n个奖池,t张彩票,q次操作. 每个奖池的奖金为pi. 每个奖池现有的彩票的数量为ai,保证ai>=1: q次操作,每次有两种,第i个奖池的现有彩票数量加一,或减一. 不允许投票的数量 ...

  8. iOS 中关闭键盘方法

    在 iOS 程序中当想要在文本框中输入数据,轻触文本框会打开键盘.对于 iPad 程序,其键盘有一个按钮可以用来关闭键盘,但是 iPhone 程序中的键盘却没有这样的按钮,不过我们可以采取一些方法关闭 ...

  9. (转)C# MD5

    本文原地址:http://blog.csdn.net/zhoufoxcn/article/details/1497099 作者:周公 代码如下: using System; using System. ...

  10. ARM开发板挂载U盘

    ARM开发板运行Linux系统后,插入U盘,通过串口打印系统识别到U盘如下: 系统识别U盘盘符为sda4 那么需要挂载后才能操作U盘:挂载命令 mount -t vfat /dev/sda4 /mnt ...