zoukankan      html  css  js  c++  java
  • Learning Cocos2dx for XNA——深入剖析Hello World

    如何部署cocos2d-x for xna的VS模板,可以参考一下Cocos2d-x for WindowsPhone:万丈高楼亦可不需平地起

    当我们新建一个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实现基本流程最后用一张图总结

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

    本是菜鸟,偶做老鸟,略读半卷书,坐井说天阔。大志无所为,海斗量得失,年到老时方恨晚,怒指生不逢时。
     
    分类: Cocos2d-x
    标签: Cocos2d-x
  • 相关阅读:
    js获取浏览器和屏幕的各种宽度高度
    闭包
    原型与原型链
    vuex
    微信小程序天使童装答辩
    vue脚手架本地开发跨域请求设置
    mvvm和mvc
    Vue 中 methods,computed, watch 的区别
    keep-alive
    YII2组件之GridView
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2868127.html
Copyright © 2011-2022 走看看