Compare commits
3 Commits
2025102501
...
5759e8dbc6
| Author | SHA1 | Date | |
|---|---|---|---|
| 5759e8dbc6 | |||
| 433fa315b2 | |||
| 89899a3799 |
14
.vscode/launch.json
vendored
14
.vscode/launch.json
vendored
@@ -1,20 +1,12 @@
|
||||
{
|
||||
// 使用 IntelliSense 了解相关属性。
|
||||
// 悬停以查看现有属性的描述。
|
||||
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Attach (squirrel) to localhost:2222",
|
||||
"type": "squirrel",
|
||||
"request": "attach",
|
||||
"name": "Server",
|
||||
"port": 2222
|
||||
},
|
||||
{
|
||||
"type": "squirrel",
|
||||
"request": "attach",
|
||||
"name": "Client",
|
||||
"port": 2222
|
||||
"port": 2222,
|
||||
"address": "localhost"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -20,6 +20,7 @@ UI/ObjectClass/Actor.nut
|
||||
UI/ObjectClass/WindowNode.nut
|
||||
UI/ObjectClass/GameWindow.nut
|
||||
UI/ObjectClass/GameWidget.nut
|
||||
UI/ObjectClass/Text.nut
|
||||
UI/ObjectClass/Sprite.nut
|
||||
UI/ObjectClass/Canvas.nut
|
||||
|
||||
|
||||
@@ -22,3 +22,20 @@ function print(Object) {
|
||||
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;
|
||||
}
|
||||
@@ -20,16 +20,17 @@ function _MainUI_Enter_(UI_Scene) {
|
||||
// _SYS_UI_SCENE_Instance_.AddChild(Tc);
|
||||
// Tc.SetPos(400,300);
|
||||
|
||||
local NgC = GameWidget_NineGridCav("sprite/interface/lenheartwindowcommon.img", 97, 300, 300);
|
||||
_SYS_UI_SCENE_Instance_.AddChild(NgC);
|
||||
NgC.SetPos(400, 300);
|
||||
// local NgC = GameWidget_NineGridCav("sprite/interface/lenheartwindowcommon.img", 97, 300, 300);
|
||||
// _SYS_UI_SCENE_Instance_.AddChild(NgC);
|
||||
// NgC.SetPos(400, 300);
|
||||
|
||||
// local T = sq_GetPng("sprite/item/avatar/swordman/0sm_acap.img",0);
|
||||
// print(T);
|
||||
|
||||
// local Test1 = sq_CreaterWindowInstance("测试窗口", Window_NotiBox, 150, 150, 364, 356, 20);
|
||||
// Test1.ResetFoucus();
|
||||
local Test1 = sq_CreaterWindowInstance("测试窗口", Window_NotiBox, 150, 150, 364, 356, 20);
|
||||
Test1.ResetFoucus();
|
||||
|
||||
local act = Actor();
|
||||
// local Canv = Canvas(600, 600);
|
||||
// _SYS_UI_SCENE_Instance_.AddChild(Canv);
|
||||
|
||||
@@ -53,3 +54,4 @@ function _MainUI_Update_(deltaTime) {
|
||||
}
|
||||
//主界面UI退出回调
|
||||
function _MainUI_Exit_() {}
|
||||
|
||||
|
||||
@@ -17,47 +17,188 @@ class Actor extends BaseNode {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置名字
|
||||
* @function
|
||||
* @param {string} Name
|
||||
* @returns {void}
|
||||
*/
|
||||
function SetName(Name) {
|
||||
sq_SetName(this.C_Object, Name);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取名字
|
||||
* @function
|
||||
* @returns {string}
|
||||
*/
|
||||
function GetName() {
|
||||
return sq_GetName(this.C_Object);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加子对象
|
||||
* @function
|
||||
* @param {Actor} Act
|
||||
* @returns {void}
|
||||
*/
|
||||
function AddChild(Act) {
|
||||
sq_AddChild(this.C_Object, Act.C_Object);
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除子对象
|
||||
* @function
|
||||
* @param {Actor} Act
|
||||
* @returns {void}
|
||||
*/
|
||||
function RemoveChild(Act) {
|
||||
sq_RemoveChild(this.C_Object, Act.C_Object);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置层级
|
||||
* @function
|
||||
* @param {integer} Order
|
||||
* @returns {void}
|
||||
*/
|
||||
function SetZOrder(Order) {
|
||||
sq_SetZOrder(this.C_Object, Order);
|
||||
}
|
||||
|
||||
function SetScale(Value, ...) {
|
||||
if (vargv.len() == 0)
|
||||
sq_SetScale(this.C_Object, Value);
|
||||
else if (vargv.len() == 1)
|
||||
sq_SetScale(this.C_Object, Value, vargv[0]);
|
||||
/**
|
||||
* 获取层级
|
||||
* @function
|
||||
* @returns {*}
|
||||
*/
|
||||
function GetZOrder() {
|
||||
return sq_GetZOrder(this.C_Object);
|
||||
}
|
||||
|
||||
function SetPos(Value, ...) {
|
||||
if (vargv.len() == 0) {
|
||||
sq_SetPos(this.C_Object, Value);
|
||||
} else if (vargv.len() == 1) {
|
||||
sq_SetPos(this.C_Object, Value, vargv[0]);
|
||||
/**设置坐标 */
|
||||
function SetPos(...) {
|
||||
if (vargv.len() == 1) {
|
||||
sq_SetPos(this.C_Object, vargv[0]);
|
||||
} else if (vargv.len() == 2) {
|
||||
sq_SetPos(this.C_Object, vargv[0], vargv[1]);
|
||||
}
|
||||
}
|
||||
|
||||
function GetSize(){
|
||||
|
||||
/**
|
||||
* 获取坐标
|
||||
* @function
|
||||
*/
|
||||
function GetPos() {
|
||||
return sq_GetPos(this.C_Object);
|
||||
}
|
||||
|
||||
function SetVisible(Flag) {
|
||||
sq_SetVisible(this.C_Object, Flag);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取世界坐标
|
||||
* @function
|
||||
*/
|
||||
function GetWorldPos() {
|
||||
return sq_GetWorldPos(this.C_Object);
|
||||
}
|
||||
|
||||
function SetName(Name) {
|
||||
sq_SetName(this.C_Object, Name);
|
||||
/**
|
||||
* 设置透明度
|
||||
* @function
|
||||
* @param {integer} Alpha
|
||||
* @returns {void}
|
||||
*/
|
||||
function SetAlpha(Alpha) {
|
||||
sq_SetAlpha(this.C_Object, Alpha);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取透明度
|
||||
* @function
|
||||
* @returns {integer}
|
||||
*/
|
||||
function GetAlpha() {
|
||||
return sq_GetAlpha(this.C_Object);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置缩放
|
||||
* @function
|
||||
*/
|
||||
function SetScale(Value, ...) {
|
||||
if (vargv.len() == 0) sq_SetScale(this.C_Object, Value);
|
||||
else if (vargv.len() == 1) sq_SetScale(this.C_Object, Value, vargv[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取缩放
|
||||
* @function
|
||||
*/
|
||||
function GetScale() {
|
||||
return sq_GetScale(this.C_Object);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置旋转角度
|
||||
* @function
|
||||
* @param {float} Angle
|
||||
* @returns {void}
|
||||
*/
|
||||
function SetRotation(Angle) {
|
||||
sq_SetRotation(this.C_Object, Angle);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取旋转角度
|
||||
* @function
|
||||
* @returns {float}
|
||||
*/
|
||||
function GetRotation() {
|
||||
return sq_GetRotation(this.C_Object);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置大小
|
||||
* @function
|
||||
* @returns {void}
|
||||
*/
|
||||
function SetSize(Value, ...) {
|
||||
if (vargv.len() == 0) sq_SetScale(this.C_Object, Value);
|
||||
else if (vargv.len() == 1) sq_SetScale(this.C_Object, Value, vargv[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取大小
|
||||
* @function
|
||||
*/
|
||||
function GetSize() {
|
||||
return sq_GetSize(this.C_Object);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置可见性
|
||||
* @function
|
||||
* @param {boolean} Flag
|
||||
* @returns {void}
|
||||
*/
|
||||
function SetVisible(Flag) {
|
||||
sq_SetVisible(this.C_Object, Flag);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取可见性
|
||||
* @function
|
||||
* @returns {boolean}
|
||||
*/
|
||||
function GetVisible() {
|
||||
return sq_GetVisible(this.C_Object);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @function
|
||||
* @param {BLENDMODE} BlendMode
|
||||
* @returns {void}
|
||||
*/
|
||||
function SetBlendMode(BlendMode) {
|
||||
sq_SetBlendMode(this.C_Object, BlendMode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,10 +14,30 @@ class Canvas extends Actor {
|
||||
sq_RegisterDestruction(C_Object, this);
|
||||
}
|
||||
|
||||
/**
|
||||
* 绘制Img
|
||||
* @function
|
||||
* @param {string} Img img路径
|
||||
* @param {integer} Index img编号
|
||||
* @param {integer} X X坐标
|
||||
* @param {integer} Y Y坐标
|
||||
* @returns {void}
|
||||
*/
|
||||
function DrawImg(Img, Index, X, Y) {
|
||||
sq_Canvas_DrawImg(C_Object, Img, Index, { x = X, y = Y });
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据矩形绘制Img
|
||||
* @function
|
||||
* @param {string} Img img路径
|
||||
* @param {integer} Index img编号
|
||||
* @param {integer} X X坐标
|
||||
* @param {integer} Y Y坐标
|
||||
* @param {any} Width 宽度
|
||||
* @param {any} Height 高度
|
||||
* @returns {void}
|
||||
*/
|
||||
function DrawImgRect(Img, Index, X, Y, Width, Height) {
|
||||
sq_Canvas_DrawImgRect(C_Object, Img, Index, { x = X, y = Y, w = Width, h = Height });
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ class GameWidget extends WindowNode {
|
||||
local IMouse = Game_Cursor.GetInstance();
|
||||
local Pos = GetWorldPos();
|
||||
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) {
|
||||
//TODO 音效系统
|
||||
// Sq_PlaySoundEffect(ClickSound);
|
||||
|
||||
16
UI/ObjectClass/Text.nut
Normal file
16
UI/ObjectClass/Text.nut
Normal 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);
|
||||
}
|
||||
}
|
||||
@@ -27,8 +27,15 @@ class Window_hud extends GameWindow {
|
||||
* @returns {void}
|
||||
*/
|
||||
function OnMouseEvent(Type, Data, EventInteractiveFlag) {
|
||||
base.OnMouseEvent(Type, Data, EventInteractiveFlag)
|
||||
base.OnMouseEvent(Type, Data, EventInteractiveFlag);
|
||||
if (Type == UI_EVENT.MOUSEBUTTONDOWN) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 重载ResetFoucus函数本窗口不需要改变焦点
|
||||
* @function
|
||||
* @returns {void}
|
||||
*/
|
||||
function ResetFoucus() {}
|
||||
}
|
||||
|
||||
@@ -6,20 +6,34 @@
|
||||
*/
|
||||
|
||||
class Window_NotiBox extends GameWindow {
|
||||
testvalue = 666;
|
||||
|
||||
constructor(Name, gX, gY, gWidth, gHeight, gTitleHeight) {
|
||||
base.constructor(Name, gX, gY, gWidth, gHeight, gTitleHeight);
|
||||
|
||||
InitSprite();
|
||||
InitButton();
|
||||
// InitButton();
|
||||
}
|
||||
|
||||
function InitSprite() {
|
||||
local Sp = Sprite("sprite/hud/newantonui.img", 0);
|
||||
Sp.SetBlendMode(1);
|
||||
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() {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
89
enum.nut
89
enum.nut
@@ -6,31 +6,72 @@
|
||||
*/
|
||||
|
||||
enum CHARACTERJOB {
|
||||
SWORDMAN, // 男鬼剑士
|
||||
FIGHTER, // 女格斗家
|
||||
GUNNER, // 男神枪手
|
||||
MAGE, // 女魔法师
|
||||
PRIEST, // 男圣职者
|
||||
AT_GUNNER, // 女神枪手
|
||||
THIEF, // 暗夜使者
|
||||
AT_FIGHTER, // 男格斗家
|
||||
AT_MAGE, // 男魔法师
|
||||
DEMONIC_SWORDMAN, // 黑暗武士
|
||||
CREATOR_MAGE, // 缔造者
|
||||
AT_SWORDMAN, // 女鬼剑士
|
||||
KNIGHT, // 守护者
|
||||
DEMONIC_LANCER, // 魔枪士
|
||||
AT_PRIEST, // 女圣职者
|
||||
GUN_BLADER, // 枪剑士
|
||||
ARCHER, // 弓箭手
|
||||
MAX // 无
|
||||
/**男鬼剑士 */
|
||||
SWORDMAN,
|
||||
/**女格斗家 */
|
||||
FIGHTER,
|
||||
/**男神枪手 */
|
||||
GUNNER,
|
||||
/**女魔法师 */
|
||||
MAGE,
|
||||
/**男圣职者 */
|
||||
PRIEST,
|
||||
/**女神枪手 */
|
||||
AT_GUNNER,
|
||||
/**暗夜使者 */
|
||||
THIEF,
|
||||
/**男格斗家 */
|
||||
AT_FIGHTER,
|
||||
/**男魔法师 */
|
||||
AT_MAGE,
|
||||
/**黑暗武士 */
|
||||
DEMONIC_SWORDMAN,
|
||||
/**缔造者 */
|
||||
CREATOR_MAGE,
|
||||
/**女鬼剑士 */
|
||||
AT_SWORDMAN,
|
||||
/**守护者 */
|
||||
KNIGHT,
|
||||
/**魔枪士 */
|
||||
DEMONIC_LANCER,
|
||||
/**女圣职者 */
|
||||
AT_PRIEST,
|
||||
/**枪剑士 */
|
||||
GUN_BLADER,
|
||||
/**弓箭手 */
|
||||
ARCHER,
|
||||
/**无 */
|
||||
MAX
|
||||
}
|
||||
|
||||
enum UI_EVENT {
|
||||
MOUSEMOTION, //鼠标移动
|
||||
MOUSEBUTTONDOWN, //鼠标按下
|
||||
MOUSEBUTTONUP, //鼠标释放
|
||||
MOUSEWHEEL //鼠标滚轮
|
||||
KEYDOWN //键盘按下
|
||||
KEYUP //键盘释放
|
||||
/**鼠标移动 */
|
||||
MOUSEMOTION,
|
||||
/**鼠标按下 */
|
||||
MOUSEBUTTONDOWN,
|
||||
/**鼠标释放 */
|
||||
MOUSEBUTTONUP,
|
||||
/**鼠标滚轮 */
|
||||
MOUSEWHEEL,
|
||||
/**键盘按下 */
|
||||
KEYDOWN,
|
||||
/**键盘释放 */
|
||||
KEYUP
|
||||
}
|
||||
|
||||
enum BLENDMODE {
|
||||
/**无 */
|
||||
BLENDMODE_NONE,
|
||||
/**线性减淡 */
|
||||
BLENDMODE_LINEARDODGE,
|
||||
/**减淡 */
|
||||
BLENDMODE_DODGE,
|
||||
/**变暗 */
|
||||
BLENDMODE_DARK,
|
||||
/**异或 */
|
||||
BLENDMODE_XOR,
|
||||
/**灰度模式 */
|
||||
BLENDMODE_MONOCHROME,
|
||||
/**扭曲 */
|
||||
BLENDMODE_SPACE_DISTORT
|
||||
}
|
||||
|
||||
@@ -85,5 +85,8 @@
|
||||
},
|
||||
"UI/Windows/Widget/NineGridCav.nut": {
|
||||
"description": "九宫格画布"
|
||||
},
|
||||
"UI/ObjectClass/Text.nut": {
|
||||
"description": "文本类"
|
||||
}
|
||||
}
|
||||
@@ -95,6 +95,7 @@ function sq_CreateActor() {}
|
||||
function sq_RegisterDestruction(a, b) {}
|
||||
function sq_CreateSprite(a, b) {}
|
||||
function sq_CreateCanvas(a, b) {}
|
||||
function sq_CreateText(a, b, c) {}
|
||||
function sq_AddChild(a, b) {}
|
||||
function sq_RemoveChild(a, b) {}
|
||||
function sq_SetZOrder(a, b) {}
|
||||
@@ -111,13 +112,37 @@ function sq_SetScale(a,...){}
|
||||
*/
|
||||
function pow(a, b) {}
|
||||
|
||||
|
||||
function sq_GetWorldPos(a){}
|
||||
function sq_GetWorldPos(a) {
|
||||
local t = { x = 1, y = 1 };
|
||||
return t;
|
||||
}
|
||||
function sq_SetVisible(a, b) {}
|
||||
function sq_SetAlpha(a, b) {}
|
||||
function sq_SetName(a, b) {}
|
||||
function sq_SetSize(...) {}
|
||||
function sq_SetRotation(a, b) {}
|
||||
function sq_GetName(a) {}
|
||||
function sq_GetVisible(a) {}
|
||||
function sq_GetSize(a) {
|
||||
local t = { x = 1, y = 1 };
|
||||
return t;
|
||||
}
|
||||
function sq_GetRotation(a) {}
|
||||
function sq_GetAlpha(a) {}
|
||||
function sq_GetScale(a) {
|
||||
local t = { x = 1, y = 1 };
|
||||
return t;
|
||||
}
|
||||
function sq_GetZOrder(a) {}
|
||||
function sq_SetBlendMode(a, b) {}
|
||||
function sq_Canvas_DrawImg(a, b, c, d) {}
|
||||
function sq_Canvas_DrawImgRect(a, b, c, d) {}
|
||||
function sq_GetImg(a) {}
|
||||
function sq_GetPng(a, b) {}
|
||||
function sq_OutPutTable(...) {}
|
||||
|
||||
function sq_GetPos(a) {
|
||||
local t = { x = 1, y = 1 };
|
||||
return t;
|
||||
}
|
||||
function output(...) {}
|
||||
|
||||
10
main.nut
10
main.nut
@@ -1,9 +1,15 @@
|
||||
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() {
|
||||
//初始化随机数种子
|
||||
srand(time());
|
||||
|
||||
|
||||
|
||||
local SM = StateMachine.GetInstance();
|
||||
|
||||
SM.RegisterState(CHARACTERJOB.SWORDMAN, "Character_Rest", 0);
|
||||
|
||||
Reference in New Issue
Block a user