zoukankan      html  css  js  c++  java
  • Content Factory:辅助 MonoGame 游戏开发

    Content Factory 是一款辅助 MonoGame 游戏开发的工具。它提供素材管理的多项功能,包括编译素材、编辑自定义数据等,并能同时应用多个游戏平台。

    项目设置

    选择要创建游戏项目的平台,勾选“生成”,然后设置“项目目录”(必须),有两种方法设置:

    1、直接生成素材到最终的游戏目录,这里可以设置游戏程序所在目录。这种方法适用Windows等PC平台。

    2、生成素材到游戏项目目录,这和MonoGame默认的方式相同,需设置游戏项目来配合使用。这种方法适用所有平台,而Android等移动平台必须用这种方法:

    a)假设新建游戏项目TestGame,设置“项目目录”为游戏项目文件所在目录,即TestGame.csproj所在的目录。

    b)设置“游戏项目”为游戏项目文件,即TestGame.csproj。

    c)在TestGame项目中删除Content文件夹,所有素材管理都由本软件来完成。

    d)在添加、删除素材,或更改素材或目录名称时,通过菜单“编辑-更新游戏项目”(或工具栏上相应按钮)来更新TestGame项目(需要先设置工具栏上的组合框,选择要操作的游戏平台)。如果正在使用Visual Studio编辑TestGame项目,会弹出“检测到文件修改”对话框,点击“重新加载”即可同步素材项目(做这个软件的时候是根据Windows平台的项目来设计的,现在发现每个平台的项目文件的结构不一样,方法二暂时不可用,用方法一然后在项目中手动更新素材):

    素材管理

    素材管理的功能都在菜单“编辑”下,包括编辑创建、导入、替换、删除和生成功能,以及文件夹创建和删除功能。

    1、导入素材可以选择多个本地文件,对于不支持(找不到合适的导入程序)的文件类型会自动忽略。导入素材需先选择一个目录或素材,如果选择目录,导入的素材都将添加到该目录下;如果选择素材,导入的素材将添加到该素材同目录下。

    2、替换素材可以重新选择本地文件,保留素材的设置(名称、压缩和导入、处理程序),要求替换的文件是同类素材,比如都是图像文件。

    3、新建根目录,是指创建一个和Content目录同级的目录,这里Content目录是新建项目后默认创建的根级目录,这是为了和Xna或MonoGame统一。

    4、生成素材功能,需要先选择要操作的游戏平台(工具栏上的组合框来设置),并选择一个目录或素材,如果选择目录,将对目录下所有素材都执行生成操作,如果勾选工具栏上的“生成素材时包括子级素材”,将遍历所有子级目录。默认情况下标记“已生成”的素材是不会执行生成操作,如果因为特殊原因(比如生成的.xnb文件在资源管理器中被勿删除)需要生成,可以勾选工具栏上的“强制重新生成素材”。

    5、任何本软件管理的素材,都会监视其文件是否被修改,如果被其它软件编辑,本软件会将其标记为“未生成”。同时还可以通过双击素材(或通过菜单“编辑-编辑”)来打开系统默认的编辑器进行编辑。

    自定义数据

    Xna/MonoGame提供自定义类型的序列化,通过Xml文件来实现。假设定义一个英雄类,结构如下

     1 namespace TestGame
     2 {
     3     [Serializable]
     4     public class HeroData
     5     {
     6         public string Name { get; set; }
     7         public int Health { get; set; }
     8         public float Speed { get; set; }
     9         public float Power { get; set; }
    10         public float Magic { get; set; }
    11         public List<WeaponData> Weapons { get; set; }
    12         public List<SpriteData> Sprites { get; set; }
    13     }
    14 
    15     public class WeaponData
    16     {
    17         public string Name { get; set; }
    18         public float Attack { get; set; }
    19         public float Defense { get; set; }
    20     }
    21 
    22     public class SpriteData
    23     {
    24         public string Name { get; set; }
    25         public float Speed { get; set; }
    26         public float Magic { get; set; }
    27     }
    28 }

    注意:

    1、需要在本软件中编辑的类,必须添加“Serializable”特性。

    2、不要使用数组类型属性,本软件的编辑器在编辑数组属性时会出错,可以使用List类型来替代。

    3、属性应使用基础类型,如:int、float、string以及枚举等,不要用class属性,因为本软件无法编辑类,建议改成List,然后只添加一项。

    编写好后,重新生成TestGame项目,把生成的程序拷贝到本软件的程序目录,然后重启软件(软件启动时会自动搜索程序目录里所有的程序集)。通过菜单“编辑-创建自定义数据”(或工具栏相应按钮)来创建该类型数据:

    创建数据后,会要先保存到本地,并将该素材添加到当前选定的目录。接下来会弹出数据编辑对话框(双击.xml类型的素材都会使用该编辑器进行编辑,而不是系统默认的Xml编辑器):

    大部分操作和Visual Studio里的属性视图类似。编辑完成后,通过菜单“文件-保存”,可以生成后断点看一下:

    扩展素材管道

    将程序集放到软件目录,软件会自动查找导入、处理程序(还有上文提到的自定义类型)。

    已经准备开源到Codeplex:https://contentfactory.codeplex.com/

  • 相关阅读:
    C# .NET 支付宝IOT小程序AES密钥解密
    aws平台中为ec2实例添加双网卡
    Python使用lxml模块和Requests模块抓取HTML页面的教程
    CentOS下安装PHP Oracle数据库扩展
    如何在Ubuntu 16.04上安装配置Redis
    zabbix参考文档
    docker学习网站
    设置Linux打开文件句柄/proc/sys/fs/file-max和ulimit -n的区别
    MySql按字段分组取最大值记录 [此博文包含图片]
    dokcer使用--link 让容器相连
  • 原文地址:https://www.cnblogs.com/huobilie/p/3150243.html
Copyright © 2011-2022 走看看