Как мне создать текстовый виджет, поддерживающий простой язык разметки?
Движок Torque имеет приятный язык разметки TorqueML (см. Ниже, скопировано из поста на форуме garagegames). Это позволяет включать некоторую простую информацию о расположении и формате в чистый текст, который можно использовать для создания текстового виджета для помощи или диалогов в игре.
Я хотел бы знать, можно ли предложить наиболее эффективный способ создания / получения той же функции в Haxe (особенно в рамках HaxeFlixel).
Вот информация о языке разметки, доступная в Torque, для справки:
<font:fontName:fontSize> - sets the font and fontsize as indicated. Example: <font:Arial Bold:20>
<tag:???> - not sure what this does
<color:rrggbb> - sets text color in hex format. Example: <color:ff0000> will display red text
<bitmap:filePath> - displays a bitmap image indicated by the file path. Example: <bitmap:demo/client/ui/seperator>
<spush> - saves the current text formatting so that temporary changes to formatting can be made. Used with spop.
<spop> - restores the previously saved text formatting. Used with spush. See the file "3. Gui Editor.hlf" included with the TGE demo for an example of usage.
<sbreak> - not sure what this does
<just:left> - left justify
<just:right> - right justify
<just:center> - center justify
<a:ExternalURL>LinkTitle</a> - inserts a hyperlink into the text which will open the user's browser.
The external URL does not need the "http://" format. Example: <a:www.garagegames.com>Garage Games Website</a>
<lmargin: ##> - sets the left margin
<lmargin%: ##> - sets the left margin (not sure what the % does)
<rmargin: ##> - sets the right margin
<rmargin%: ##> - sets the right margin (not sure what the % does)
<clip:> - not sure what this does
<div:> - not sure what this does
<tab:##(,##,etc)> - sets the tab stops (multiple tabs are separated by commas)
- Breaks the current line and begins a new one.
1 ответ
Решение
В качестве отправной точки в FlxText.hx HaxeFlixel уже доступна элементарная функция, которая позволяет применять простую разметку:
https://github.com/HaxeFlixel/flixel/blob/dev/flixel/text/FlxText.hx#L274