[WOW插件编程资料整理贴](http://nga.178.com/read.php?tid=4004812&rand=35)
>位置在魔兽中有三个重要元素,框体、锚点和坐标!
## **框体:**
魔兽有一个母框体叫UIParent
母框体下是若干父框体,例如MainMenuBarArtFrame---主动作条框体
父框体下是若干子框体,例如MultiBarBottomLeftButton1---左下动作条按钮1
>[danger] PS:我们在修改插件过程中怎么知道这个框体的名字呢? 在游戏中键入`/fstack`,然后把鼠标放在想要知道名字的框体上,就会显示出来了!
## **锚点:**
在魔兽中分九个锚点:TOPLEFT左上、TOP上、TOPRIGHT右上、LEFT左、CENTER中、RIGHT右、BOTTOMLEFT左下 、BOTTOM下、BOTTOMRIGHT右下。
锚点的位置是固定的,一个框体绘制出来必然有长和宽,那就说沿着边界做出横平竖直的切线的话,它必然是个正方形或者长方形,那么它的锚点就确定了九个位置。
## **坐标:**
既XY轴
好了介绍玩这三个元素,你估计大概明白了七八成了!
还是举一个栗子吧!初始情况``下,你本人的头像在界面的左上角,本人头像是个父框体(它下面还有个宠物、小队这些子框体),界面是母框体,那系统怎么表示出来呢?
PlayerFrame:SetPoint("TOPLEFT", UIParent, "TOPLEFT",0, 0),翻译一下就是 ,玩家框体:设置锚点("左上",母框体,"左上",0,0)。
那假如,我们想要把它放在屏幕中间呢?我们可以修改下锚点:PlayerFrame:SetPoint("CENTER", UIParent, "CENTER",0, 0)。
再假如,我们仅是想把它往原来的位置右下挪一点点呢?我们可以修改下坐标:PlayerFrame:SetPoint("TOPLEFT", UIParent, "TOPLEFT",100,-100)。
我们再说说子框体之于父框体也一样啊!大体跟上边一样,有一点点小小的不同!
比如:默认小队队员1的位置是在 玩家框体下边,也就是PartyMemberFrame1:SetPoint("TOP",PlayerFrame,"BOTTOM",0,0)。
假如我们把玩家的头像放在了屏幕中间靠左的位置(如:PlayerFrame:SetPoint("CENTER", UIParent, "CENTER",-300,0)),小队成员在玩家头像之上依次向上排列该怎么办呢?
我们应该这么写:PartyMemberFrame1:SetPoint("BOTTOM",PlayerFrame,"TOP",0,10)。
有个小细节请注意,我为什么坐标写的是(0,10),因为这个子框体小队队员1下边还有个孙子框体---也就是他的宠物,所以我们要沿Y轴向上移动10个坐标。
光是这样就完了么?还没有!
因为你仅是设置了小队队员1,小队队员2默认依附在小队队员1上的,也就是他的锚点在小队队员1上,即:PartyMemberFrame2:SetPoint("TOP",PartyMemberFrame1,"BOTTOM",0,0)。
所以我们还要修改小队队员2,既:PartyMemberFrame2:SetPoint("BOTTOM",PartyMemberFrame1,"TOP",0,10)。
再说说大小。大小就简单了,无非就是框体的大小。忘细了说可以是框体边界的大小、图标的大小、字体的大小等等。
比如目标的施法条框体,我们可以给他放大1.2倍数:TargetFrameSpellBar:SetScale(1.2),翻译一下就是:目标框体施法条:设置大小(1.2)。
假如是玩家自己制作的非暴雪插件,一般会这么描述Frame:SetWidth(XXX),Frame:SetHeight(XXX),意思设置框体的高和宽。
有些不用的东西我们可以给它隐藏掉,比如MiniMapWorldMapButton:Hide(),这句话的意思就是隐藏右上角小地图的世界地图图标。
然后说颜色。这里有两个内容,一是色彩,二是透明度。
插件内大部分都会这么描述SetXXXXXColor:(0,0,0,.4),括号内4个数字,前三个代表的是颜色,不是红黄蓝,没记错的话是红黄黑,最后一个数字代表的是透明度,这些数字都是由0-1的。
还有的简单化的这么描述,UIErrorsFrame:SetAlpha(0.6),意思是错误框体透明度60%
- 基础
- 循环
- 迭代器
- ipairs与pairs 的区别
- 流程控制if
- 函数
- 运算符
- 字符串
- 数组
- table(表)
- 模块与包
- 魔兽插件
- 初学介绍
- api
- Global API
- Widget API
- 窗口小部件类层次结构(Widget Class Hierarchy)
- 动画(Animation)
- 透明度(Alpha)
- 线条缩放比例(LineScale)
- 平移(Translation)
- 线平移(Line Translation)
- 路径(Path)
- 旋转(Rotation)
- 缩放(Scale)
- 纹理坐标平移(TextureCoordTranslation)
- 框架 :Frame
- 浏览器(Browser)
- 按键(Button)
- Item按钮(ItemButton)
- 检查按钮(CheckButton)
- 检测(Checkout)
- 颜色选择(ColorSelect)
- 冷却(Cooldown)
- 编辑框(EditBox)
- 战争迷雾(FogOfWarFrame)
- 游戏工具提示(GameTooltip)
- 消息框(MessageFrame)
- 小地图(Minimap)
- 模型(Model)
- 玩家模型(PlayerModel)
- 电影模型(CinematicModel)
- 换装模型(DressUpModel)
- 战袍模型(TabardModel)
- _模型场景(ModelScene)
- 电影Frame(MovieFrame)
- 根小部件(Root Widgets)
- UIObject衍生品(UIObject Derivatives)
- 动画衍生品(Animation Derivatives)
- FontInstance
- 地区衍生品(Region Derivatives)
- 帧衍生品(Frame Derivatives)
- 特殊(Special)
- Events(游戏中变化的事件)
- WoWAPI
- Global Function Groups
- 帐户(Account)
- 成就(Achievements)
- 动作条(Action Bars)
- Action Buttons
- 插件(AddOns)
- 冒险指南(Adventure Guide)
- 神器(Artifact)
- 拍卖行(Auction House)
- 黑市AH
- 魔兽代币(WoW Tokens)
- Azerite
- 背包(Bags)
- 容器(Containers)
- 库存(Inventory)
- 银行(Bank)
- 公会银行(Guild Bank)
- 理发店(Barber Shop)
- 书籍(书籍)
- 日历(calendar)
- 相机(Camera)
- 频道(Channels)
- 聊天窗口(Chat Window)
- 社区(communities)
- 语音聊天(Voice Chat)
- 推特(Twitter)
- 角色(Character)
- 角色表(Paper Doll)
- 试衣间(dressing room)
- 活动(Movement)
- 指定目标(Targeting)
- 死亡(Death)
- 过场动画(Cinematics)
- 职业(class)
- 天赋(Talents)
- 收藏(Collections)
- 坐骑(Mount Journal)
- 宠物(Pet Journal)
- 玩具箱(Toy Box)
- 传家宝(Heirlooms)
- 外观(Appearances)
- 战斗记录(Combat Log)
- 战斗宠物(Combat Pets)
- 同伴(Companions)
- Contribution Collection
- 货币(Currency)
- 光标(Cursor)
- 客户支持(Customer Support)
- 知识库(Knowledge Base)
- 设备管理器(Equipment Manager)
- 扩展(Expansions)
- FrameXML
- 好友(Friends)
- Who List
- 真实身份证(Real ID)
- 招募朋友(Recruit-a-Friend)
- 驻军(Garrisons)
- 建筑物(Buildings)
- 战利品(Trophies)
- 追随者与任务(Followers & Missions)
- 团队(Groups)
- Raid Groups
- Raid Profiles
- 组查找器(Group Finder)
- 突袭者(Raid Finder)
- 公会(Guild)
- 检查(Inspection)
- Instances
- 场景(Scenarios)
- Mythic+
- 入侵(Invasions)
- 海岛探险(Island Expeditions)
- Items
- 按键绑定(Key Bindings)
- Modifiers
- 劫掠(Looting)
- 失控(Loss of Control)
- 宏命令(Macros)
- 邮件(Mail)
- 地图(Maps)
- 飞行管理员(Flight Master)
- 追踪(Tracking)
- 商人(Merchant)
- 铭牌(Nameplates)
- 宠物大战(Pet Battles)
- 申请书(Petitions)
- 专业(Professions)
- 考古(Archaeology)
- 附魔(Enchantments)
- 雕文(glyphs)
- 物品插口(tem Socketing)
- PvP
- 竞技场(Arena)
- 战场(Battlegrounds)
- 世界战场(World Battlefields)
- 争吵(Brawl)
- 战争游戏(War Games)
- 战争模式(War Mode)
- 任务 (Quests)
- 任务日志(Quest Log)
- 任务选择(Quest Choices)
- Task Quests
- 闲聊(Gossip)
- 探险地图(Adventure Map)
- 战争战役(War Campaigns)
- 种族(Races)
- 境界(Realms)
- 报告(Reporting)
- 声望(Reputation)
- 报废的机器(Scrapping Machine)
- 法术(Spells)
- Spell Book
- 商店(Shop)
- 召唤(Summoning)
- 系统(System)
- 网络(Network)
- 控制台(Console)
- 日期时间(Date & Time)
- 调试(Debugging)
- 图形(Graphics)
- 语言环境(Locales)
- 脚本分析(Script Profiling)
- 安全执行(Secure Execution)
- 声音(Sound)
- Sound Drivers
- Talking Head
- 交易(Trading)
- 训练师(Trainer)
- 迁移(Transmogrification)
- 空白存储(Void Storage)
- 讲解(Tutorials)
- UI对象(UI Objects)
- 框架(Frame)
- 字体(Font)
- 质地(Texture)
- 混合(Mixin)
- 咒语(SpellMixin)
- ItemMixin
- 物品位置(ItemLocationMixin)
- PlayerLocationMixin
- 模型场景(ModelScene)
- 未分类
- UI窗口小部件管理器(UI Widget Manager)
- 单位(Units)
- 光环(Auras)
- 玩家(Players)
- 实用程序(Util)
- 车辆(Vehicles)
- Classic Specific Functions
- 猎人宠物(Hunter Pets)
- 专业(Professions)
- 手工制作(Crafting)
- @PvP
- 模拟器
- 训练师(Trainer)
- 8.x API
- 控制台(Console)
- 召唤(Summoning)
- See also
- 外部链接(External links)
- Widget handlers(UI交互事件)
- ScriptObject
- AnimationGroup
- Animation对象
- Alpha对象
- Scale
- LineScale
- Translation
- LineTranslation
- Path
- Rotation
- TextureCoordTranslation
- Frame
- Browser
- Button
- CheckButton
- ItemButton
- Checkout
- ColorSelect
- Cooldown
- EditBox
- FogOfWarFrame
- GameTooltip
- Model
- PlayerModel
- CinematicModel
- DressupModel
- TabardModel
- MovieFrame
- ScrollFrame
- Slider
- MessageFrame
- Minimap
- ModelScene
- OffScreenFrame
- POIFrame
- ArchaeologyDigSiteFrame
- QuestPOIFrame
- ScenarioPOIFrame
- SimpleHTML
- StatusBar
- UnitPositionFrame
- WorldFrame
- 入门
- .toc
- .lua
- .xml
- 示例
- 自动邀请插件
- 完整例子:显示任务坐标
- eCoordinates.toc
- eCoordinates.xml
- eCoordinates.lua
- 开发帮助组件
- AddOn Studio编辑器
- 暴雪自带调试工具
- DevTools调试插件
- wowlua
- 魔兽宏
- 战斗宠物命令
- 暴雪界面命令
- 聊天命令
- chat substitutions
- 角色指令
- 开发者工具
- 表情动作
- 战斗命令
- 公会命令
- 小队与团队命令、
- 宠物命令
- PvP的命令
- 系统命令
- 目标函数
- 命令
- 被禁用的命令
- 宏条件
- 装备物品编号