在cocos lua中,相对于任意节点的对齐方式。(函数 源码 可直接使用) lua 3.x版本

来源:互联网 发布:qq文件恢复软件 编辑:程序博客网 时间:2024/05/18 01:50
Alignment = 
{
    ["Left"]    =   1,
    ["Right"]   =   2,
    ["Top"]     =   3,
    ["Bottom"]  =   4,
    ["HolizontalCenter"] = 5,
    ["VerticalCenter"] = 6,
}
-- 相对于任意节点的对齐方式
function setAlignment(note,  layer, HAlign, VAlign)
    if note == nil then return end;
    local layer = layer or note:getParent();
    local AnchorPointX = 0;
    local AnchorPointY = 0;
    local PositionX  = 0;
    local PositionY = 0;
    if HAlign ==  Alignment["Left"] then
        PositionX = 0;
    elseif HAlign ==  Alignment["Right"] then
        AnchorPointX = 1;
        PositionX = layer:getContentSize().width;
    elseif HAlign ==  Alignment["HolizontalCenter"] then
        AnchorPointX = 0.5;
        PositionX = layer:getContentSize().width/2;
    end 


    if VAlign ==  Alignment["Top"] then
        AnchorPointY = 1;
        PositionY = layer:getContentSize().height;
    elseif VAlign ==  Alignment["Bottom"] then
        PositionY = 0;
    elseif VAlign ==  Alignment["VerticalCenter"] then
        AnchorPointY = 0.5;
        PositionY = layer:getContentSize().height/2;
    end


    note:setAnchorPoint(cc.p(AnchorPointX, AnchorPointY));
    note:setPositionX(PositionX);
    note:setPositionY(PositionY);


end
0 0