拓展 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_ <- [];
|
_SYS_WINDOW_LIST_ <- [];
|
||||||
//基础窗口类 所有UI类继承与本类
|
//基础窗口类 所有UI类继承与本类
|
||||||
class Yosin_BaseWindow extends Actor {
|
class Yosin_BaseWindow extends Layer {
|
||||||
//父控件
|
//父控件
|
||||||
ParentFlag = null;
|
ParentFlag = null;
|
||||||
//子控件
|
//子控件
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ sqr/Core/BaseClass/BaseObject.nut
|
||||||
sqr/Core/BaseClass/AudioClass.nut
|
sqr/Core/BaseClass/AudioClass.nut
|
||||||
sqr/Core/BaseClass/StageClass.nut
|
sqr/Core/BaseClass/StageClass.nut
|
||||||
sqr/Core/BaseClass/ActorObject.nut
|
sqr/Core/BaseClass/ActorObject.nut
|
||||||
|
sqr/Core/BaseClass/LayerObject.nut
|
||||||
sqr/Core/BaseClass/UserStorage.nut
|
sqr/Core/BaseClass/UserStorage.nut
|
||||||
sqr/Core/BaseClass/SpriteObject/SpriteFrameClass.nut
|
sqr/Core/BaseClass/SpriteObject/SpriteFrameClass.nut
|
||||||
sqr/Core/BaseClass/SpriteObject/SpriteClass.nut
|
sqr/Core/BaseClass/SpriteObject/SpriteClass.nut
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,9 @@
|
||||||
*/
|
*/
|
||||||
class _Select_Character_SettingBackground_Object_Window extends Yosin_CommonUi {
|
class _Select_Character_SettingBackground_Object_Window extends Yosin_CommonUi {
|
||||||
|
|
||||||
|
//编号
|
||||||
|
Idx = 0;
|
||||||
|
|
||||||
//蓝色悬停框
|
//蓝色悬停框
|
||||||
RectMask = null;
|
RectMask = null;
|
||||||
//黄色选中框
|
//黄色选中框
|
||||||
|
|
@ -14,14 +17,16 @@ class _Select_Character_SettingBackground_Object_Window extends Yosin_CommonUi {
|
||||||
SelectFlag = false;
|
SelectFlag = false;
|
||||||
|
|
||||||
|
|
||||||
constructor(x, y, width, height, Idx) {
|
constructor(x, y, width, height, gIdx) {
|
||||||
base.constructor(x, y, width, height);
|
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);
|
local Background = CL_SpriteObject("sprite/interface2/selectcharacter_ver2/background/small/background_small_event.img", Idx);
|
||||||
Background.SetScale(0.7, 0.7);
|
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) {
|
function OnMouseLbClick(MousePos_X, MousePos_Y) {
|
||||||
base.OnMouseLbClick(MousePos_X, MousePos_Y);
|
base.OnMouseLbClick(MousePos_X, MousePos_Y);
|
||||||
if (isInRect) {
|
if (isInRect) {
|
||||||
|
//遍历父对象中的所有按钮 还原其他按钮
|
||||||
|
foreach(Button in Parent.SettingBackgroundButtonList) {
|
||||||
|
Button.SelectMask.SetVisible(false);
|
||||||
|
Button.SelectFlag = false;
|
||||||
|
}
|
||||||
|
//设置自身选中状态
|
||||||
SelectMask.SetVisible(true);
|
SelectMask.SetVisible(true);
|
||||||
SelectFlag = true;
|
SelectFlag = true;
|
||||||
|
|
||||||
|
Parent.Parent.ChangeBackground(Idx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -66,9 +79,19 @@ class _Select_Character_SettingBackground_Window extends Yosin_Window {
|
||||||
//是否可见
|
//是否可见
|
||||||
Visible = false;
|
Visible = false;
|
||||||
|
|
||||||
|
//选择背景按钮集合
|
||||||
|
SettingBackgroundButtonList = null;
|
||||||
|
|
||||||
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
|
||||||
base.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();
|
RegisterDraw();
|
||||||
}
|
}
|
||||||
|
|
@ -79,7 +102,13 @@ class _Select_Character_SettingBackground_Window extends Yosin_Window {
|
||||||
Addchild(Background);
|
Addchild(Background);
|
||||||
|
|
||||||
for (local i = 0; i< 24; i++) {
|
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);
|
AddUIChild(Buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -147,6 +176,8 @@ class _Select_Character_Window extends Yosin_Window {
|
||||||
function RegisterWindow() {
|
function RegisterWindow() {
|
||||||
SettingBackgroundWindow = _Select_Character_SettingBackground_Window("选择角色_设置背景图片窗口", 850, 28, 212, 129, 0);
|
SettingBackgroundWindow = _Select_Character_SettingBackground_Window("选择角色_设置背景图片窗口", 850, 28, 212, 129, 0);
|
||||||
AddUIChild(SettingBackgroundWindow);
|
AddUIChild(SettingBackgroundWindow);
|
||||||
|
//先添加为子对象 因为子对象需要用到父对象
|
||||||
|
SettingBackgroundWindow.Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
function RegisterWidget() {
|
function RegisterWidget() {
|
||||||
|
|
@ -170,10 +201,20 @@ class _Select_Character_Window extends Yosin_Window {
|
||||||
SettingButton.Addchild(LoginTextActor);
|
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() {
|
function RegisterDraw() {
|
||||||
//大背景 根据玩家的设定背景决定
|
//大背景 根据玩家的设定背景决定
|
||||||
BackGround = CL_SpriteObject("sprite/interface2/selectcharacter_ver2/background/large/background_large.img", Info.Background);
|
ChangeBackground(Info.Background);
|
||||||
Addchild(BackGround);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -157,5 +157,8 @@
|
||||||
},
|
},
|
||||||
"User/Object/ActiveObject/GameObjectClass.nut": {
|
"User/Object/ActiveObject/GameObjectClass.nut": {
|
||||||
"description": "游戏对象(对象基类)"
|
"description": "游戏对象(对象基类)"
|
||||||
|
},
|
||||||
|
"Core/BaseClass/LayerObject.nut": {
|
||||||
|
"description": "图层类"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue