CLEngine
项目介绍
基于MonoGame开发的游戏编辑器
软件架构
MVVMLIGHT实现视图与逻辑分离
WPF高性能界面
当前功能
自动定位和锚定系统,无论屏幕大小如何,都可以轻松放置元素。
捕获和响应用户与UI交互的事件系统
智能段落和标题,具有多行文本,自动换行,轮廓和其他文本效果
面板(用于小部件的框架容器),内置皮肤和拖动功能
复选框和单选按钮
光标渲染
图像和图标小部件(附带40多个内置图标)
滚动条和动态内容的列表
滑快和进度条
用户文本输入的文本框 - 支持多行,自动换行,滚动条
PanelTabs可轻松创建多图表面板
工具提示文字
消息框
样式表和主题,易于扩展
锁定,禁用,阴影和其他基本UI效果和状态
全局缩放属性,以支持不同的屏幕大小
应用转换矩阵
提供了一个通用游戏对象系统,您可以在其中附加/分离组件。
计时器
TiledMap
粒子系统
场景管理器
音频管理器
提供简单的API以在磁盘上存储与配置相关的数据(播放器首选项等)
用于从位于特殊游戏文件夹中的文件中编写和读取可序列化对象。 如:动态读取和写入游戏文件
提供诊断和调试数据
Bullet3D库
刚体。
运动体。
静态体。
碰撞检测和射线投射。
自定义插件
自定义组件
引擎提供
动画 - Animations
使用Textures和Sprites,我们可以导入Sprite Sheets,在同一个文件上maped图像集合,并通过SpriteBatch在屏幕上绘制它们
位图字体 - BitmapFonts
使用BMFont工具生成的位图字体用于代替内置SpriteFont的方法之一
相机 - Cameras
相机的目的是创建一个转换矩阵,改变精灵批处理的渲染方式
集合 - Collections
集合是对C#集合的扩展,更适合游戏使用
碰撞 - Collisions
基于2D网格的碰撞系统
资源编译 - ContentPipline
资源 - Content
实体 - Entities
Entities包是一个基于Artemis的现代高性能实体组件系统
图形 - Graphics
包含用于生成动态几何和批处理绘制调用的扩展
界面 - GUI
输入 - Input
对象池 - ObjectPooling
对象池是一种优化模式, 在某些情况下,它通过重用对象而不是按需为它们分配内存来提高性能。 在C / C ++中,对象池提供的是一个避免内存碎片的解决方案。 在C#中,由于垃圾回收,我们不必担心内存碎片。 但是,在CPU速度较慢且垃圾收集器较简单的移动设备上我们还是特别需要对象池。
粒子 - Particles
高性能粒子系统
场景图 - SceneGraphs
含一个场景图(树)系统
场景 - Screens
ScreenGameComponent管理各个Screen对象
序列 - Serialization
序列化助手
地图 - Tiled
加载和渲染使用Tiled Map Editor创建的地图
缓动 - Tweening
基于补间的动画的类扩展
未来实现功能
GPU粒子系统
LoD渲染器
物理特性材料
注意事项
仅在Windows上测试过
理论上它应该适用于MonoGame支持的任何平台,但它可能需要对某些设备进行一些调整
文本输入非常弱。不支持高级文本编辑以及复制和粘贴,选择等内容。因此,如果您的项目需要大量文本编辑,则可能需要对文本输进行一些代码编写
适用于鼠标/触摸屏。 它目前不是为仅键盘/操纵杆输入而设计的(例如,它不支持标签导航等)
安装教程
下载项目
安装Fonts下所有字体
安装Tools下所有的文件
还原NuGet包
重新生成项目
如果遇到任何问题,可提交issue
参与贡献
Fork 本项目
新建 feature_xxx 分支
提交代码
新建 Pull Request
参与项目将在游戏贡献名单中标注,对于提交重大更新将划为 CLEngine 工作成员。
常见问题
为什么创建游戏后提示丢失资源
检查编辑器下是否存在Content文件夹,是否拥有内容,如果没有内容手动打开 Content.mgcb 进行编译生成Content文件,如果遇到编译失败问题请查看 安装教程