拓展 UI类 可以使用 裁切函数
This commit is contained in:
parent
50bea6ba37
commit
89dc150b09
BIN
Yosin_Engine.exe
BIN
Yosin_Engine.exe
Binary file not shown.
|
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
文件名:LayerObject.nut
|
||||
路径:Core/BaseClass/LayerObject.nut
|
||||
创建日期:2024-12-13 21:26
|
||||
文件用途:
|
||||
*/
|
||||
class Layer extends Actor {
|
||||
|
||||
constructor(...) {
|
||||
local C_Object;
|
||||
if (vargv.len() == 0) {
|
||||
C_Object = LayerActor_Create();
|
||||
base.constructor(C_Object);
|
||||
} else {
|
||||
C_Object = vargv[0];
|
||||
base.constructor(C_Object, true);
|
||||
}
|
||||
}
|
||||
|
||||
//设置图层裁剪区域
|
||||
function SetClipRect(x, y, w, h) {
|
||||
LayerActor_SetClipRect(this.C_Object, x, y, w, h);
|
||||
}
|
||||
|
||||
//设置图层透明度
|
||||
function SetLayerOpacity(alpha) {
|
||||
LayerActor_SetOpacity(this.C_Object, alpha);
|
||||
}
|
||||
}
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
//窗口队列
|
||||
_SYS_WINDOW_LIST_ <- [];
|
||||
//基础窗口类 所有UI类继承与本类
|
||||
class Yosin_BaseWindow extends Actor {
|
||||
class Yosin_BaseWindow extends Layer {
|
||||
//父控件
|
||||
ParentFlag = null;
|
||||
//子控件
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ sqr/Core/BaseClass/BaseObject.nut
|
|||
sqr/Core/BaseClass/AudioClass.nut
|
||||
sqr/Core/BaseClass/StageClass.nut
|
||||
sqr/Core/BaseClass/ActorObject.nut
|
||||
sqr/Core/BaseClass/LayerObject.nut
|
||||
sqr/Core/BaseClass/UserStorage.nut
|
||||
sqr/Core/BaseClass/SpriteObject/SpriteFrameClass.nut
|
||||
sqr/Core/BaseClass/SpriteObject/SpriteClass.nut
|
||||
|
|
|
|||
|
|
@ -6,6 +6,9 @@
|
|||
*/
|
||||
class _Select_Character_SettingBackground_Object_Window extends Yosin_CommonUi {
|
||||
|
||||
//编号
|
||||
Idx = 0;
|
||||
|
||||
//蓝色悬停框
|
||||
RectMask = null;
|
||||
//黄色选中框
|
||||
|
|
@ -14,14 +17,16 @@ class _Select_Character_SettingBackground_Object_Window extends Yosin_CommonUi {
|
|||
SelectFlag = false;
|
||||
|
||||
|
||||
constructor(x, y, width, height, Idx) {
|
||||
constructor(x, y, width, height, gIdx) {
|
||||
base.constructor(x, y, width, height);
|
||||
//编号
|
||||
Idx = gIdx;
|
||||
|
||||
//注册绘制
|
||||
RegisterDraw(Idx);
|
||||
RegisterDraw();
|
||||
}
|
||||
|
||||
function RegisterDraw(Idx) {
|
||||
function RegisterDraw() {
|
||||
//背景
|
||||
local Background = CL_SpriteObject("sprite/interface2/selectcharacter_ver2/background/small/background_small_event.img", Idx);
|
||||
Background.SetScale(0.7, 0.7);
|
||||
|
|
@ -53,8 +58,16 @@ class _Select_Character_SettingBackground_Object_Window extends Yosin_CommonUi {
|
|||
function OnMouseLbClick(MousePos_X, MousePos_Y) {
|
||||
base.OnMouseLbClick(MousePos_X, MousePos_Y);
|
||||
if (isInRect) {
|
||||
//遍历父对象中的所有按钮 还原其他按钮
|
||||
foreach(Button in Parent.SettingBackgroundButtonList) {
|
||||
Button.SelectMask.SetVisible(false);
|
||||
Button.SelectFlag = false;
|
||||
}
|
||||
//设置自身选中状态
|
||||
SelectMask.SetVisible(true);
|
||||
SelectFlag = true;
|
||||
|
||||
Parent.Parent.ChangeBackground(Idx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -66,9 +79,19 @@ class _Select_Character_SettingBackground_Window extends Yosin_Window {
|
|||
//是否可见
|
||||
Visible = false;
|
||||
|
||||
//选择背景按钮集合
|
||||
SettingBackgroundButtonList = null;
|
||||
|
||||
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
||||
base.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
|
||||
SettingBackgroundButtonList = [];
|
||||
|
||||
SetClipRect(-gWidth, 0, gWidth, gHeight + 20);
|
||||
// ShowBorder(true);
|
||||
// SetLayerOpacity(1);
|
||||
}
|
||||
|
||||
function Init() {
|
||||
//注册绘制
|
||||
RegisterDraw();
|
||||
}
|
||||
|
|
@ -79,7 +102,13 @@ class _Select_Character_SettingBackground_Window extends Yosin_Window {
|
|||
Addchild(Background);
|
||||
|
||||
for (local i = 0; i< 24; i++) {
|
||||
local Buf = _Select_Character_SettingBackground_Object_Window(10 + (101 * (i % 2)), 10 + (61 * (i / 2)), 91, 51, i);
|
||||
local Buf = _Select_Character_SettingBackground_Object_Window(5 + (101 * (i % 2)), 9 + (61 * (i / 2)), 91, 51, i);
|
||||
SettingBackgroundButtonList.push(Buf);
|
||||
//如果是父对象默认构造的默认是勾选状态
|
||||
if (i == Parent.Info.Background) {
|
||||
Buf.SelectMask.SetVisible(true);
|
||||
Buf.SelectFlag = true;
|
||||
}
|
||||
AddUIChild(Buf);
|
||||
}
|
||||
}
|
||||
|
|
@ -147,6 +176,8 @@ class _Select_Character_Window extends Yosin_Window {
|
|||
function RegisterWindow() {
|
||||
SettingBackgroundWindow = _Select_Character_SettingBackground_Window("选择角色_设置背景图片窗口", 850, 28, 212, 129, 0);
|
||||
AddUIChild(SettingBackgroundWindow);
|
||||
//先添加为子对象 因为子对象需要用到父对象
|
||||
SettingBackgroundWindow.Init();
|
||||
}
|
||||
|
||||
function RegisterWidget() {
|
||||
|
|
@ -170,10 +201,20 @@ class _Select_Character_Window extends Yosin_Window {
|
|||
SettingButton.Addchild(LoginTextActor);
|
||||
}
|
||||
|
||||
//切换背景
|
||||
function ChangeBackground(Idx) {
|
||||
if (BackGround) {
|
||||
BackGround.RemoveSelf();
|
||||
BackGround = null;
|
||||
}
|
||||
BackGround = CL_SpriteObject("sprite/interface2/selectcharacter_ver2/background/large/background_large_event.img", Idx);
|
||||
BackGround.SetZOrder(-10);
|
||||
Addchild(BackGround);
|
||||
}
|
||||
|
||||
function RegisterDraw() {
|
||||
//大背景 根据玩家的设定背景决定
|
||||
BackGround = CL_SpriteObject("sprite/interface2/selectcharacter_ver2/background/large/background_large.img", Info.Background);
|
||||
Addchild(BackGround);
|
||||
ChangeBackground(Info.Background);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -157,5 +157,8 @@
|
|||
},
|
||||
"User/Object/ActiveObject/GameObjectClass.nut": {
|
||||
"description": "游戏对象(对象基类)"
|
||||
},
|
||||
"Core/BaseClass/LayerObject.nut": {
|
||||
"description": "图层类"
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue