3 Commits

Author SHA1 Message Date
lostluna1
e2eb7f9716 enum文档注释 2025-10-25 15:57:17 +08:00
64659ae536 Merge pull request '加入文本精灵' (#5) from Lenheart into master
Reviewed-on: http://49.234.27.222:3000/Lenheart/DNF_DEV_SQR/pulls/5
2025-10-25 15:54:07 +08:00
89899a3799 加入文本精灵 2025-10-25 15:51:53 +08:00
10 changed files with 115 additions and 34 deletions

View File

@@ -20,6 +20,7 @@ UI/ObjectClass/Actor.nut
UI/ObjectClass/WindowNode.nut UI/ObjectClass/WindowNode.nut
UI/ObjectClass/GameWindow.nut UI/ObjectClass/GameWindow.nut
UI/ObjectClass/GameWidget.nut UI/ObjectClass/GameWidget.nut
UI/ObjectClass/Text.nut
UI/ObjectClass/Sprite.nut UI/ObjectClass/Sprite.nut
UI/ObjectClass/Canvas.nut UI/ObjectClass/Canvas.nut

View File

@@ -22,3 +22,20 @@ function print(Object) {
break; break;
} }
} }
/**
* 返回颜色的十六进制数
* @function
* @param {any} R
* @param {any} G
* @param {any} B
* @param {any} A
* @returns {*}
*/
function sq_RGBA(R, G, B, A) {
R = R.tointeger();
G = G.tointeger();
B = B.tointeger();
A = A.tointeger();
return (A << 24) + (R << 16) + (G << 8) + B;
}

View File

@@ -20,15 +20,15 @@ function _MainUI_Enter_(UI_Scene) {
// _SYS_UI_SCENE_Instance_.AddChild(Tc); // _SYS_UI_SCENE_Instance_.AddChild(Tc);
// Tc.SetPos(400,300); // Tc.SetPos(400,300);
local NgC = GameWidget_NineGridCav("sprite/interface/lenheartwindowcommon.img", 97, 300, 300); // local NgC = GameWidget_NineGridCav("sprite/interface/lenheartwindowcommon.img", 97, 300, 300);
_SYS_UI_SCENE_Instance_.AddChild(NgC); // _SYS_UI_SCENE_Instance_.AddChild(NgC);
NgC.SetPos(400, 300); // NgC.SetPos(400, 300);
// local T = sq_GetPng("sprite/item/avatar/swordman/0sm_acap.img",0); // local T = sq_GetPng("sprite/item/avatar/swordman/0sm_acap.img",0);
// print(T); // print(T);
// local Test1 = sq_CreaterWindowInstance("测试窗口", Window_NotiBox, 150, 150, 364, 356, 20); local Test1 = sq_CreaterWindowInstance("测试窗口", Window_NotiBox, 150, 150, 364, 356, 20);
// Test1.ResetFoucus(); Test1.ResetFoucus();
// local Canv = Canvas(600, 600); // local Canv = Canvas(600, 600);
// _SYS_UI_SCENE_Instance_.AddChild(Canv); // _SYS_UI_SCENE_Instance_.AddChild(Canv);

View File

@@ -65,7 +65,7 @@ class GameWidget extends WindowNode {
local IMouse = Game_Cursor.GetInstance(); local IMouse = Game_Cursor.GetInstance();
local Pos = GetWorldPos(); local Pos = GetWorldPos();
if (isLBDown && Math.IsIntersectRect(IMouse.MouseX, IMouse.MouseY, 1, 1, Pos.x, Pos.y, Width, Height)) { if (isLBDown && Math.IsIntersectRect(IMouse.MouseX, IMouse.MouseY, 1, 1, Pos.x, Pos.y, Width, Height)) {
if (OnClick) this.OnClick(this); if (OnClick) this.OnClick.call(this,this);
if (ClickSound) { if (ClickSound) {
//TODO 音效系统 //TODO 音效系统
// Sq_PlaySoundEffect(ClickSound); // Sq_PlaySoundEffect(ClickSound);

16
UI/ObjectClass/Text.nut Normal file
View File

@@ -0,0 +1,16 @@
/*
文件名:Text.nut
路径:UI/ObjectClass/Text.nut
创建日期:2025-10-25 15:40
文件用途:
*/
class Text extends Actor {
function _typeof() {
return "Text"
}
constructor(Str, FontIndex,Color) {
C_Object = sq_CreateText(Str, FontIndex, Color);
sq_RegisterDestruction(C_Object,this);
}
}

View File

@@ -6,20 +6,33 @@
*/ */
class Window_NotiBox extends GameWindow { class Window_NotiBox extends GameWindow {
testvalue = 666;
constructor(Name, gX, gY, gWidth, gHeight, gTitleHeight) { constructor(Name, gX, gY, gWidth, gHeight, gTitleHeight) {
base.constructor(Name, gX, gY, gWidth, gHeight, gTitleHeight); base.constructor(Name, gX, gY, gWidth, gHeight, gTitleHeight);
InitSprite(); InitSprite();
InitButton(); // InitButton();
} }
function InitSprite() { function InitSprite() {
local Sp = Sprite("sprite/hud/newantonui.img", 0); local Sp = Sprite("sprite/hud/newantonui.img", 0);
AddChild(Sp); AddChild(Sp);
local Textobj = Text("测试文本",0,sq_RGBA(255,255,255,255));
AddChild(Textobj);
local Textobj2 = Text("测试文本",1,sq_RGBA(255,255,255,255));
Textobj2.SetPos(0,50);
AddChild(Textobj2);
} }
function InitButton() { function InitButton() {
local Btn = GameWidget_BaseButton(40, 40, 56, 24, "sprite/interface/lenheartwindowcommon.img", 12); local Btn = GameWidget_BaseButton(40, 40, 56, 24, "sprite/interface/lenheartwindowcommon.img", 12);
Btn.OnClick = function(btn){
// print(testvalue);
print(this);
print(btn);
}.bindenv(this);
AddChild(Btn); AddChild(Btn);
} }
} }

View File

@@ -6,31 +6,55 @@
*/ */
enum CHARACTERJOB { enum CHARACTERJOB {
SWORDMAN, // 男鬼剑士 /** 男鬼剑士 */
FIGHTER, // 女格斗家 SWORDMAN,
GUNNER, // 男神枪手 /** 女格斗家 */
MAGE, // 女魔法师 FIGHTER,
PRIEST, // 男圣职者 /** 男神枪手 */
AT_GUNNER, // 女神枪手 GUNNER,
THIEF, // 暗夜使者 /** 女魔法师 */
AT_FIGHTER, // 男格斗家 MAGE,
AT_MAGE, // 男魔法师 /** 男圣职者 */
DEMONIC_SWORDMAN, // 黑暗武士 PRIEST,
CREATOR_MAGE, // 缔造者 /** 女神枪手 */
AT_SWORDMAN, // 女鬼剑士 AT_GUNNER,
KNIGHT, // 守护者 /** 暗夜使者 */
DEMONIC_LANCER, // 魔枪士 THIEF,
AT_PRIEST, // 女圣职者 /** 男格斗家 */
GUN_BLADER, // 枪剑士 AT_FIGHTER,
ARCHER, // 弓箭手 /** 男魔法师 */
MAX // 无 AT_MAGE,
/** 黑暗武士 */
DEMONIC_SWORDMAN,
/** 缔造者 */
CREATOR_MAGE,
/** 女鬼剑士 */
AT_SWORDMAN,
/** 守护者 */
KNIGHT,
/** 魔枪士 */
DEMONIC_LANCER,
/** 女圣职者 */
AT_PRIEST,
/** 枪剑士 */
GUN_BLADER,
/** 弓箭手 */
ARCHER,
/** 无 */
MAX
} }
enum UI_EVENT { enum UI_EVENT {
MOUSEMOTION, //鼠标移动 /** 鼠标移动 */
MOUSEBUTTONDOWN, //鼠标按下 MOUSEMOTION,
MOUSEBUTTONUP, //鼠标释放 /** 鼠标按下 */
MOUSEWHEEL //鼠标滚轮 MOUSEBUTTONDOWN,
KEYDOWN //键盘按下 /** 鼠标释放 */
KEYUP //键盘释放 MOUSEBUTTONUP,
/** 鼠标滚轮 */
MOUSEWHEEL,
/** 键盘按下 */
KEYDOWN,
/** 键盘释放 */
KEYUP
} }

View File

@@ -85,5 +85,8 @@
}, },
"UI/Windows/Widget/NineGridCav.nut": { "UI/Windows/Widget/NineGridCav.nut": {
"description": "九宫格画布" "description": "九宫格画布"
},
"UI/ObjectClass/Text.nut": {
"description": "文本类"
} }
} }

View File

@@ -95,6 +95,7 @@ function sq_CreateActor() {}
function sq_RegisterDestruction(a,b) {} function sq_RegisterDestruction(a,b) {}
function sq_CreateSprite(a,b) {} function sq_CreateSprite(a,b) {}
function sq_CreateCanvas(a,b) {} function sq_CreateCanvas(a,b) {}
function sq_CreateText(a,b,c) {}
function sq_AddChild(a,b){} function sq_AddChild(a,b){}
function sq_RemoveChild(a,b){} function sq_RemoveChild(a,b){}
function sq_SetZOrder(a,b){} function sq_SetZOrder(a,b){}

View File

@@ -1,11 +1,17 @@
function _InitFont_() {
return [
{ path = "Fonts/VonwaonBitmap-12px.ttf", size = 12 },
{ path = "Fonts/VonwaonBitmap-12px.ttf", size = 24 },
{ path = "Fonts/NotoSansSC-Light.otf", size = 12 }
];
}
function main() { function main() {
//初始化随机数种子 //初始化随机数种子
srand(time()); srand(time());
local SM = StateMachine.GetInstance(); local SM = StateMachine.GetInstance();
SM.RegisterState(CHARACTERJOB.SWORDMAN, "Character_Rest", 0); SM.RegisterState(CHARACTERJOB.SWORDMAN, "Character_Rest", 0);
SM.RegisterState(CHARACTERJOB.SWORDMAN, "Character_Move", 1); SM.RegisterState(CHARACTERJOB.SWORDMAN, "Character_Move", 1);
} }