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文件来实现。假设定义一个英雄类,结构如下

 namespace TestGame
{
[Serializable]
public class HeroData
{
public string Name { get; set; }
public int Health { get; set; }
public float Speed { get; set; }
public float Power { get; set; }
public float Magic { get; set; }
public List<WeaponData> Weapons { get; set; }
public List<SpriteData> Sprites { get; set; }
} public class WeaponData
{
public string Name { get; set; }
public float Attack { get; set; }
public float Defense { get; set; }
} public class SpriteData
{
public string Name { get; set; }
public float Speed { get; set; }
public float Magic { get; set; }
}
}

注意:

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

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

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

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

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

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

扩展素材管道

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

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

Content Factory:辅助 MonoGame 游戏开发的更多相关文章

  1. 博主有偿带徒 《编程语言设计和实现》《MUD游戏开发》《软件破解和加密》《游戏辅助外挂》《JAVA开发》

    <考研专题>操作系统原理 理论解答:8K 实战 1.5W CPU设计 理论解答:1W 实战 2.5W <编程语言设计和实现>初窥门径<5K>:编译原理.编译设计小试 ...

  2. OUYA游戏开发核心技术剖析大学霸内部资料

    OUYA游戏开发核心技术剖析大学霸内部资料 试读地址:http://pan.baidu.com/s/1ntuql8t 介绍:本教程是一本进阶级的教材,它可以让读者在了解.熟悉了OUYA设备的基础上,开 ...

  3. Unity3D游戏开发初探—2.初步了解3D模型基础

    一.什么是3D模型? 1.1 3D模型概述 简而言之,3D模型就是三维的.立体的模型,D是英文Dimensions的缩写. 3D模型也可以说是用3Ds MAX建造的立体模型,包括各种建筑.人物.植被. ...

  4. [Canvas前端游戏开发]——FlappyBird详解

    一直想自己做点小东西,直到最近看了本<HTML5游戏开发>,才了解游戏开发中的一点点入门知识. 本篇就针对学习的几个样例,自己动手实践,做了个FlappyBird,源码共享在度盘 :也可以 ...

  5. Egret白鹭H5小游戏开发入门(一)

    前言: 好久没更新博客了,以前很多都不会,所以常常写博客总结,倒是现在有点点经验了就懒了.在过去的几个月里,在canvas游戏框架方面,撸过了CreateJS,玩得了Egret,又学过PIXI.js. ...

  6. HTML5游戏开发引擎,初识CreateJS

    CreateJS为CreateJS库,可以说是一款为HTML5游戏开发的引擎.打造 HTML5 游戏,构建新游戏,提供构建最新 HTML5 的技术.你可以通过这个网站学习如何构建跨平台和跨终端游戏.这 ...

  7. Html5 Egret游戏开发 成语大挑战(八)一般性二级页面处理

    在游戏中,我们一般会有各种各样的二级页面,比如游戏暂停界面或者游戏结束界面,这些界面组成了对玩家交互主要手段,在游戏开发中,对于这些界面的coding组织是非常有学问的,如果倒退到十年前,游戏开发的老 ...

  8. Html5 Egret游戏开发 成语大挑战(一)开篇

    最近接触了Egret白鹭引擎,感觉非常好用,提供了各种各样的开发工具让开发者和设计者更加便捷,并且基于typescript语言开发省去了很多学习成本,对于我们这种掉微软坑许久的童鞋来说,确实很有吸引力 ...

  9. OpenNI结合Unity3D Kinect进行体感游戏开发(转)

    OpenNI结合Unity3D Kinect进行体感游戏开发(转) 楼主# 更多 发布于:2012-07-17 16:42     1. 下载安装Unity3D(目前版本为3.4)2. 下载OpenN ...

随机推荐

  1. iOS开发工程师面试知识点汇总

    1.KVO实现原理 2.内存管理 3.Runtime 4.GCD 5.Block 6.响应者链 7.@peoperty属性特性 8.单元格cell加载图片处理

  2. 干货-iOS、mac开源项目及库,以后我也会持续更新。

    昨晚在网上看的干货,直接分享给大家了,觉得有用的,直接fork吧. https://github.com/Brances/TimLiu-iOS

  3. android 显示意图

    //显示意图 public void enter(View view) { Intent intent = new Intent();//创建一个空的意图 intent.setClassName(ge ...

  4. [eclipse]改项目名称后tomcat连接问题解决方法

    背景:在我们使用eclipse进行项目开发时,有时候会需要修改项目名称,当改动项目名称后发现tomcat启动访问出现问题,使用新的项目名称不可行,使用旧的项目名称却可以.修改web.xml里面的dis ...

  5. android中实现view可以滑动的六种方法续篇(二)

    承接上一篇,上一篇中讲解了实现滑动的第五种方法,如果你还没读过,可点击下面链接: http://www.cnblogs.com/fuly550871915/p/4985482.html 这篇文章现在来 ...

  6. 水溶彩铅的特点&技法运用

    工欲善其事必先利其器!亲爱的同学们都准备好画笔了吗?今天,助助为同学们介绍一下水溶性彩色铅笔的特点,技法运用的基本教程,请仔细看哟! [水溶性彩色铅笔的特点] 能够同时画出像铅笔一样的线条和水彩一样的 ...

  7. Redis的数据类型及操作

    Strings 最简单的类型,一个Key对应一个Value,string类型是二进制安全的.Redis的string可以包含任何数据,如图片或序列化的对象 操作 Set:设置key对应的值为strin ...

  8. hbase常用命令总结

    创建表:表名:csliyb:testuser列族:name 例子:create 'csliyb:testuser','name','age' 添加记录: put 'csliyb:testuser',' ...

  9. maven添加远程私服

    文件放在maven下和..m2下面 <?xml version="1.0" encoding="UTF-8"?>   <!-- License ...

  10. 初识zookeeper(一)之zookeeper的安装及配置

    1.简要介绍 zookeeper是一个分布式的应用程序协调服务,是Hadoop和Hbase的重要组件,是一个树型的目录服务,支持变更推送.除此还可以用作dubbo服务的注册中心. 2.安装 2.1 下 ...