引擎演示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 ); }
效果图: