💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[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%