WOW 板


LINE

看板 WOW  RSS
※ [本文转录自 Programming 看板 #1BSn_Gso ] 作者: wa007123456 (大笨羊) 看板: Programming 标题: [心得] 浅学UI心得 Part2(革新二版) 时间: Thu Feb 11 05:06:23 2010 这是很久以前的文章 我知道有很多地方写错了 但是希望里面(UI入门) 可以放进Part2的部分 感谢.... ※ [本文转录自 WOW 看板] 作者: wa007123456 (大笨羊) 看板: WOW 标题: [心得] 浅学UI心得 Part2(革新二版) 时间: Thu Feb 11 03:04:18 2010 一、前言 今天我们要介绍的是有关外观的部分,一个UI 其实我认为先是从外观做起,然後再开始写内 部的程式码。而魔兽世界的表单,是用一个叫 做XML的标记语言,然完成外观的动作。 二、XML 甚麽是XML? 如果你有学过Html你可以这样想 XML是自己定义标签的意义,而HTML则是帮你 定义好的语法。 例如: <小纸条> <收件人>李四</收件人> <发件人>张三</发件人> <主题>问候</主题> <具体内容>最近可好?</具体内容> </小纸条> 感觉很像HTML,但是只是标签是自行定义。 下面是书的介绍: XML(Extensible Markup Language)可扩展标示语言 XML写法上十分类似HTML,属於SGML字集,继承SGML 自订标签的优点,并且删除一些SGML复杂的部分,功 能上能够弥补HTML的不足,拥有更多的扩充性。 不过,XML并不是编排文件内容,而是描述资料本身 所以他没有HTML的预设标签,事实上使用者需要自己 定义描述资料的标签,例如:定义聊天讯息的<chatroom> <message> <text>和<user>标签。 三、XML的规则 XML文件的撰写规则,其注意事项如下所示: 1.不可以省略结尾标签,保证所有的标签都是成双成对。 2.标签和属性使用小写英文字母。 3.属性值的值需要使用引号""括起来。 四、做一个魔兽世界的XML 在实做魔兽世界的XML之前,我们必须先行定 义这个XML的版本和内容。 一个魔兽世界的基本XML宣告如下: <Ui xmlns="http://www.blizzard.com/wow/ui" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> </Ui> Ui是自行定义的标签,而xmlns则是属性值 其中ns的意思是名称空间(NameSpace) 也就像是C#或是Java那样使用某个名称空间 我们把http://www.blizzard.com/wow/ui的内容里面 定义的标签拿来使用,然後再用xmlns:xsi宣告这文件 的轮廓使用http://www.w3.org/2001/XMLSchema-instance 的轮廓。 五、魔兽世界自行定义标签元件大全 button - 按钮 checkbutton - 核取方块(就是打勾勾的那个元件) colorselect - 颜色选择 cooldown - 快捷键的CD dressupmodel - 更衣室 editbox - 可以输入文字的方块 fontstring - 文字 frame - 版面 gametooltip - 游戏提示 messageframe - 聊天视窗 minimap - 小地图 model - 模组 playermodel - 玩家模组 scrollframe - 可卷动的版面 scrollingmessageframe - 这我不知道跟上面一个的差别 窘 simplehtml - 在这个标签内可以使用一些简单的HTML标签 slider - 卷动滚轮 statusbar - 状态条 tabardmodel - ??? taxirouteframe - ??? worldframe - 可以显示3D物件的版面 uiparent - ??? include - 你可以在加入某些插件需要的东西(toc档案里面没有的) script - 直译 font - 字型样板(只能在UI标签里面使用) texture - 材质样板 (只能在UI标签里面使用) 五、子标签和属性大全 a.属性 name:设定此标签的名称 autofocus:设定此标签是否自动选取 alphamode:透明混合模式 alpha:透明度 bytes:??? checked:是否被勾取 clampedtoscreen : 是否压缩到萤幕上面 defaultvalue :??? drawlayer :??? enablekeyboard :是否接受键盘输入 enablemouse :是否接受滑鼠输入 file:档案位置 font:字型 framestrata :??? hidden:是否隐藏 historylines :??? id:编号 ignorearrows:忽略滑鼠游标 inherits:继承某些元件,继承的元件的 virtual 必须设为 true insertmode:插入模式 justifyh :文字排版 justifyv :文字排版 letters :设定字元的最高数量 maxlines :设定行数的最高数量 maxvalue :设定最高能接受的数值 minimaparrowmodel :??? minimapplayermodel :??? minvalue :设定最低能接受的数值 monochrome :??? movable :设定是否可移动 multiline :设定是否可换行 nonspacewrap :不自动换行 numeric :设定只能输入数字 orientation :??? outline :??? parent : 你可以设定另外一个父物件,例如让按钮能环绕小地图 protected : 设定是否禁止继承 resizable :设定是否可变换大小 scale :缩放大小(不能为0) setallpoints : ??? text :文字 toplevel :??? valuestep :设定滑轮每一个加多少数值 virtual :如果物件还没做好,可以先将他设为虚值。 b.子标签 anchors : 座点,可以是多个位置,每个座点有四个属性 ============================================================================== 1.Point:位置,座点的位置。可以是下列的值: TOP:顶部 BOTTOM :底部 LEFT :左边 RIGHT :右边 CENTER :中间 TOPLEFT :左上 BOTTOMLEFT :左下 TOPRIGHT :右上 BOTTOMRIGHT :右下 2.RelativePoint :和Point一样,只是使用的是继承元件的位置。 3.RelativeTo :通常元件继承对它的父类别,但是你能指定另一个元件使用 与这个属性,给名字作为值。 4.Offset :偏移量 里面有两个属性 x 和 y 如果x变大 物件会往右移,如果y变大 物件会往下移动。反之则左或上。 ============================================================================= attributes:属性标签 backdrop :??? barcolor :施法条颜色标签 bartexture :施法条材质标签 buttontext :按钮文字标签 checkedtexture :核取方块材质标签 color :颜色标签 colorvaluetexture:颜色材质标签 colorvaluethumbtexture:??? colorwheeltexture:??? colorwheelthumbtexture:??? disabledcheckedtexture:关闭核取方块材质标签 disabledfont:关闭字体标签 disabledtexture :关闭材质标签 fontheight :文字高度标签 fontstring :字体字串标签 highlightfont:滑鼠停住时文字字体的标签 highlighttexture :滑鼠停住时材质的标签 hitrectinsets :??? layers:这是用来控制UI能显示范围的标签 normalfont: 预设文字标签 normaltexture :预设材质标签 pushedtextoffset :按下文字,放开时会回到原来样子的标签 pushedtexture :按下材质,放开时会回到原来样子的标签 resizebounds:设定最大最小能缩放范围的标签 scripts:开启直译,下面会是程式码的标签 scrollchild :??? shadow:元件影子的标签 size :设定物件大小的标签 texcoords:材质座标标签 thumbtexture:??? titleregion :??? 六、工欲善其事,必先利其器 在这里我推荐大家下载一个东西,他叫做Notepad++ 下载点:http://tinyurl.com/a3kn6 他支援多种语言,我们的Lua和XML都可以用到它! 他的好处就是会帮你的标签上色,让你看的更清楚 不会写得头昏脑胀。 这是他的官网:http://notepad-plus.sourceforge.net/tw/site.htm 七、做一个按钮到游戏中 首先开启Notepad++,新增一个档案,编码选择UTF-8(这样才支援中文字) 程式语言选择XML,然後就让我们开工吧!! 1.首先要宣告定义文件的内容: <Ui xmlns="http://www.blizzard.com/wow/ui" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> </Ui> 2.之後在里面产生一个Button <Button> </Button> 3.把Button命名一下 <Button name="MyFirstButton"> </Button> 4.接下来我们来选择材质 大小 位置 a. <Button name="MyFirstButton"> <Size> <AbsDimension x="142" y="40"/> </Size> </Button> 设定了一个宽142像素 高40像素的按钮 注意<Size>标签 是<Button>标签的子标签 然後<AbsDimension>又是<Size>的子标签 ps:<AbsDimension>是绝对大小的标签 但是还缺少了材质 和 位置 所以 程式码:http://nopaste.csie.org/d2bf5 这段XML码有点长 重头开始就是 先设定大小 然後给他的座点是中央(CENTER) 偏移量X和Y都是零 <NormalTexture> 是当按钮普通状态的时候的材质 从档案里面找到一个按钮(这范例是找WOW里面预设的) <TexCoords>则是材质座标 file属性可以用来找档案 <PushedTexture>则是当按钮被按下去的时候的材质 <DisabledTexture>则是按钮不能按下去的时候的材质 <HighlightTexture>则是按钮被选取时候的材质 <NormalFont style="GameFontNormal" /> <HighlightFont style="GameFontHighlight" /> <DisabledFont style="GameFontDisable" /> 这个则是告诉按钮三种状态时候的字体 完整XML档则是如下: http://paste.plurk.com/show/170251/ 现在把你的XML载入到UI里面去 如下例: ## Interface: 30300 ## Title: 测试 ## DefaultState: Enabled ## LoadOnDemand: 0 你的XML档案名称.xml 执行游戏 就会看到中间有一个Hello World!的按钮 明天再跟大家介绍 直译 事件 还有Wow API 跟更多XML ====================================Part2 结束================================ --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.226.9.129
1F:推 anjohn:推,但是我看不懂… 02/11 03:06
※ 编辑: wa007123456 来自: 125.226.9.129 (02/11 03:07)
2F:推 xyzyx:推:) 02/11 03:10
3F:推 guithawk:分页排版有点乱.... 02/11 03:13
4F:→ wa007123456:真的累死我拉 囧 02/11 03:14
5F:推 NothingLeft:推, 解释非常清楚!! 02/11 03:14
6F:推 TCSSH1637:像这样就很棒 ! 02/11 03:15
7F:→ NothingLeft:另推notepad++,我已经完全用它取代内建记事本了 02/11 03:15
8F:推 ntisboss::) 02/11 03:15
9F:推 guithawk:source code的说明可以插入source code之间,毕竟bbs版面 02/11 03:16
10F:→ guithawk:有限,要上下跳页看容易乱掉 02/11 03:16
11F:→ guithawk:anchor也翻做"锚点" 02/11 03:18
12F:→ wa007123456:谢谢楼上 下次会改进 02/11 03:20
13F:推 windwater77:推notepad++ 实用好物... 02/11 03:25
14F:推 cigaretteass:有分享就是推 02/11 03:31
※ 编辑: wa007123456 来自: 125.228.227.4 (02/11 03:32) ※ 编辑: wa007123456 来自: 125.228.227.4 (02/11 03:35)
15F:推 wkf:懂了不少..感谢分享 02/11 03:53
16F:推 shufree:请问 写好的ui 可以在游戏外测试吗? 02/11 03:58
17F:推 newcinka:推 02/11 03:59
18F:→ wa007123456:据我所知 好像是不行@@ 02/11 04:11
19F:→ wa007123456:但是你可以打 /console reloadui 方法 02/11 04:11
20F:推 lakme:用心推 02/11 04:37
--



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.228.227.4 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.226.156.113 ※ 编辑: wa007123456 来自: 125.226.156.113 (07/10 14:41)
21F:推 ak147:推! 比较想知道CreateAnimationGroup的部份 07/10 15:56
22F:→ ak147:QQ 之前写的开招提示ui想加特效="= 07/10 15:56
23F:推 choosin:推~ 07/10 17:48
24F:推 s91812:请原PO删除张爸推文 07/10 21:36
※ 编辑: wa007123456 来自: 125.226.156.113 (07/11 07:49)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP