个人信息 画布改造
This commit is contained in:
parent
a4cea1bc55
commit
2f555aab96
|
|
@ -24,7 +24,7 @@ class _PersonalInfo extends Yosin_Window {
|
|||
function RegisterWidget() {
|
||||
|
||||
// 标题按钮
|
||||
local titlesBtn = Yosin_RowMoreTitleBtn(10, 25, 252, ["角色", "装扮/宠物", "护石"], "sprite/interface/lenheartwindowcommon.img", 160);
|
||||
local titlesBtn = Yosin_RowMoreTitleBtn(10, 25, 266, ["角色", "装扮/宠物", "护石"], "sprite/interface/lenheartwindowcommon.img", 160);
|
||||
AddUIChild(titlesBtn);
|
||||
|
||||
titlesBtn.LBDownOnClick = function(btns, index) {
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ class roleInfoPage extends Yosin_CommonUi {
|
|||
|
||||
constructor(gX, gY) {
|
||||
local w = 266;
|
||||
local h = 355;
|
||||
local h = 465;
|
||||
base.constructor( gX, gY, w, h);
|
||||
|
||||
|
||||
|
|
@ -36,6 +36,15 @@ class roleInfoPage extends Yosin_CommonUi {
|
|||
Canvas.EndDraw();
|
||||
// 添加画布
|
||||
Addchild(Canvas);
|
||||
|
||||
|
||||
// 名称变更记录按钮
|
||||
local nameChangeRecordBtn = Yosin_BaseButton(70, 7, 18, 17, "sprite/interface/newstyle/windows/inventory/inventory.img", 106);
|
||||
nameChangeRecordBtn.DownSimulateOffset = false;
|
||||
AddUIChild(nameChangeRecordBtn);
|
||||
|
||||
// 底部四个按钮
|
||||
RegisterBottomButton();
|
||||
}
|
||||
|
||||
function DrawWidget() {
|
||||
|
|
@ -44,37 +53,70 @@ class roleInfoPage extends Yosin_CommonUi {
|
|||
Canvas.DrawSpriteFrame(backGround, 0, 0);
|
||||
|
||||
// 上半部分 装备展示
|
||||
local equipment = Personalinfo_CharactersEquipment(0, 0);
|
||||
local equipment = Personalinfo_CharactersEquipment();
|
||||
Canvas.DrawSprite(equipment);
|
||||
|
||||
// 名称 等级 其他
|
||||
RegisterNameAndOther();
|
||||
// 属性
|
||||
// RegisterPropertyItems();
|
||||
|
||||
// 底部四个按钮
|
||||
RegisterBottomButton();
|
||||
|
||||
RegisterPropertyItems();
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 名称 等级 其他
|
||||
function RegisterNameAndOther() {
|
||||
// 冒险家名望
|
||||
local adventurerFame = CL_SpriteFrameObject("sprite/interface2/profile/profile_icon.img", 53);
|
||||
Canvas.DrawSpriteFrame(adventurerFame, 70, 185);
|
||||
|
||||
// 名称
|
||||
local nameY = 130;
|
||||
local name = FontAssetManager.GenerateNormal("账号名称", true, {
|
||||
color = sq_RGBA(161, 240, 163, 255)
|
||||
});
|
||||
Canvas.DrawActor(name, Width / 2 - name.GetSize().w / 2, nameY);
|
||||
// 等级
|
||||
local level = FontAssetManager.GenerateNormal("2级 角色名称", true, {
|
||||
color = green
|
||||
});
|
||||
Canvas.DrawActor(level, Width / 2 - level.GetSize().w / 2, nameY + 15);
|
||||
|
||||
// 角色定位
|
||||
local jobType = CL_SpriteFrameObject("sprite/interface2/profile/profile.img", 74);
|
||||
|
||||
// 职业
|
||||
local job = FontAssetManager.GenerateNormal("[剑魂]", true, {
|
||||
color = brown
|
||||
});
|
||||
|
||||
local jobSize = job.GetSize();
|
||||
local iconX = Width / 2 - (jobSize.w + 12) / 2;
|
||||
Canvas.DrawSpriteFrame(jobType, iconX, nameY + 33);
|
||||
Canvas.DrawActor(job, iconX + 12, nameY + 30);
|
||||
|
||||
|
||||
|
||||
|
||||
// 冒险家名望Icon
|
||||
local adventurerFameY = 187;
|
||||
local adventurerFameX = 70;
|
||||
local adventurerFame = CL_SpriteFrameObject("sprite/interface2/profile/profile_icon.img", 53);
|
||||
local adventurerFameRight = adventurerFameX + adventurerFame.GetSize().w;
|
||||
|
||||
Canvas.DrawSpriteFrame(adventurerFame, adventurerFameX, adventurerFameY);
|
||||
|
||||
|
||||
// 冒险家名望
|
||||
local adventurerFameText = FontAssetManager.GenerateNormal("冒险家名望", true, {
|
||||
color = brown
|
||||
});
|
||||
Canvas.DrawActor(adventurerFameText, adventurerFame.right() + 5, adventurerFame.Y);
|
||||
local adventurerFameTextRight = adventurerFameRight + 5 + adventurerFameText.GetSize().w;
|
||||
|
||||
Canvas.DrawActor(adventurerFameText, adventurerFameRight + 5, 185);
|
||||
|
||||
// 冒险家名望数值
|
||||
local adventurerFameNum = FontAssetManager.GenerateNormal("7", true, {
|
||||
color = green
|
||||
});
|
||||
Canvas.DrawActor(adventurerFameNum, adventurerFameText.right() + 5, adventurerFameText.Y);
|
||||
Canvas.DrawActor(adventurerFameNum, adventurerFameTextRight + 5, 185);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -82,60 +124,92 @@ class roleInfoPage extends Yosin_CommonUi {
|
|||
function RegisterPropertyItems() {
|
||||
// 属性
|
||||
|
||||
local leftListX = 0;
|
||||
local rightListX = 132;
|
||||
local rowY = 213;
|
||||
local rowH = 18;
|
||||
|
||||
// 生命
|
||||
local life = roleInfoPropertyItem.Draw( 0, "生命", "100");
|
||||
Canvas.DrawSprite(life, 0, 213);
|
||||
local life = roleInfoPropertyItem( 0, "生命", "100");
|
||||
Canvas.DrawSprite(life, leftListX, rowY);
|
||||
// 魔法
|
||||
local magic = roleInfoPropertyItem.Draw( 1, "魔法", "100");
|
||||
Canvas.DrawSprite(magic, life.right() + 16, life.Y);
|
||||
local magic = roleInfoPropertyItem( 1, "魔法", "100");
|
||||
Canvas.DrawSprite(magic, rightListX, rowY);
|
||||
|
||||
rowY += rowH;
|
||||
|
||||
// 物理防御力
|
||||
local physicalDefense = roleInfoPropertyItem.Draw( "物理防御力", "100", false);
|
||||
Canvas.DrawSprite(physicalDefense, life.X, life.bottom(), 8);
|
||||
local physicalDefense = roleInfoPropertyItem(8, "物理防御力", "100", false);
|
||||
Canvas.DrawSprite(physicalDefense, leftListX, rowY);
|
||||
|
||||
// 魔法防御力
|
||||
local magicDefense = roleInfoPropertyItem.Draw( 9, "魔法防御力", "100");
|
||||
Canvas.DrawSprite(magicDefense, physicalDefense.right() + 16, physicalDefense.Y);
|
||||
local magicDefense = roleInfoPropertyItem( 9, "魔法防御力", "100");
|
||||
Canvas.DrawSprite(magicDefense, rightListX, rowY);
|
||||
|
||||
rowY += rowH;
|
||||
|
||||
// 力量
|
||||
local strength = roleInfoPropertyItem.Draw( 2, "力量", "100");
|
||||
Canvas.DrawSprite(strength, life.X, physicalDefense.bottom());
|
||||
local strength = roleInfoPropertyItem( 2, "力量", "100");
|
||||
Canvas.DrawSprite(strength, leftListX, rowY);
|
||||
// 智力
|
||||
local intelligence = roleInfoPropertyItem.Draw( 3, "智力", "100");
|
||||
Canvas.DrawSprite(intelligence, strength.right() + 16, strength.Y);
|
||||
local intelligence = roleInfoPropertyItem( 3, "智力", "100");
|
||||
Canvas.DrawSprite(intelligence, rightListX, rowY);
|
||||
|
||||
rowY += rowH;
|
||||
|
||||
// 体力
|
||||
local vitality = roleInfoPropertyItem.Draw( 4, "体力", "100");
|
||||
Canvas.DrawSprite(vitality, strength.X, strength.bottom());
|
||||
local vitality = roleInfoPropertyItem( 4, "体力", "100");
|
||||
Canvas.DrawSprite(vitality, leftListX, rowY);
|
||||
// 精神
|
||||
local spirit = roleInfoPropertyItem.Draw( 5, "精神", "100");
|
||||
Canvas.DrawSprite(spirit, vitality.right() + 16, vitality.Y);
|
||||
local spirit = roleInfoPropertyItem( 5, "精神", "100");
|
||||
Canvas.DrawSprite(spirit, rightListX, rowY);
|
||||
|
||||
rowY += rowH;
|
||||
|
||||
// 物理攻击力
|
||||
local physicalATK = roleInfoPropertyItem.Draw( 6, "物理攻击力", "100");
|
||||
Canvas.DrawSprite(physicalATK, life.X, spirit.bottom());
|
||||
local physicalATK = roleInfoPropertyItem( 6, "物理攻击力", "100");
|
||||
Canvas.DrawSprite(physicalATK, leftListX, rowY);
|
||||
// 魔法攻击力
|
||||
local magicATK = roleInfoPropertyItem.Draw( 7, "魔法攻击力", "100");
|
||||
Canvas.DrawSprite(magicATK, physicalATK.right() + 16, physicalATK.Y);
|
||||
local magicATK = roleInfoPropertyItem( 7, "魔法攻击力", "100");
|
||||
Canvas.DrawSprite(magicATK, rightListX, rowY);
|
||||
|
||||
rowY += rowH;
|
||||
|
||||
// 物理暴击
|
||||
local physicalCrit = roleInfoPropertyItem.Draw( 10, "物理暴击", "100");
|
||||
Canvas.DrawSprite(physicalCrit, life.X, magicATK.bottom());
|
||||
local physicalCrit = roleInfoPropertyItem( 10, "物理暴击", "100");
|
||||
Canvas.DrawSprite(physicalCrit, leftListX, rowY);
|
||||
// 魔法暴击
|
||||
local magicCrit = roleInfoPropertyItem.Draw( 11, "魔法暴击", "100");
|
||||
Canvas.DrawSprite(magicCrit, physicalCrit.right() + 16, physicalCrit.Y);
|
||||
local magicCrit = roleInfoPropertyItem( 11, "魔法暴击", "100");
|
||||
Canvas.DrawSprite(magicCrit, rightListX, rowY);
|
||||
|
||||
|
||||
rowY += rowH;
|
||||
|
||||
// 独立攻击
|
||||
local independentAttack = roleInfoPropertyItem.Draw( 12, "独立攻击", "100");
|
||||
Canvas.DrawSprite(independentAttack, life.X, magicCrit.bottom());
|
||||
local independentAttack = roleInfoPropertyItem( 12, "独立攻击", "100");
|
||||
Canvas.DrawSprite(independentAttack, leftListX, rowY);
|
||||
|
||||
rowY += rowH;
|
||||
|
||||
// 攻击速度
|
||||
local attackSpeed = roleInfoPropertyItem.Draw(13, "攻击速度", "100");
|
||||
Canvas.DrawSprite(attackSpeed, life.X, independentAttack.bottom());
|
||||
local attackSpeed = roleInfoPropertyItem(13, "攻击速度", "100");
|
||||
Canvas.DrawSprite(attackSpeed, leftListX, rowY);
|
||||
|
||||
// 释放速度
|
||||
local releaseSpeed = roleInfoPropertyItem.Draw( 14, "释放速度", "100");
|
||||
Canvas.DrawSprite(releaseSpeed, attackSpeed.right() + 16, attackSpeed.Y);
|
||||
local releaseSpeed = roleInfoPropertyItem( 14, "释放速度", "100");
|
||||
Canvas.DrawSprite(releaseSpeed, rightListX, rowY);
|
||||
|
||||
rowY += rowH;
|
||||
|
||||
// 移动速度
|
||||
local moveSpeed = roleInfoPropertyItem.Draw( 15, "移动速度", "100");
|
||||
Canvas.DrawSprite(moveSpeed, life.X, releaseSpeed.bottom());
|
||||
local moveSpeed = roleInfoPropertyItem( 15, "移动速度", "100");
|
||||
Canvas.DrawSprite(moveSpeed, leftListX, rowY);
|
||||
|
||||
rowY += rowH;
|
||||
|
||||
// 攻击属性
|
||||
local attackProperty = roleInfoPropertyItem.Draw( 16, "攻击属性", "火(0)/冰(0)/光(0)/暗(0)", true, 260);
|
||||
Canvas.DrawSprite(attackProperty, life.X, moveSpeed.bottom());
|
||||
local attackProperty = roleInfoPropertyItem(16, "攻击属性", "火(0)/冰(0)/光(0)/暗(0)", true, 260);
|
||||
Canvas.DrawSprite(attackProperty, leftListX, rowY);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -195,43 +269,80 @@ class roleInfoPage extends Yosin_CommonUi {
|
|||
}
|
||||
|
||||
// 属性项
|
||||
class roleInfoPropertyItem{
|
||||
class roleInfoPropertyItem extends CL_CanvasObject {
|
||||
|
||||
// additionReaction 属性是否有加成 加成为绿色 不加成灰色
|
||||
function Draw(idx, title, numText, additionReaction = true, width = 120) {
|
||||
constructor(idx, title, numText, additionReaction = true, width = 125) {
|
||||
local w = width;
|
||||
local h = 18;
|
||||
base.constructor();
|
||||
|
||||
// 创建画布
|
||||
local Canvas = CL_CanvasObject();
|
||||
// 重设大小并清空
|
||||
Canvas.ResizeAndClear(width, 18);
|
||||
ResizeAndClear(w, 18);
|
||||
// 开始绘制
|
||||
Canvas.BeginDraw();
|
||||
BeginDraw();
|
||||
|
||||
local titlecolor = additionReaction ? sq_RGBA(160, 132, 75, 255) : sq_RGBA(79, 79, 79, 255);
|
||||
local numColor = additionReaction ? sq_RGBA(75, 161, 85, 255) : sq_RGBA(79, 79, 79, 255);
|
||||
|
||||
local iconX = 5;
|
||||
local icon = CL_SpriteFrameObject("sprite/interface2/profile/profile_icon.img", idx);
|
||||
Canvas.DrawSpriteFrame(icon, 5, 0);
|
||||
local iconRight = iconX + icon.GetSize().w;
|
||||
DrawSpriteFrame(icon, iconX, h/ 2 - icon.GetSize().h / 2);
|
||||
|
||||
|
||||
// 属性名称
|
||||
local property = FontAssetManager.GenerateNormal(title, true, {
|
||||
color = titlecolor
|
||||
});
|
||||
Canvas.DrawActor(property, icon.right() + 5, icon.Y);
|
||||
DrawActor(property, iconRight + 5, 0);
|
||||
|
||||
// 属性数值
|
||||
local propertyNum = FontAssetManager.GenerateNormal(numText, true, {
|
||||
color = numColor
|
||||
});
|
||||
local numX = width - propertyNum.GetSize().w;
|
||||
Canvas.DrawActor(property, numX, icon.Y);
|
||||
local numX = w - propertyNum.GetSize().w;
|
||||
DrawActor(propertyNum, numX, 0);
|
||||
|
||||
// 结束绘制
|
||||
Canvas.EndDraw();
|
||||
|
||||
return Canvas;
|
||||
EndDraw();
|
||||
}
|
||||
|
||||
// additionReaction 属性是否有加成 加成为绿色 不加成灰色
|
||||
// function Draw(idx, title, numText, additionReaction = true, width = 120) {
|
||||
|
||||
// // 创建画布
|
||||
// local Canvas = CL_CanvasObject();
|
||||
// // 重设大小并清空
|
||||
// Canvas.ResizeAndClear(width, 18);
|
||||
// // 开始绘制
|
||||
// Canvas.BeginDraw();
|
||||
|
||||
// local titlecolor = additionReaction ? sq_RGBA(160, 132, 75, 255) : sq_RGBA(79, 79, 79, 255);
|
||||
// local numColor = additionReaction ? sq_RGBA(75, 161, 85, 255) : sq_RGBA(79, 79, 79, 255);
|
||||
|
||||
// local icon = CL_SpriteFrameObject("sprite/interface2/profile/profile_icon.img", idx);
|
||||
// Canvas.DrawSpriteFrame(icon, 5, 0);
|
||||
|
||||
// // 属性名称
|
||||
// local property = FontAssetManager.GenerateNormal(title, true, {
|
||||
// color = titlecolor
|
||||
// });
|
||||
// Canvas.DrawActor(property, icon.right() + 5, icon.Y);
|
||||
|
||||
// // 属性数值
|
||||
// local propertyNum = FontAssetManager.GenerateNormal(numText, true, {
|
||||
// color = numColor
|
||||
// });
|
||||
// local numX = width - propertyNum.GetSize().w;
|
||||
// Canvas.DrawActor(property, numX, icon.Y);
|
||||
|
||||
// // 结束绘制
|
||||
// Canvas.EndDraw();
|
||||
|
||||
// return Canvas;
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -240,6 +351,11 @@ class otherButton extends Yosin_CommonUi {
|
|||
|
||||
// 是否启用按钮
|
||||
enabled = true;
|
||||
|
||||
iconX = null;
|
||||
iconY = null;
|
||||
icon = null;
|
||||
|
||||
// pvp 是否是pvp 按钮
|
||||
constructor(gX, gY, idx, title, pvp = false, enabled = true, ) {
|
||||
base.constructor(gX, gY, 65, 65);
|
||||
|
|
@ -255,12 +371,29 @@ class otherButton extends Yosin_CommonUi {
|
|||
Addchild(property);
|
||||
|
||||
local path = pvp? "sprite/interface2/profile/profile_pvp_icon.img" : "sprite/interface2/profile/profile.img";
|
||||
local icon = CL_SpriteObject(path, enabled ? idx : idx +1 );
|
||||
icon.SetPosition(32 - icon.GetSize().w / 2, 45/2 - icon.GetSize().h / 2 + 3 );
|
||||
icon = CL_SpriteObject(path, enabled ? idx : idx +1 );
|
||||
|
||||
iconX = 32 - icon.GetSize().w / 2;
|
||||
iconY = 45 / 2 - icon.GetSize().h / 2 + 3;
|
||||
icon.SetPosition( iconX , iconY );
|
||||
Addchild(icon);
|
||||
|
||||
}
|
||||
|
||||
function Proc(DT) {
|
||||
// if (isLBDown){
|
||||
// SyncPos(X, cacheY + 1);
|
||||
// }else{
|
||||
// SyncPos(X, cacheY);
|
||||
// }
|
||||
if (isLBDown){
|
||||
icon.SetPosition( iconX , iconY + 1 );
|
||||
}else{
|
||||
icon.SetPosition( iconX , iconY );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -268,79 +401,92 @@ class otherButton extends Yosin_CommonUi {
|
|||
|
||||
|
||||
// 上半部分 人物装备穿戴
|
||||
class Personalinfo_CharactersEquipment extends Yosin_CommonUi {
|
||||
class Personalinfo_CharactersEquipment extends CL_CanvasObject {
|
||||
|
||||
// 展示其他装备
|
||||
showOtherEquipment = null;
|
||||
// 允许更换装备
|
||||
allowChangeEquipment = null;
|
||||
// 画布
|
||||
Canvas = null;
|
||||
// // 画布
|
||||
// Canvas = null;
|
||||
|
||||
constructor(x, y) {
|
||||
constructor() {
|
||||
local w = 248;
|
||||
local h = 179;
|
||||
base.constructor(x, y, w, h);
|
||||
base.constructor();
|
||||
|
||||
showOtherEquipment = false;
|
||||
showOtherEquipment = true;
|
||||
allowChangeEquipment = false;
|
||||
|
||||
// 创建画布
|
||||
Canvas = CL_CanvasObject();
|
||||
CL_CanvasObject();
|
||||
// 重设大小并清空
|
||||
Canvas.ResizeAndClear(w, h);
|
||||
ResizeAndClear(w, h);
|
||||
// 设置填充画刷 用于绘制边框和线条
|
||||
// Canvas.SetFillBrush(sq_RGBA(59, 56, 57, 250));
|
||||
// 设置轮廓画刷 用于绘制边框和线条
|
||||
// Canvas.SetStrokeBrush(sq_RGBA(59, 56, 57, 250));
|
||||
// 开始绘制
|
||||
Canvas.BeginDraw();
|
||||
BeginDraw();
|
||||
|
||||
// 绘制背景
|
||||
DrawBackground();
|
||||
DrawBackground(w);
|
||||
|
||||
// 结束绘制
|
||||
Canvas.EndDraw();
|
||||
// 添加画布
|
||||
Addchild(Canvas);
|
||||
EndDraw();
|
||||
}
|
||||
|
||||
|
||||
// 背景
|
||||
function DrawBackground() {
|
||||
function DrawBackground(Width) {
|
||||
|
||||
// 装备栏背景
|
||||
local equipmentBackground = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 21);
|
||||
Canvas.DrawSpriteFrame(equipmentBackground, 5, 5);
|
||||
DrawSpriteFrame(equipmentBackground, 5, 5);
|
||||
|
||||
|
||||
// 顶部光线
|
||||
local topLight = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 178);
|
||||
Canvas.DrawSpriteFrame(topLight, Width / 2 - topLight.GetSize().w / 2, 0);
|
||||
DrawSpriteFrame(topLight, Width / 2 - topLight.GetSize().w / 2, 0);
|
||||
// DrawSpriteFrame(topLight, 0, 0);
|
||||
|
||||
// todo 角色展示
|
||||
|
||||
// 结婚戒指槽位
|
||||
local ringSlotBg = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory_cn.img", 0);
|
||||
Canvas.DrawSpriteFrame(ringSlotBg, Width / 2 - ringSlotBg.GetSize().w / 2, 5);
|
||||
DrawSpriteFrame(ringSlotBg, Width / 2 - ringSlotBg.GetSize().w / 2, 5);
|
||||
|
||||
// todo 根据是否装备 显示装备
|
||||
if (showOtherEquipment) {
|
||||
// 辅助装备
|
||||
local assist = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 19);
|
||||
Canvas.DrawSpriteFrame(assist, 179, 69);
|
||||
DrawSpriteFrame(assist, 179, 69);
|
||||
|
||||
// 耳环
|
||||
local earrings = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 122);
|
||||
Canvas.DrawSpriteFrame(earrings, 179, 102);
|
||||
DrawSpriteFrame(earrings, 179, 102);
|
||||
|
||||
// 魔法石
|
||||
local MagicStone = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 20);
|
||||
Canvas.DrawSpriteFrame(MagicStone, 211, 101);
|
||||
DrawSpriteFrame(MagicStone, 211, 101);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// if (!getroottable().rawin("chongzaiflag")) {
|
||||
// getroottable()["chongzaiflag"] <- true;
|
||||
// } else {
|
||||
// //遍历窗口队列 如果可见则调用Show
|
||||
// for (local i = 0; i< _SYS_WINDOW_LIST_.len(); i++) {
|
||||
// local Window = _SYS_WINDOW_LIST_[i];
|
||||
// Window.Visible = false;
|
||||
// Window.RemoveSelf();
|
||||
// }
|
||||
// TestStage();
|
||||
// }
|
||||
Loading…
Reference in New Issue