六、自定义属性

        Tiled一个主要的优势在于可以给它的基础数据结构添加自定义属性。这种方式可能包含了许多种形式的自定义信息,这些信息可能会在你集成Tiled地图的框架使用到。

       自定义属性在属性窗口展示。这个窗口是对上下文环境敏感的,通常显示最后一个被选择对象的属性。在图块集上对应图块或者在对象层上代码对象,它还可以支持多选。

(Tiled官方文档翻译)第六节:自定义属性
属性窗口

6.1 添加属性

当你添加一个属性时(点击属性窗口的左下角),你会被提示添加它的名称和属性。Tiled现在支持以下几种基础的属性类型:

  1. String (任意文本,包含多行文本)
  2. Float(浮点数字)
  3. Int(整形数字)
  4. Bool(true或者false)
  5. File(文件的相关路径)
  6. Color(32位的颜色值)

(Tiled官方文档翻译)第六节:自定义属性
添加属性对话框

        属性类型会在属性窗口的自定义编辑器中被用到。选择数字或者boolean类型可以避免在输出JSON或者Lua时被引用。

6.2 Tile Property Inheritance(图块属性继承)(Tiled1.0特性)

        当你向一个图块添加自定义属性后,当该图块的实例化对象被选中后,这些属性也会被 看得见。这样使得每一个对象可以很方便关联和复写属性。这在结合Typed Tiles(类型图块)时会特别好用。(待斟酌)

       继承属性会以灰色的方式展示(对文本颜色无效),相反,复写的属性会以黑色的方式显示(通常是文本颜色)。

6.3 Predifining Properties(预定义属性)

6.3.1 General Setup(通用设置)

        通常情况下,你只需要在你的游戏中使用有限的对象类型集,每一个对象类型都有一固定的可以属性集,拥有特定的类型和默认值。为了节省你的时间,Tiled允许基于对象的“类型”成员变量进行预定义。你可以通过:视图菜单==》对象类型编辑器,打开对象类型编辑器。

(Tiled官方文档翻译)第六节:自定义属性
添加属性对话框

        默认地,Tiled存储用户设置的这些对象类型。但是,如果你想将你工程下的这些对象类型进行分享,你可以导出你的对象类型或者改变对象类型文件的存储位置。一个简单的使用自我解析内容的XML或JSON格式的文件被用来存储你的对象类型。

       颜色不仅仅会影响各种形状对象的渲染,在你给对象命名时还会被显示在标签中。

        为了在属性窗口可以显示预定义的属性,你所需要做的是在内装的“类型”属性中输入类型名称。通常这是为了告知你的引擎,你现在想做些什么。(待斟酌)

6.4 Typed Tiles(类型图块)(Tiled1.0开始)

       如果你使用到了图块对象,你可以给图块设置类型来避免给每个实例进行设置。给图块设定类型后,当图块被选中后,可以使预定义属性可见,允许重写类型值。当然,当图块对象实例选中后,可以对可见的值进行复写。

        一个定义自定义属性类型的使用例子如:“NPC”、“Enemy”或者“Item”的属性设置为“名称”、“健康”、“体重”。当这些图块代表特定的实体时,你可以给它们设置特定的值。在你将图块按照对象的方式放置时,你可以根据你的需要去复写这些值。

 

6.5 未来的拓展

这里有几种自定义属性类型可能在将来的版本添加:

  1. Enumerations(枚举):你可以定义所有的可能类型,并且可以在下拉对话框进行选择。
  2. Object references(对象引用):允许链接其他的对象,而且Tiled能对链接进行展示。
  3. Array properties(数组属性):允许属性拥有一列的数据。
  4. Dictionary Properties(字典属性),允许属性包含任意其他的数字属性作为子属性。

 

       如果能够对属性值进行限制也是一件比较好的事情,例如string属性的长度,或者数字属性的最大\最小值 。

       如基于对象类型的预定义类型不同的是,我希望能够支持对于所有数据类似的预定义。所以,定义自定义属性将会对地图、图块集、图层等等同样有效。

       最后,预定义属性能够很好的给工程支持。之后,你可以切换不同的工程,或者在一个存在的工程开始,而不需要再去给Tiled设置正确的对象类型的定义。(待斟酌)

 

    由于边学边翻译,所以有些知识点理解的不透,翻译不到位,请大家多多指导。

    加油,共勉。

分类:

技术点:

相关文章: