引擎演示DEMO是一个叫做SandBox的模块,它负责环境的创建,以及众多例子的扫描,切换.ImageFontToy作为一个简单例子,第一个学习.
每一个Toy都是一个独立的模块,类似常规C++的一个库.
模块定义
<ModuleDefinition
// 模块编号
ModuleId="ImageFontToy"
// 模块编号
VersionId="1"
// 描述信息
Description="Demonstrates creating an sprite that renders text."
// 依赖资源(ToyAsset为所有例子的公共资源所在)
Dependencies="ToyAssets=1"
// 模块归类,便于查找,统计
Type="toy"
// 标签索引
ToyCategoryIndex="3"
// 主脚本
ScriptFile="main.cs"
// 启动函数
CreateFunction="create"
// 销毁函数
DestroyFunction="destroy"/>
代码列举
function ImageFontToy::reset( %this )
{
// 场景清空,做好准备
SandboxScene.clear();
// 创建ImageFont对象,ImageFont继承自SceneObject,是场景对象
%object = new ImageFont();
// 通常创建并且配置好对象后再加入场景,这样有最佳的执行效率.
// 字体资源设置
%object.Image = "ToyAssets:Font";
// 设置位置
%object.Position = "0 0";
// 我们不需要手动设置字体对象的尺寸,因为他的尺寸会根据对齐方式,字体原本大小和文本自动变化
// 字体尺寸设置,不是像素,是基于坐标轴的尺寸(不了解)
%object.FontSize = "2 2";
// 间距
%object.FontPadding = 0;
// 文本对齐方式
%object.TextAlignment = "Center";
// 文本内容
%object.Text = " !#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`~abcdefghijklmnopqrstuvwxyz";
// 动作设定为自旋转
//%object.AngularVelocity = 30;
// 对象设置为动态类型,默认为静态,静态类型对于物理引力效果无效
%object.BodyType = "dynamic";
// 加入到场景中
SandboxScene.add( %object );
}
效果图: