(Tiled官方文档翻译)第六节:自定义属性_慢行的狮子的博客-程序员秘密

技术标签: 类型图块  预定义属性  图块属性继承  Tiled官方手册翻译  自定义属性  添加属性  

六、自定义属性

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

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

属性窗口
属性窗口

6.1 添加属性

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

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

添加属性对话框
添加属性对话框

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

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

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

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

6.3 Predifining Properties(预定义属性)

6.3.1 General Setup(通用设置)

        通常情况下,你只需要在你的游戏中使用有限的对象类型集,每一个对象类型都有一固定的可以属性集,拥有特定的类型和默认值。为了节省你的时间,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设置正确的对象类型的定义。(待斟酌)

 

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

    加油,共勉。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jakera/article/details/88948243

智能推荐

Caffe学习(八) unbutun18.04下配置caffe-ocr_caffe transpose_mqyw29995的博客-程序员秘密

Caffe学习(八) unbutun18.04下配置caffe-ocr鉴于https://github.com/senlinuc/caffe_ocr没有linux版本,这里记录下如何实现window版本转linux版本准备阶段https://github.com/senlinuc/caffe_ocrhttps://github.com/BVLC/caffe安装caffe这里主要是在unbutun上安装caffe版本,不做过多叙述移植过程整体过程剖析caffe_ocr主要包含几个点:1

JS--JavaScript提交表单(submit事件)、重置表单、取消默认提交表单(单击按钮、回车)_吴声子夜歌的博客-程序员秘密

提交表单使用< input > 或 < button >标签都可以定义提交按钮,只要将type属性值设置为“submit”即可,而图像按钮则是通过将 < input >的type属性值设为“image”。当单击按钮或图像按钮时,就会提交表单。submit事件类型仅在表单内提交按钮,或者在文本框中输入文本时按回车键触发。示例1:单击【提交】按钮后,触发sub...

Ethernet phy调试记录_以太网phy调试_唐大大鹏的博客-程序员秘密

Ethernet phy调试记录1,phy介绍1.1 IEEE标准phy接口寄存器0~15寄存器是标准的寄存器,每一个都有特定的意义,有些特定的也不按照这个来。2,phy驱动流程1.0 读取id以适配对应的phy驱动1.1 初始化配置配置延时,是否自动协商等1.2 获取phy当前的速度、link状态可以是如下这种获取link,也可以强制告诉mac当前phy的速度link状态...

通用计数器的检定方案_ay18991283724的博客-程序员秘密

通用计数器是一种具有多种测量功能,多种用途的电子计数器。基于通用计数器JJG349-2014检定规程中的要求,设计了一套完整的符合于检定规程要求的软硬件设备,本文主要对通用计数器的检定项目,检定所需设备,检定方案,检定环境及检定方法做了详细的描述。 通用计数器可以测量频率,周期,时间间隔,频率比,累加计数,计时等,配上相应插件还可以测相位,电压等,其基本工作原理是以适当的逻辑电路,在预定的标准时间(闸门时间)内累计待测输入信号的振荡次数,或在待测时间间隔内累计标准时间(时基)信号的个数,进行频率、...

架构设计_☆MOON的博客-程序员秘密

躬耕8年iOS 前京南互联网大厂研发-大民哥带给你认识大厂架构设计的方法论,关于架构设计,如有疑问欢迎留言讨论

随便推点

微信小程序云开发云托管踩坑_cloud.callcontainer:fail cloud.callcontainer:fail _bubbleTg的博客-程序员秘密

微信小程序云开发云托管踩坑原文:https://www.yuque.com/bubbletg/amco6x/al4wyy好久好久没做小程序了,今天来重写以前的项目,发现又一个云托管功能,不知道什么时候出来的,于是体验一下。安装官网配置,遇到两个问题。errMsg: cloud.callContainer:fail Error: envId must be provided; at cloud.callContainer api;2.No service endpoints found. For

php cookie突然没,php – 浏览器:刷新时Cookie丢失_何大胖 PIOPIOHE的博客-程序员秘密

我在Chrome浏览器中遇到了我的应用程序的奇怪行为(其他浏览器没问题).当我刷新页面时,cookie正在正确发送,但间歇性地浏览器似乎没有在一些刷新时传递cookie.这是我设置我的cookie的方式:$identifier = / some weird string /;$key = md5(uniqid(rand(), true));$timeout = number_format(time...

Eclipse配置Maven及setting文件解释_eclipse setting.xml_彧卿丶的博客-程序员秘密

  1、eclipse配置Maven。Eclipse上配置Maven主要有以下几个步骤:1.官网下载Maven压缩包,解压2.配置环境变量3.设置Maven的本地仓库4.Eclipse中添加Maven设置 具体的操作细节如下:       第一步下载Maven直接度娘。并解压。 配置环境变量:点击计算机属性--->高级设置--->环境变量。添...

React实战-如何在ReactJs中调用Google、Baidu地图_react使用google地图要收费?_loveu2000000的博客-程序员秘密

React实战-如何在ReactJs中调用Google、Baidu地图在这个互联网时代,对地图的运用已经成为Web、移动各类应用的必选项。国内外各大地图应用提供商均有开放的Api供大家使用,当然更具使用的功能会提供付费版和免费版,如果仅仅只是小的应用或者练手,完全可以调用其免费版。调用的方式也很简单,跟你调用其他的第三方库类似。但是由于ReactJs的实现方式存在一些特殊性,其调用Google

mysql数据库语句q_sql 语句备忘(qbit)_前行者林工的博客-程序员秘密

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。添加一个自增ID字段ALTER TABLE tblname ADD COLUMN csmid COUNTER (0, 1)access 创建一个有自增字段的表CREATE TABLE tblname(id auto...

读取csv文件并生成分析图形_y15518325965的博客-程序员秘密

# coding:utf-8import pandas as pd import numpy as np import matplotlib.pyplot as plt #读取csv文件中的数据data = pd.read_csv('FoodFacts.csv')#分析各个国家食物中食品添加剂种类个数#1.处理数据#删除空数据# data = data.dropna()...

推荐文章

热门文章

相关标签