博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Learning Cocos2d-x for XNA(2)——深入剖析Hello World
阅读量:4968 次
发布时间:2019-06-12

本文共 1807 字,大约阅读时间需要 6 分钟。

如何部署cocos2d-x for xna的VS模板,可以参考一下

当我们新建一个Project后,Visual Studio会创建两个工程,一个用做程序,另一个用做程序的内容Content(称内容管道)。

很显然,这就是XNA的基本框架。

第一个工程文件主要是游戏的代码逻辑部分,另一个主要是存放游戏的资源(文字、图像、音频等媒体文件)。

Cocos2d-x创建的初始模版,运行一下,会出现经典的Hello World。

如果初始模版编译不成功,可以参考上面提及的相关文章。

既然cocos2d-x for xna是在xna框架的基础上开发的,那么XNA中窗口程序文件Game.cs在引擎中同样存在。下图很清晰地描述了XNA的框架流程。

即使你不是很了解,对你后面学习引擎的使用,影响也不是很大,当然熟悉更好。注意的是XNA框架可以看作是一个无限循环程序,就是一个图帧动画地不断呈现的过程。

XNA由窗口程序和主程序组成,XNA的窗口程序在Game1.cs文件中,类名为Game1,主程序在Program.cs文件中Program类中。

Program.cs文件中,主要建立Game1类对象并运行方法Run。Run方法将反复调用Update和Draw方法。

using System;namespace LearningCocos2d_xForXNA{#if WINDOWS || XBOX    static class Program    {        ///< summary>        /// The main entry point for the application.        ///< /summary>        static void Main(string[] args)        {            using (Game1 game = new Game1())            {                game.Run();            }        }    }#endif}

实例化Game1,当前类中只有主要的三个方法:构造函数Game1()、

内容管道加载LoadContent()和修改渲染参数Update()。Draw方法让游戏组件Component实现,在构造函数Game1()中实现了。

其中要注意的是其中的AppDelegate类,在文件夹Classes中,引擎希望我们将代码写到这个文件中。AppDelegate类继承CCApplication,而且CCApplication继承DrawableGameComponent,继而继承GameComponent类。GameComponent类为所有XNA Framework游戏组件的基类。

AppDelegate类还是挺重要的,默认下有五个方法。

applicationDidFinishLaunching方法终于看到了Cocos2d-x熟悉的两个角色(CCDirector和CCScene)。

applicationDidFinishLaunching方法中可实现游戏的起始页面。

不难解释,根据上节中成员关系图中,CCDirector和CCScene实现了。

其中LearningCocos2d_xForXNAScene为新建项目的名称,该类默认下在文件HelloWorldScene.cs中。在LearningCocos2d_xForXNAScene类中,该类继承CCLayer类。

其中scene()方法在AppDelegate类中实现了调用,实现CCScene对象,将LearningCocos2d_xForXNAScene(CCLayer)对象addChild到CCScene对象场景中。

在LearningCocos2d_xForXNAScene中init()方法中实现CCLayer层的内容。

HelloWorld最终在CCLayer层中实现。

HelloWorld实现基本流程最后用一张图总结

著作权声明:本文由 原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!

转载于:https://www.cnblogs.com/suguoqiang/archive/2013/01/19/2867304.html

你可能感兴趣的文章
UVALive 6906 Cluster Analysis 并查集
查看>>
Union-find 并查集
查看>>
图的深度优先遍历
查看>>
记事本 写字板
查看>>
二分查找及其变种
查看>>
字符编码与文件操作
查看>>
Problem P(方格移动)
查看>>
three.js学习笔记 (2) -- 基于getImageData和three.js的粒子化图形
查看>>
AsyncTask类
查看>>
115个Java面试题和答案——终极列表(上)
查看>>
C#编程(四十三)----------Lambda表达式
查看>>
没有dev-server.js文件,如何进行后台数据模拟?
查看>>
eclipse 字体、背景、自动提示设置
查看>>
Android无线测试之—UiAutomator UiScrollable API介绍六
查看>>
Python输入输出练习,运算练习,turtle初步练习
查看>>
第十一篇 logging模块
查看>>
C - Wandering Robot(ZOJ 4115)
查看>>
解决动态连通性——并查集
查看>>
SQLServer之修改视图
查看>>
Java 概述
查看>>