[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控制台 ...
随机推荐
- Maven如何手动添加依赖的jar文件到本地Maven仓库
大家肯定遇到过想在pom文件中加入自己开发的依赖包,这些包肯定是不是在Maven仓库(http://repo1.maven.org/maven2/)的.那我们怎么将那些不存在Maven仓库中的包加入到 ...
- AI
- 要件审判九步法及其基本价值 z
要件审判九步法及其基本价值 发布时间:2014-12-24 14:29:05 作者介绍 邹碧华,男,1967年出生于江西奉新,毕业于北京大学法学院,获法学博士学位.上海市高级人民法院副院长.2006年 ...
- sqlserver函数大全
一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果.这些要求包括:执行计算与数学运算.转换数据.解析数值.组合值和聚合一个范围内的值等. 下表给出了T-SQL函数的类别和描 ...
- proxmox3.2安装FreeBSD或者FreeNAS注意事项
别的不多说了,白般尝试,终于安装成功,原来硬件要如下设置才行,如下: 1)内存要开大点,512M 800M都不行,最后开导2G才可以,如下: 2)kvm硬件虚拟化一定要选择“否”,默认是“是”,这里 ...
- .NET技术+25台服务器怎样支撑世界第54大网站(转)
[编者按]StackOverflow是一个IT技术问答网站,用户可以在网站上 提交和回答问题.当下的StackOverflow已拥有400万个用户,4000万个回答,月PV5.6亿,世界排行第54.然 ...
- C++学习10 static静态成员变量和静态成员函数
一般情况下,如果有N个同类的对象,那么每一个对象都分别有自己的成员变量,不同对象的成员变量各自有值,互不相干.但是有时我们希望有某一个或几个成员变量为所有对象共有,这样可以实现数据共享. 可以使用全局 ...
- [Java] 读写字节数据,过滤流DataOutputStream和DataInputStream
package test.stream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io ...
- JAVA 中关于String的特性
一.初始化String的两种方式 String str1 = "hello"; String str2 = new String("hello"); 第一种方式 ...
- Eclispe 安装PropertiesEditor插件
一个不错的编写properties文件的Eclipse插件(plugin),有了它我们在编辑一些简体中文.繁体中文等Unicode文本时,就不必再使用native2ascii编码了.您可以通过Ecli ...