Merge remote-tracking branch 'origin/yi' into dong

# Conflicts:
#	sqr/User/Stage/TestStage.nut
This commit is contained in:
Lenheart 2025-01-11 16:40:03 +08:00
commit c0f62e5be3
15 changed files with 720 additions and 641 deletions

1
.gitignore vendored
View File

@ -6,3 +6,4 @@ Yosin_Engine.pdb
*.pvf *.pvf
sqr/.vscode/launch.json sqr/.vscode/launch.json
Music/ Music/
sqr/SquirrelFileConfig.cfg

View File

@ -200,12 +200,10 @@ class Yosin_EmeStretch extends Yosin_CommonUi {
// 九宫格拉伸 // 九宫格拉伸
function Yosin_NineBoxStretch(X, Y, width, height, path, imgId) { function Yosin_NineBoxStretch(width, height, path, imgId) {
// 创建画布 // 创建画布
local Canvas = CL_CanvasObject(); local Canvas = CL_CanvasObject();
Canvas.SetPosition(X, Y);
// 重设大小并清空 // 重设大小并清空
Canvas.ResizeAndClear(width, height); Canvas.ResizeAndClear(width, height);
// 开始绘制 // 开始绘制

View File

@ -1,97 +0,0 @@
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\ENUM\ENUM_KEY.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\ENUM\enum_system.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseTool\BaseTool.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseTool\Math.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseTool\String.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseTool\BlobExClass.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseTool\JsonClass\JsonClass.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseTool\JsonClass\Json.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\ScriptManager\ScriptManager.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\ScriptManager\InitAni.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\Game_Window_Class.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\BaseObject.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\AudioClass.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\StageClass.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\ActorObject.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\LayerObject.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\UserStorage.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\CanvasObject.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\SpriteObject\SpriteFrameClass.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\SpriteObject\SpriteClass.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\TextObject\Font.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\TextObject\TextActor.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\BaseClass\AnimationClass\AnimationClass.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\ExtraCalss\Socket\Socket.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\Game_Proc\Game_Proc.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\InputClass\InputClass.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\UI_Class\UI_Cursor.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\UI_Class\UI_Core.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\Core\UI_Class\UI_Widget.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\_ENUM\global_object.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\_ENUM\enum_music.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\_ENUM\enum_packet.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\_ENUM\enum_game.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Socket\Socket.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Asset\AssetManager.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Asset\FontAsset.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Asset\Character\Animation.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Asset\Item\Item.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Asset\Item\Equipment.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Controller\Controller.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Controller\ObjectController.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\StateMachine\StateMachineClass.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\Object\BaseObject.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\Object\AnimationObject.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\Map\TileObject.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\Map\MapCamera.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\Map\TownObject.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\Map\MapObject.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\ActiveObject\GameObjectClass.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\ActiveObject\StaticObjectClass.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\ActiveObject\ActiveObjectClass.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\ActiveObject\PassiveObjectClass.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\ActiveObject\MonsterObjectClass.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\ActiveObject\NpcObjectClass.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\ActiveObject\CharacterObjectClass.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Object\ActiveObject\CharacterObjectClass_AI.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Socket\Socket.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Socket\Packet.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Socket\FunctionalPack.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Stage\LodingStage.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\Stage\TestStage.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Widget\IMouse.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Widget\InputBox.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Widget\Drag_Button.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Widget\Scroll_Bar.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Widget\Text_Button.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Widget\Top_Title.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\0_Login.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\1_Select_Character.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\2_create_Character.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\3_Top_tool.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\4_PersonalInfo.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\5_Inventory\Inventory_EquipmentPage.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\5_Inventory\ItemCollect.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\5_Inventory\5_Inventory.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\UI\Window\233_HUD_Message.nut
l:\Yosin_Engine\Yosin&Kiwano_DOF\sqr\User\main.nut

View File

@ -50,7 +50,7 @@ class GameItem.EquipmentInfo extends Yosin_Window {
Init(); Init();
local background = Yosin_NineBoxStretch(0, 0, 211, RealCanvasHeight + 10, "sprite/interface/lenheartwindowcommon.img", 213); local background = Yosin_NineBoxStretch(211, RealCanvasHeight + 10, "sprite/interface/lenheartwindowcommon.img", 213);
background.SetZOrder(-1); background.SetZOrder(-1);
Addchild(background); Addchild(background);
} }

View File

@ -13,19 +13,27 @@ class Yosin_TopTitle extends Yosin_CommonUi {
//内容背景 //内容背景
if (drawBackground) { if (drawBackground) {
local background = Yosin_NineBoxStretch(0, 15, W + 4, H - 15, "sprite/interface/lenheartwindowcommon.img", 97); local background = Yosin_NineBoxStretch( W, H, "sprite/interface/lenheartwindowcommon.img", 97);
background.SetPosition(0, 0);
Addchild(background); Addchild(background);
} }
// 标题背景 // 绘制标题背景
local Background = Yosin_EmeStretch(0, 0, W + 3, 22, "sprite/interface/lenheartwindowcommon.img", 609); local titleX = drawBackground ? 2 : 0;
Addchild(Background); local titleW = drawBackground ? W - 4 : W;
local titleBackground = Yosin_EmeStretch(titleX, 0, titleW, 20, "sprite/interface/lenheartwindowcommon.img", 609);
titleBackground.SetScale(1, 1.3);
Addchild(titleBackground);
// 标题亮色背景 // 标题背景
local BackgroundBright = CL_SpriteObject("sprite/interface/lenheartwindowcommon.img", 483); local BackgroundBright = CL_SpriteObject("sprite/interface/lenheartwindowcommon.img", 483);
local scaleW = (Background.GetSize().w / BackgroundBright.GetSize().w).tofloat(); local BackgroundBrightSize = BackgroundBright.GetSize();
// 计算光的缩放比例
local scaleW = (W / BackgroundBrightSize.w).tofloat();
BackgroundBright.SetScale(scaleW, 1); BackgroundBright.SetScale(scaleW, 1);
BackgroundBright.SetPosition(0, 1); BackgroundBright.SetPosition(0, 1);
Addchild(BackgroundBright); Addchild(BackgroundBright);

View File

@ -549,7 +549,8 @@ class _Select_Character_Window extends Yosin_Window {
ChangeBackground(Info.loginImg); ChangeBackground(Info.loginImg);
//角色遮罩栏 //角色遮罩栏
CharacterMaskBox = Yosin_NineBoxStretch(-4, 320, 1074, 680, "sprite/interface/lenheartwindowcommon.img", 0); CharacterMaskBox = Yosin_NineBoxStretch(1074, 680, "sprite/interface/lenheartwindowcommon.img", 0);
CharacterMaskBox.SetPosition(-4, 320);
Addchild(CharacterMaskBox); Addchild(CharacterMaskBox);

View File

@ -72,19 +72,28 @@ class _Yosin_MessageBox extends Yosin_Window {
} }
function RegisterWidget() { function RegisterWidget() {
//背景 //背景
local background = Yosin_NineBoxStretch(-1, 15, cacheW + 1, cacheH, "sprite/interface/lenheartwindowcommon.img", 97); local background = Yosin_NineBoxStretch( cacheW + 1, cacheH, "sprite/interface/lenheartwindowcommon.img", 97);
background.SetPosition(-1, 15);
Addchild(background); Addchild(background);
local twoBackground = Yosin_NineBoxStretch(4, 20, cacheW - 8, cacheH - 36, "sprite/interface/lenheartwindowcommon.img", 97);
//文字背景
local twoBackground = Yosin_NineBoxStretch( cacheW - 8, cacheH - 36, "sprite/interface/lenheartwindowcommon.img", 97);
twoBackground.SetPosition(4, 20);
Addchild(twoBackground); Addchild(twoBackground);
// 绘制标题背景 // 绘制标题背景
local titleBackground = Yosin_EmeStretch(0, 0, cacheW, 20, "sprite/interface/lenheartwindowcommon.img", 609); local titleBackground = Yosin_EmeStretch(0, 0, cacheW, 20, "sprite/interface/lenheartwindowcommon.img", 609);
titleBackground.SetScale(1, 1.2);
AddUIChild(titleBackground); AddUIChild(titleBackground);
// 标题背景光
local BackgroundBright = CL_SpriteObject("sprite/interface/lenheartwindowcommon.img", 483); local BackgroundBright = CL_SpriteObject("sprite/interface/lenheartwindowcommon.img", 483);
local scaleW = (cacheW / BackgroundBright.GetSize().w).tofloat(); local BackgroundBrightSize = BackgroundBright.GetSize();
local scaleW = (cacheW / BackgroundBrightSize.w).tofloat();
BackgroundBright.SetScale(scaleW, 1); BackgroundBright.SetScale(scaleW, 1);
BackgroundBright.SetPosition( 0, 1);
Addchild(BackgroundBright); Addchild(BackgroundBright);
//确认按钮 //确认按钮

View File

@ -791,11 +791,8 @@ class _create_Character_enterName extends Yosin_Window {
base.constructor("输入角色名称", 0, 0, 1066, 600, 0); base.constructor("输入角色名称", 0, 0, 1066, 600, 0);
//背景 //背景
local background = Yosin_NineBoxStretch(-2, 0, 1070, 604, "sprite/interface/lenheartwindowcommon.img", 97); local background = Yosin_NineBoxStretch( 240, 140, "sprite/interface/lenheartwindowcommon.img", 97);
Addchild(background); background.SetPosition(413, 228);
//背景
local background = Yosin_NineBoxStretch(413, 228, 240, 140, "sprite/interface/lenheartwindowcommon.img", 97);
Addchild(background); Addchild(background);
// 标题文字 // 标题文字

View File

@ -1,311 +0,0 @@
/*
文件名:4_PersonalInfo.nut
路径:User/UI/Window/4_PersonalInfo.nut
创建日期:2024-12-26 00:32
文件用途: 个人信息
*/
// local infoWindow = Sq_CreateWindow(_PersonalInfo, "个人信息窗口", 250, 60, 286, 530, 20);
// todo 图和尺寸比例都需要修改
// todo Yosin_Window 和 Yosin_CommonUi 会有性能开销需要检查
class _PersonalInfo extends Yosin_Window {
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
base.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
local title = Yosin_TopTitle(gWidth, gHeight, "个人信息(M)");
AddUIChild(title);
//注册控件
RegisterWidget();
}
function RegisterWidget() {
// 标题按钮
local titlesBtn = Yosin_RowMoreTitleBtn(10, 25, ["角色", "装扮/宠物", "护石"],"sprite/interface/lenheartwindowcommon.img", 160);
AddUIChild(titlesBtn);
titlesBtn.LBDownOnClick = function(btns, index) {
};
// 角色信息
local roleInfo = roleInfo("个人角色信息", 10, titlesBtn.bottom() + 2 );
AddUIChild(roleInfo);
}
//逻辑入口
function Proc(Dt) {
SyncPos(X, Y);
base.Proc(Dt);
}
}
// 角色信息
class roleInfo extends Yosin_Window {
//是否为独立窗口
IsIndependent = false;
brown = sq_RGBA(160, 132, 75, 255);
green = sq_RGBA(74, 161, 87, 255);
btn = null;
constructor(gObjectId, gX, gY) {
base.constructor(gObjectId, gX, gY, 266, 355, 0);
//注册控件
RegisterWidget();
}
function RegisterWidget() {
// 背景
local backGround = CL_SpriteObject("sprite/interface2/profile/profile.img", 60);
Addchild(backGround);
// 装备
RegisterEquipment();
// 名称 等级 其他
RegisterNameAndOther();
// 属性
RegisterPropertyItems();
// 底部四个按钮
RegisterBottomButton();
}
// 装备
function RegisterEquipment() {
// 装备背景
local equipmentBackground = CL_SpriteObject("sprite/interface2/profile/profile.img", 14);
equipmentBackground.SetPosition(7.5, 8);
Addchild(equipmentBackground);
// 结婚戒指槽位
local centerBackground = CL_SpriteObject("sprite/interface2/profile/profile.img", 77);
centerBackground.SetPosition( 124 , 10);
Addchild(centerBackground);
}
// 名称 等级 其他
function RegisterNameAndOther() {
// 冒险家名望
local adventurerFame = CL_SpriteObject("sprite/interface2/profile/profile_icon.img", 53);
adventurerFame.SetPosition(70, 185);
Addchild(adventurerFame);
local adventurerFameText = FontAssetManager.GenerateNormal("冒险家名望", true, {
color = brown
});
adventurerFameText.SetPosition(adventurerFame.right() + 5, adventurerFame.Y);
Addchild(adventurerFameText);
// 冒险家名望数值
local adventurerFameNum = FontAssetManager.GenerateNormal("7", true, {
color = green
});
adventurerFameNum.SetPosition(adventurerFameText.right() + 5, adventurerFameText.Y);
Addchild(adventurerFameNum);
}
// 属性
function RegisterPropertyItems() {
// 属性
// 生命
local life = roleInfoPropertyItem(0, 213, 0, "生命", "100");
Addchild(life);
// 魔法
local magic = roleInfoPropertyItem(life.right() + 16, life.Y, 1, "魔法", "100");
Addchild(magic);
// 物理防御力
local physicalDefense = roleInfoPropertyItem(life.X, life.bottom(), 8, "物理防御力", "100", false);
Addchild(physicalDefense);
// 魔法防御力
local magicDefense = roleInfoPropertyItem(physicalDefense.right() + 16, physicalDefense.Y, 9, "魔法防御力", "100");
Addchild(magicDefense);
// 力量
local strength = roleInfoPropertyItem(life.X, physicalDefense.bottom(), 2, "力量", "100");
Addchild(strength);
// 智力
local intelligence = roleInfoPropertyItem(strength.right() + 16, strength.Y, 3, "智力", "100");
Addchild(intelligence);
// 体力
local vitality = roleInfoPropertyItem(strength.X, strength.bottom(), 4, "体力", "100");
Addchild(vitality);
// 精神
local spirit = roleInfoPropertyItem(vitality.right() + 16, vitality.Y, 5, "精神", "100");
Addchild(spirit);
// 物理攻击力
local physicalATK = roleInfoPropertyItem(life.X, spirit.bottom(), 6, "物理攻击力", "100");
Addchild(physicalATK);
// 魔法攻击力
local magicATK = roleInfoPropertyItem(physicalATK.right() + 16, physicalATK.Y, 7, "魔法攻击力", "100");
Addchild(magicATK);
// 物理暴击
local physicalCrit = roleInfoPropertyItem(life.X, magicATK.bottom(), 10, "物理暴击", "100");
Addchild(physicalCrit);
// 魔法暴击
local magicCrit = roleInfoPropertyItem(physicalCrit.right() + 16, physicalCrit.Y, 11, "魔法暴击", "100");
Addchild(magicCrit);
// 独立攻击
local independentAttack = roleInfoPropertyItem(life.X, magicCrit.bottom(), 12, "独立攻击", "100");
Addchild(independentAttack);
// 攻击速度
local attackSpeed = roleInfoPropertyItem(life.X, independentAttack.bottom(), 13, "攻击速度", "100");
Addchild(attackSpeed);
// 释放速度
local releaseSpeed = roleInfoPropertyItem(attackSpeed.right() + 16, attackSpeed.Y, 14, "释放速度", "100");
Addchild(releaseSpeed);
// 移动速度
local moveSpeed = roleInfoPropertyItem(life.X, releaseSpeed.bottom(), 15, "移动速度", "100");
Addchild(moveSpeed);
// 攻击属性
local attackProperty = roleInfoPropertyItem(life.X, moveSpeed.bottom(), 16, "攻击属性", "火(0)/冰(0)/光(0)/暗(0)", true, 260);
Addchild(attackProperty);
}
// 底部四个按钮
function RegisterBottomButton() {
// 副职业
local subJob = otherButton(0, 401, 62, "副职业", false);
AddUIChild(subJob);
subJob.OnClick = function (btn) {
//todo 打开副职业面板
print(11111);
}.bindenv(this);
local separation = CL_SpriteObject("sprite/interface2/profile/profile.img", 70 );
separation.SetPosition(subJob.right(), subJob.Y + 7.5);
Addchild(separation);
// 战斗分析
local battleAnalysis = otherButton(subJob.right() + 1, subJob.Y, 64, "战斗分析");
AddUIChild(battleAnalysis);
battleAnalysis.OnClick = function (btn) {
//todo 打开面板
print(11111);
}.bindenv(this);
local separationOne = CL_SpriteObject("sprite/interface2/profile/profile.img", 70 );
separationOne.SetPosition(battleAnalysis.right(), battleAnalysis.Y + 7.5);
Addchild(separationOne);
// 决斗信息 // 根据决斗场等级 显示 sprite/interface2/pvp02/pvprank_icon/tier_icon.img 24
local duelInfo = otherButton(battleAnalysis.right() + 1, battleAnalysis.Y, 14, "决斗信息", true);
AddUIChild(duelInfo);
duelInfo.OnClick = function (btn) {
//todo 打开面板
print(11111);
}.bindenv(this);
local separationTwo = CL_SpriteObject("sprite/interface2/profile/profile.img", 70 );
separationTwo.SetPosition(duelInfo.right(), duelInfo.Y + 7.5);
Addchild(separationTwo);
// 详细信息
local detailedInformation = otherButton(duelInfo.right() + 1, duelInfo.Y, 66, "详细信息");
AddUIChild(detailedInformation);
detailedInformation.OnClick = function (btn) {
//todo 打开面板
print(11111);
}.bindenv(this);
}
//逻辑入口
function Proc(Dt) {
SyncPos(X, Y);
base.Proc(Dt);
}
}
// 属性项
class roleInfoPropertyItem extends Yosin_CommonUi {
// additionReaction 属性是否有加成 加成为绿色 不加成灰色
constructor(gX, gY, idx, title, numText, additionReaction = true, width = 120) {
base.constructor(gX, gY, width, 18);
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_SpriteObject("sprite/interface2/profile/profile_icon.img", idx);
icon.SetPosition(5, 0);
Addchild(icon);
// 属性名称
local property = FontAssetManager.GenerateNormal(title, true, {
color = titlecolor
});
property.SetPosition(icon.right() + 5, icon.Y);
Addchild(property);
// 属性数值
local propertyNum = FontAssetManager.GenerateNormal(numText, true, {
color = numColor
});
local numX = width - propertyNum.GetSize().w;
propertyNum.SetPosition( numX, icon.Y);
Addchild(propertyNum);
}
//逻辑入口
function Proc(Dt) {
SyncPos(X, Y);
base.Proc(Dt);
}
}
// 其他面板按钮
class otherButton extends Yosin_CommonUi {
// 是否启用按钮
enabled = true;
// pvp 是否是pvp 按钮
constructor(gX, gY, idx, title, pvp = false, enabled = true, ) {
base.constructor(gX, gY, 65, 65);
this.enabled = enabled;
local titlecolor = enabled? sq_RGBA(160, 132, 75, 255) : sq_RGBA(79, 79, 79, 255);
// 属性名称
local property = FontAssetManager.GenerateNormal(title, true, {
color = titlecolor
});
property.SetPosition( 32 - property.GetSize().w / 2 , 45 );
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 );
Addchild(icon);
}
}

View File

@ -0,0 +1,45 @@
/*
文件名:4_PersonalInfo.nut
路径:User/UI/Window/4_Personalinfo/4_PersonalInfo.nut
创建日期:2025-01-09 13:55
文件用途: 个人信息窗口
*/
// local infoWindow = Sq_CreateWindow(_PersonalInfo, "个人信息窗口", 250, 60, 286, 530, 20);
class _PersonalInfo extends Yosin_Window {
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
base.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
local title = Yosin_TopTitle(gWidth, gHeight, "个人信息(M)");
AddUIChild(title);
//注册控件
RegisterWidget();
}
function RegisterWidget() {
// 标题按钮
local titlesBtn = Yosin_RowMoreTitleBtn(10, 25, 266, ["角色", "装扮/宠物", "护石"], "sprite/interface/lenheartwindowcommon.img", 160);
AddUIChild(titlesBtn);
titlesBtn.LBDownOnClick = function(btns, index) {
};
// 角色信息
local roleInfo = roleInfoPage(10, titlesBtn.bottom() + 2 );
AddUIChild(roleInfo);
}
//逻辑入口
function Proc(Dt) {
SyncPos(X, Y);
base.Proc(Dt);
}
}

View File

@ -0,0 +1,451 @@
/*
文件名:Personalinfo_RoleInfoPage.nut
路径:User/UI/Window/4_Personalinfo/Personalinfo_RoleInfoPage.nut
创建日期:2025-01-09 13:51
文件用途: 个人信息-角色信息页面
*/
// 角色信息
class roleInfoPage extends Yosin_CommonUi {
brown = sq_RGBA(160, 132, 75, 255);
green = sq_RGBA(74, 161, 87, 255);
Canvas = null;
constructor(gX, gY) {
local w = 266;
local h = 465;
base.constructor( gX, gY, w, h);
// 创建画布
Canvas = CL_CanvasObject();
// 重设大小并清空
Canvas.ResizeAndClear(w, h);
// 开始绘制
Canvas.BeginDraw();
// 绘制
DrawWidget();
// 结束绘制
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() {
// 背景
local backGround = CL_SpriteFrameObject("sprite/interface2/profile/profile.img", 60);
Canvas.DrawSpriteFrame(backGround, 0, 0);
// 上半部分 装备展示
local equipment = Personalinfo_CharactersEquipment();
Canvas.DrawSprite(equipment);
// 名称 等级 其他
RegisterNameAndOther();
// 属性
RegisterPropertyItems();
}
// 名称 等级 其他
function RegisterNameAndOther() {
// 名称
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
});
local adventurerFameTextRight = adventurerFameRight + 5 + adventurerFameText.GetSize().w;
Canvas.DrawActor(adventurerFameText, adventurerFameRight + 5, 185);
// 冒险家名望数值
local adventurerFameNum = FontAssetManager.GenerateNormal("7", true, {
color = green
});
Canvas.DrawActor(adventurerFameNum, adventurerFameTextRight + 5, 185);
}
// 属性
function RegisterPropertyItems() {
// 属性
local leftListX = 0;
local rightListX = 132;
local rowY = 213;
local rowH = 18;
// 生命
local life = roleInfoPropertyItem( 0, "生命", "100");
Canvas.DrawSprite(life, leftListX, rowY);
// 魔法
local magic = roleInfoPropertyItem( 1, "魔法", "100");
Canvas.DrawSprite(magic, rightListX, rowY);
rowY += rowH;
// 物理防御力
local physicalDefense = roleInfoPropertyItem(8, "物理防御力", "100", false);
Canvas.DrawSprite(physicalDefense, leftListX, rowY);
// 魔法防御力
local magicDefense = roleInfoPropertyItem( 9, "魔法防御力", "100");
Canvas.DrawSprite(magicDefense, rightListX, rowY);
rowY += rowH;
// 力量
local strength = roleInfoPropertyItem( 2, "力量", "100");
Canvas.DrawSprite(strength, leftListX, rowY);
// 智力
local intelligence = roleInfoPropertyItem( 3, "智力", "100");
Canvas.DrawSprite(intelligence, rightListX, rowY);
rowY += rowH;
// 体力
local vitality = roleInfoPropertyItem( 4, "体力", "100");
Canvas.DrawSprite(vitality, leftListX, rowY);
// 精神
local spirit = roleInfoPropertyItem( 5, "精神", "100");
Canvas.DrawSprite(spirit, rightListX, rowY);
rowY += rowH;
// 物理攻击力
local physicalATK = roleInfoPropertyItem( 6, "物理攻击力", "100");
Canvas.DrawSprite(physicalATK, leftListX, rowY);
// 魔法攻击力
local magicATK = roleInfoPropertyItem( 7, "魔法攻击力", "100");
Canvas.DrawSprite(magicATK, rightListX, rowY);
rowY += rowH;
// 物理暴击
local physicalCrit = roleInfoPropertyItem( 10, "物理暴击", "100");
Canvas.DrawSprite(physicalCrit, leftListX, rowY);
// 魔法暴击
local magicCrit = roleInfoPropertyItem( 11, "魔法暴击", "100");
Canvas.DrawSprite(magicCrit, rightListX, rowY);
rowY += rowH;
// 独立攻击
local independentAttack = roleInfoPropertyItem( 12, "独立攻击", "100");
Canvas.DrawSprite(independentAttack, leftListX, rowY);
rowY += rowH;
// 攻击速度
local attackSpeed = roleInfoPropertyItem(13, "攻击速度", "100");
Canvas.DrawSprite(attackSpeed, leftListX, rowY);
// 释放速度
local releaseSpeed = roleInfoPropertyItem( 14, "释放速度", "100");
Canvas.DrawSprite(releaseSpeed, rightListX, rowY);
rowY += rowH;
// 移动速度
local moveSpeed = roleInfoPropertyItem( 15, "移动速度", "100");
Canvas.DrawSprite(moveSpeed, leftListX, rowY);
rowY += rowH;
// 攻击属性
local attackProperty = roleInfoPropertyItem(16, "攻击属性", "火(0)/冰(0)/光(0)/暗(0)", true, 260);
Canvas.DrawSprite(attackProperty, leftListX, rowY);
}
// 底部四个按钮
function RegisterBottomButton() {
// 副职业
local subJob = otherButton(0, 401, 62, "副职业", false);
AddUIChild(subJob);
subJob.OnClick = function (btn) {
//todo 打开副职业面板
print(11111);
}.bindenv(this);
local separation = CL_SpriteObject("sprite/interface2/profile/profile.img", 70 );
separation.SetPosition(subJob.right(), subJob.Y + 7.5);
Addchild(separation);
// 战斗分析
local battleAnalysis = otherButton(subJob.right() + 1, subJob.Y, 64, "战斗分析");
AddUIChild(battleAnalysis);
battleAnalysis.OnClick = function (btn) {
//todo 打开面板
print(11111);
}.bindenv(this);
local separationOne = CL_SpriteObject("sprite/interface2/profile/profile.img", 70 );
separationOne.SetPosition(battleAnalysis.right(), battleAnalysis.Y + 7.5);
Addchild(separationOne);
// 决斗信息 // 根据决斗场等级 显示 sprite/interface2/pvp02/pvprank_icon/tier_icon.img 24
local duelInfo = otherButton(battleAnalysis.right() + 1, battleAnalysis.Y, 14, "决斗信息", true);
AddUIChild(duelInfo);
duelInfo.OnClick = function (btn) {
//todo 打开面板
print(11111);
}.bindenv(this);
local separationTwo = CL_SpriteObject("sprite/interface2/profile/profile.img", 70 );
separationTwo.SetPosition(duelInfo.right(), duelInfo.Y + 7.5);
Addchild(separationTwo);
// 详细信息
local detailedInformation = otherButton(duelInfo.right() + 1, duelInfo.Y, 66, "详细信息");
AddUIChild(detailedInformation);
detailedInformation.OnClick = function (btn) {
//todo 打开面板
print(11111);
}.bindenv(this);
}
//逻辑入口
function Proc(Dt) {
SyncPos(X, Y);
base.Proc(Dt);
}
}
// 属性项
class roleInfoPropertyItem extends CL_CanvasObject {
// additionReaction 属性是否有加成 加成为绿色 不加成灰色
constructor(idx, title, numText, additionReaction = true, width = 125) {
local w = width;
local h = 18;
base.constructor();
// 重设大小并清空
ResizeAndClear(w, 18);
// 开始绘制
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);
local iconRight = iconX + icon.GetSize().w;
DrawSpriteFrame(icon, iconX, h/ 2 - icon.GetSize().h / 2);
// 属性名称
local property = FontAssetManager.GenerateNormal(title, true, {
color = titlecolor
});
DrawActor(property, iconRight + 5, 0);
// 属性数值
local propertyNum = FontAssetManager.GenerateNormal(numText, true, {
color = numColor
});
local numX = w - propertyNum.GetSize().w;
DrawActor(propertyNum, numX, 0);
// 结束绘制
EndDraw();
}
}
// 其他面板按钮
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);
this.enabled = enabled;
local titlecolor = enabled? sq_RGBA(160, 132, 75, 255) : sq_RGBA(79, 79, 79, 255);
// 属性名称
local property = FontAssetManager.GenerateNormal(title, true, {
color = titlecolor
});
property.SetPosition( 32 - property.GetSize().w / 2 , 45 );
Addchild(property);
local path = pvp? "sprite/interface2/profile/profile_pvp_icon.img" : "sprite/interface2/profile/profile.img";
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){
icon.SetPosition( iconX , iconY + 1 );
}else{
icon.SetPosition( iconX , iconY );
}
}
}
// 上半部分 人物装备穿戴
class Personalinfo_CharactersEquipment extends CL_CanvasObject {
// 展示其他装备
showOtherEquipment = null;
// 允许更换装备
allowChangeEquipment = null;
// // 画布
// Canvas = null;
constructor() {
local w = 248;
local h = 179;
base.constructor();
showOtherEquipment = true;
allowChangeEquipment = false;
// 创建画布
CL_CanvasObject();
// 重设大小并清空
ResizeAndClear(w, h);
// 设置填充画刷 用于绘制边框和线条
// Canvas.SetFillBrush(sq_RGBA(59, 56, 57, 250));
// 设置轮廓画刷 用于绘制边框和线条
// Canvas.SetStrokeBrush(sq_RGBA(59, 56, 57, 250));
// 开始绘制
BeginDraw();
// 绘制背景
DrawBackground(w);
// 结束绘制
EndDraw();
}
// 背景
function DrawBackground(Width) {
// 装备栏背景
local equipmentBackground = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 21);
DrawSpriteFrame(equipmentBackground, 5, 5);
// 顶部光线
local topLight = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 178);
DrawSpriteFrame(topLight, Width / 2 - topLight.GetSize().w / 2, 0);
// todo 角色展示
// 结婚戒指槽位
local ringSlotBg = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory_cn.img", 0);
DrawSpriteFrame(ringSlotBg, Width / 2 - ringSlotBg.GetSize().w / 2, 5);
// todo 根据是否装备 显示装备
if (showOtherEquipment) {
// 辅助装备
local assist = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 19);
DrawSpriteFrame(assist, 179, 69);
// 耳环
local earrings = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 122);
DrawSpriteFrame(earrings, 179, 102);
// 魔法石
local MagicStone = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 20);
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();
// }

View File

@ -5,7 +5,7 @@
文件用途: 背包窗口 文件用途: 背包窗口
*/ */
//local Window = Sq_CreateWindow(_Inventory, "背包窗口", 150, 12, 262, 555, 20); // local Window = Sq_CreateWindow(_Inventory, "背包窗口", 150, 12, 262, 548, 20);
class _Inventory extends Yosin_Window { class _Inventory extends Yosin_Window {
equipmentPage = null; equipmentPage = null;
@ -25,7 +25,7 @@ class _Inventory extends Yosin_Window {
Addchild(title); Addchild(title);
//关闭按钮 //关闭按钮
local closeBtn = Yosin_BaseButton(Width - 15, 4, 12, 12, "sprite/interface/lenheartwindowcommon.img", 544); local closeBtn = Yosin_BaseButton(Width - 20, 4, 12, 12, "sprite/interface/lenheartwindowcommon.img", 544);
closeBtn.DownSimulateOffset = false; closeBtn.DownSimulateOffset = false;
closeBtn.SetZOrder(1); closeBtn.SetZOrder(1);
closeBtn.OnClick = function(btn) { closeBtn.OnClick = function(btn) {
@ -40,25 +40,118 @@ class _Inventory extends Yosin_Window {
} }
AddUIChild(topBtn); AddUIChild(topBtn);
//标题按钮 //分页按钮
local titlesBtn = Yosin_RowMoreTitleBtn(5, 22, 252, ["物品栏", "装扮", "宠物", "护石"], "sprite/interface/lenheartwindowcommon.img", 160); local titlesBtn = Yosin_RowMoreTitleBtn(5, 25, 250, ["物品栏", "装扮", "宠物", "护石"], "sprite/interface/lenheartwindowcommon.img", 160);
AddUIChild(titlesBtn); AddUIChild(titlesBtn);
titlesBtn.LBDownOnClick = function(btns, index) { titlesBtn.LBDownOnClick = function(btns, index) {
print(index); print(index);
}; };
//物品栏 装备页 //物品栏 装备页
equipmentPage = Inventory_EquipmentPage(2, titlesBtn.bottom() + 4, 300, Height - titlesBtn.bottom() - 4); equipmentPage = Inventory_EquipmentPage(2, titlesBtn.bottom(), 300, 441);
AddUIChild(equipmentPage); AddUIChild(equipmentPage);
// 添加设置物品栏的按钮
AddItemCollectSetBtn();
// 钱包
AddMoneyItem();
}
// 添加设置物品栏的按钮
function AddItemCollectSetBtn() {
// 排列按钮
local permutationBtn = Yosin_BaseButton(226, 467, 28, 23 "sprite/interface/newstyle/windows/inventory/inventory.img", 73);
AddUIChild(permutationBtn);
// 设置
local setBtn = Yosin_BaseButton(permutationBtn.X - 20, permutationBtn.Y, 18, 23 "sprite/interface/newstyle/windows/inventory/inventory.img", 77);
AddUIChild(setBtn);
// 搜索
local saerchBtn = Yosin_BaseButton(setBtn.X - 24, permutationBtn.Y, 23, 23 "sprite/interface/newstyle/windows/inventory/inventory.img", 94);
AddUIChild(saerchBtn);
}
// 钱包
function AddMoneyItem() {
local txtColor = sq_RGBA(130, 105, 61, 255);
local bg = CL_SpriteObject("sprite/interface/newstyle/windows/inventory/inventory.img", 27);
bg.SetPosition(7, Height - 55);
Addchild(bg);
// 复活币个数
local ReviveNum = FontAssetManager.GenerateNormal("23434个", true, {
color = txtColor
});
ReviveNum.SetPosition(120 - ReviveNum.GetSize().w + bg.X , bg.Y + 2);
Addchild(ReviveNum);
// 胜利的证明
local winNum = FontAssetManager.GenerateNormal("23434个", true, {
color = txtColor
});
winNum.SetPosition(245 - winNum.GetSize().w + bg.X, bg.Y + 2);
Addchild(winNum);
// 商城
local storeBtn = Yosin_BaseButton(1 + bg.X, bg.Y + 25, 23, 23 "sprite/interface/newstyle/windows/inventory/inventory.img", 3);
//点击事件回调
// storeBtn.OnClick = function(Button) {
// }.bindenv(this);
AddUIChild(storeBtn);
// 点券
local storeNum = FontAssetManager.GenerateNormal("23434点券", true, {
color = txtColor
});
storeNum.SetPosition( bg.X + 120 - storeNum.GetSize().w , bg.Y + 27);
Addchild(storeNum);
// 金币按钮
local moneyBtn = Yosin_BaseButton(126 + bg.X, storeBtn.Y, 23, 23 "sprite/interface/newstyle/windows/inventory/inventory.img", 7);
//点击事件回调
// moneyBtn.OnClick = function(Button) {
// }.bindenv(this);
AddUIChild(moneyBtn);
// 金币数量
local storeNum = FontAssetManager.GenerateNormal("23434金币", true, {
color = txtColor
});
storeNum.SetPosition( bg.X + 245 - storeNum.GetSize().w, bg.Y + 27);
Addchild(storeNum);
} }
//逻辑入口 //逻辑入口
function Proc(Dt) { function Proc(Dt) {
SyncPos(X, Y); SyncPos(X, Y);
base.Proc(Dt); base.Proc(Dt);
} }
} }
// 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();
// }

View File

@ -8,71 +8,32 @@
// 背包装备页面 // 背包装备页面
class Inventory_EquipmentPage extends Yosin_CommonUi { class Inventory_EquipmentPage extends Yosin_CommonUi {
Item = null; // Item = null;
ItemCollection = null;
constructor(x, y, w, h) { constructor(x, y, w, h) {
base.constructor(x, y, w, h); base.constructor(x, y, w, h);
// 人物装备 // 人物装备
local charactersEquipment = Inventory_CharactersEquipment(5, 0); local charactersEquipment = Inventory_CharactersEquipment();
AddUIChild(charactersEquipment); charactersEquipment.SetPosition(5, 0);
Addchild(charactersEquipment);
// 添加书本按钮
AddBookButton();
// 物品栏 // 物品栏
Item = InventoryItem(0, charactersEquipment.bottom(), Width, Height - charactersEquipment.bottom()); AddItem();
AddUIChild(Item);
} }
}
// 上半部分 人物装备穿戴
class Inventory_CharactersEquipment extends Yosin_CommonUi {
// 展示其他装备
showOtherEquipment = null;
// 允许更换装备
allowChangeEquipment = null;
// 画布
Canvas = null;
constructor(x, y) {
local w = 248;
local h = 179;
base.constructor(x, y, w, h);
showOtherEquipment = true;
allowChangeEquipment = true;
// 创建画布
Canvas = CL_CanvasObject();
// 重设大小并清空
Canvas.ResizeAndClear(w, h);
// 设置填充画刷 用于绘制边框和线条
// Canvas.SetFillBrush(sq_RGBA(59, 56, 57, 250));
// 设置轮廓画刷 用于绘制边框和线条
// Canvas.SetStrokeBrush(sq_RGBA(59, 56, 57, 250));
// 开始绘制
Canvas.BeginDraw();
// 绘制背景
DrawBackground();
// 结束绘制
Canvas.EndDraw();
// 添加画布
Addchild(Canvas);
AddButton();
}
// 添加按钮 // 添加按钮
function AddButton() { function AddBookButton() {
// 称号 // 称号
local designation = Yosin_BaseButton(2, Height - 30, 18, 20 "sprite/interface/newstyle/windows/inventory/inventory.img", 50); local designation = Yosin_BaseButton(7, 145, 18, 20 "sprite/interface/newstyle/windows/inventory/inventory.img", 50);
//点击事件回调 //点击事件回调
// permutationBtn.OnClick = function(Button) { // permutationBtn.OnClick = function(Button) {
// }.bindenv(this); // }.bindenv(this);
@ -86,77 +47,20 @@ class Inventory_CharactersEquipment extends Yosin_CommonUi {
AddUIChild(skin); AddUIChild(skin);
// 穿戴中的装备 // 穿戴中的装备
local wear = Yosin_BaseButton(Width - 29, designation.Y, 18, 20 "sprite/interface/newstyle/windows/inventory/inventory.img", 172); local wear = Yosin_BaseButton(225, designation.Y, 18, 20 "sprite/interface/newstyle/windows/inventory/inventory.img", 172);
AddUIChild(wear); AddUIChild(wear);
// 装备特性 // 装备特性
local peculiarity = Yosin_BaseButton(wear.X - 21, designation.Y, 18, 20 "sprite/interface/newstyle/windows/inventory/inventory.img", 203); local peculiarity = Yosin_BaseButton(wear.X - 21, designation.Y, 18, 20 "sprite/interface/newstyle/windows/inventory/inventory.img", 203);
AddUIChild(peculiarity); AddUIChild(peculiarity);
// 未央环境装备 // 未央环境装备
// local permutationBtn = Yosin_BaseButton(peculiarity.X - 21, designation.Y, 18, 20 "sprite/interface/newstyle/windows/inventory/inventory.img", 128); local permutationBtn = Yosin_BaseButton(peculiarity.X - 21, designation.Y, 18, 20 "sprite/interface/newstyle/windows/inventory/inventory.img", 128);
// AddUIChild(permutationBtn); AddUIChild(permutationBtn);
} }
// 添加物品栏
// 背景 function AddItem() {
function DrawBackground() {
// 背景图
local bgimg = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventorybackground.img", 0);
// 画布绘制背景
Canvas.DrawSpriteFrame(bgimg, 0, 0);
// 装备栏背景
local equipmentBackground = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 21);
Canvas.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);
// todo 角色展示
// 结婚戒指槽位
local ringSlotBg = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory_cn.img", 0);
Canvas.DrawSpriteFrame(ringSlotBg, Width / 2 - ringSlotBg.GetSize().w / 2, 5);
// 首饰
if (showOtherEquipment) {
// 辅助装备
local assist = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 19);
Canvas.DrawSpriteFrame(assist, 179, 69);
// 耳环
local earrings = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 122);
Canvas.DrawSpriteFrame(earrings, 179, 102);
// 魔法石
local MagicStone = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 20);
Canvas.DrawSpriteFrame(MagicStone, 211, 101);
}
}
}
// 物品栏
class InventoryItem extends Yosin_CommonUi {
ItemCollection = null;
constructor(gX, gY, gWidth, gHeight) {
base.constructor(gX, gY, gWidth, gHeight);
//物品分类按钮 //物品分类按钮
local itemBtns = Yosin_RowMoreTitleBtn(3, 4, 252, ["装备", "消耗品", "材料", "副职业", "任务"], "sprite/interface/lenheartwindowcommon.img", 160); local itemBtns = Yosin_RowMoreTitleBtn(5, 182, 248, ["装备", "消耗品", "材料", "副职业", "任务"], "sprite/interface/lenheartwindowcommon.img", 160);
AddUIChild(itemBtns); AddUIChild(itemBtns);
itemBtns.LBDownOnClick = function(btns, index) { itemBtns.LBDownOnClick = function(btns, index) {
@ -164,11 +68,12 @@ class InventoryItem extends Yosin_CommonUi {
}; };
// 物品栏边框 // 物品栏边框
local itemBg = Yosin_NineBoxStretch(2, itemBtns.bottom(), 253, 245, "sprite/interface/lenheartwindowcommon.img", 97); local itemBg = Yosin_NineBoxStretch(253, 245, "sprite/interface/lenheartwindowcommon.img", 97);
itemBg.SetPosition(2, itemBtns.bottom());
Addchild(itemBg); Addchild(itemBg);
// 物品栏 // 物品栏
ItemCollection = _ItemCollection(itemBg.X + 7, itemBg.Y + 7, 7); ItemCollection = _ItemCollection(itemBg.X + 7, itemBg.Y + 3, 7);
AddUIChild(ItemCollection); AddUIChild(ItemCollection);
@ -185,110 +90,77 @@ class InventoryItem extends Yosin_CommonUi {
weightSchedule.SetPercentage(0.6); weightSchedule.SetPercentage(0.6);
Addchild(weightSchedule); Addchild(weightSchedule);
// 排列按钮
local permutationBtn = Yosin_BaseButton(itemBg.right() - 30, itemBgBottom - 26, 28, 23 "sprite/interface/newstyle/windows/inventory/inventory.img", 73);
AddUIChild(permutationBtn);
// 设置
local setBtn = Yosin_BaseButton(permutationBtn.X - 20, permutationBtn.Y, 18, 23 "sprite/interface/newstyle/windows/inventory/inventory.img", 77);
AddUIChild(setBtn);
// 搜索
local saerchBtn = Yosin_BaseButton(setBtn.X - 24, permutationBtn.Y, 23, 23 "sprite/interface/newstyle/windows/inventory/inventory.img", 94);
AddUIChild(saerchBtn);
// 复活币
local moneyItem = MoneyItem(5, itemBgBottom + 3, 3);
AddUIChild(moneyItem);
}
function SetItemList(gItemList) {
ItemCollection.SetItemList(gItemList);
} }
} }
// 金币相关数值
class MoneyItem extends Yosin_CommonUi {
constructor(x, y, idx) {
// 上半部分 人物装备穿戴
class Inventory_CharactersEquipment extends CL_CanvasObject {
constructor() {
local w = 248; local w = 248;
local h = 49; local h = 179;
base.constructor(x, y, w, h); base.constructor();
local txtColor = sq_RGBA(130, 105, 61, 255); // 创建画布
CL_CanvasObject();
// 重设大小并清空
ResizeAndClear(w, h);
// 开始绘制
BeginDraw();
local bg = CL_SpriteObject("sprite/interface/newstyle/windows/inventory/inventory.img", 27); // 绘制背景
Addchild(bg); DrawBackground(w);
// 复活币个数 // 结束绘制
local ReviveNum = FontAssetManager.GenerateNormal("23434个", true, { EndDraw();
color = txtColor }
});
ReviveNum.SetPosition(120 - ReviveNum.GetSize().w, 2);
Addchild(ReviveNum);
// 胜利的证明 // 背景
local winNum = FontAssetManager.GenerateNormal("23434个", true, { function DrawBackground(Width) {
color = txtColor
}); // 背景图
winNum.SetPosition(245 - winNum.GetSize().w, 2); local bgimg = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventorybackground.img", 0);
Addchild(winNum); // 画布绘制背景
DrawSpriteFrame(bgimg, 0, 0);
// 装备栏背景
local equipmentBackground = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 21);
DrawSpriteFrame(equipmentBackground, 5, 5);
// 顶部光线
local topLight = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 178);
DrawSpriteFrame(topLight, Width / 2 - topLight.GetSize().w / 2, 0);
// 商城 // todo 角色展示
local storeBtn = Yosin_BaseButton(1, 25, 23, 23 "sprite/interface/newstyle/windows/inventory/inventory.img", 3);
// local storeBtn = Yosin_BaseButton(0, 0, 23, 23 "sprite/interface/newstyle/windows/inventory/inventory.img", 3); // 结婚戒指槽位
//点击事件回调 local ringSlotBg = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory_cn.img", 0);
// storeBtn.OnClick = function(Button) { DrawSpriteFrame(ringSlotBg, Width / 2 - ringSlotBg.GetSize().w / 2, 5);
// }.bindenv(this);
AddUIChild(storeBtn);
// 点券 // 辅助装备
local storeNum = FontAssetManager.GenerateNormal("23434点券", true, { local assist = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 19);
color = txtColor DrawSpriteFrame(assist, 179, 69);
});
storeNum.SetPosition(120 - storeNum.GetSize().w, 27);
Addchild(storeNum);
// 金币按钮
local moneyBtn = Yosin_BaseButton(126, storeBtn.Y, 23, 23 "sprite/interface/newstyle/windows/inventory/inventory.img", 7);
//点击事件回调
// moneyBtn.OnClick = function(Button) {
// }.bindenv(this);
AddUIChild(moneyBtn);
// 金币数量
local storeNum = FontAssetManager.GenerateNormal("23434金币", true, {
color = txtColor
});
storeNum.SetPosition(245 - storeNum.GetSize().w, 27);
Addchild(storeNum);
// 耳环
local earrings = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 122);
DrawSpriteFrame(earrings, 179, 102);
// 魔法石
local MagicStone = CL_SpriteFrameObject("sprite/interface/newstyle/windows/inventory/inventory.img", 20);
DrawSpriteFrame(MagicStone, 211, 101);
} }
} }
// if (!getroottable().rawin("chongzaiflag")) { // if (!getroottable().rawin("chongzaiflag")) {
// getroottable()["chongzaiflag"] <- true; // getroottable()["chongzaiflag"] <- true;
// } else { // } else {

View File

@ -262,14 +262,14 @@ class _ItemCollection extends Yosin_CommonUi {
} }
if (!getroottable().rawin("chongzaiflag")) { // if (!getroottable().rawin("chongzaiflag")) {
getroottable()["chongzaiflag"] <- true; // getroottable()["chongzaiflag"] <- true;
} else { // } else {
//遍历窗口队列 如果可见则调用Show // //遍历窗口队列 如果可见则调用Show
for (local i = 0; i< _SYS_WINDOW_LIST_.len(); i++) { // for (local i = 0; i< _SYS_WINDOW_LIST_.len(); i++) {
local Window = _SYS_WINDOW_LIST_[i]; // local Window = _SYS_WINDOW_LIST_[i];
Window.Visible = false; // Window.Visible = false;
Window.RemoveSelf(); // Window.RemoveSelf();
} // }
TestStage(); // TestStage();
} // }

View File

@ -259,7 +259,7 @@
}, },
"User/UI/Widget/Top_Title.nut": { "User/UI/Widget/Top_Title.nut": {
"description": "窗口顶部标题" "description": "窗口顶部标题"
}, },
"User/Socket/Packet.nut": { "User/Socket/Packet.nut": {
"description": "数据包类" "description": "数据包类"
}, },
@ -271,5 +271,17 @@
}, },
"Core/BaseClass/AudioClass.nut": { "Core/BaseClass/AudioClass.nut": {
"description": "音频类" "description": "音频类"
},
"User/UI/Window/5_Inventory": {
"description": "背包"
},
"User/UI/Window/4_Personalinfo": {
"description": "个人信息"
},
"User/UI/Window/4_Personalinfo/4_PersonalInfo.nut": {
"description": "个人信息窗口"
},
"User/UI/Window/4_Personalinfo/Personalinfo_RoleInfoPage.nut": {
"description": "个人信息页"
} }
} }