diff --git a/sqr/SquirrelFileConfig.cfg b/sqr/SquirrelFileConfig.cfg index 74b3fff..e9798ab 100644 --- a/sqr/SquirrelFileConfig.cfg +++ b/sqr/SquirrelFileConfig.cfg @@ -66,6 +66,7 @@ sqr/User/UI/Widget/Scroll_Bar.nut sqr/User/UI/Window/0_Login.nut sqr/User/UI/Window/1_Select_Character.nut +sqr/User/UI/Window/2_create_Character.nut sqr/User/UI/Window/233_HUD_Message.nut sqr/User/main.nut \ No newline at end of file diff --git a/sqr/User/UI/Window/2_Create_Character.nut b/sqr/User/UI/Window/2_Create_Character.nut new file mode 100644 index 0000000..141c06d --- /dev/null +++ b/sqr/User/UI/Window/2_Create_Character.nut @@ -0,0 +1,221 @@ +/* +文件名:2_create_Character.nut +路径:User/UI/Window/2_create_Character.nut +创建日期:2024-12-15 17:40 +文件用途: 创建角色 +*/ + +class CreateCharacter extends Yosin_Window { + //调试模式 + // DeBugMode = true; + + //不是窗口 + // NoWindow = true; + + //是否可见 + // Visible = false; + + BackGroundMusic = null; + + constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) { + base.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); + + //注册绘制 + RegisterDraw(); + //注册控件 + RegisterWidget(); + + //播放音乐 + PlayBackgroundMusic(); + } + + function PlayBackgroundMusic() { + + } + + function MusicLogic() { + if (BackGroundMusic == null) return; + if (!BackGroundMusic.IsPlaying()) BackGroundMusic.Play(); + } + + function RegisterWidget() { + //账号输入框 + local AccountInputBox = Yosin_InputBox(752, 240, 200); + AddUIChild(AccountInputBox); + + } + + function RegisterDraw() { + //大背景 + local BackGround = CL_SpriteObject("sprite/interface2/charactercreatever2/characterbackground.img", 14); + Addchild(BackGround); + + } + + //逻辑入口 + function Proc(Dt) { + MusicLogic(); + + SyncPos(X, Y); + base.Proc(Dt); + } + +} + + +//选择创建基础角色 +class CreateCharacter_SelectBase extends Yosin_Window { + //调试模式 + // DeBugMode = true; + + //不是窗口 + // NoWindow = true; + + //是否可见 + // Visible = false; + + BackGroundMusic = null; + + constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) { + base.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); + + //注册绘制 + RegisterDraw(); + //注册控件 + RegisterWidget(); + + } + + function PlayBackgroundMusic() { + + } + + function RegisterWidget() { + //账号输入框 + local headButton = HeadButton(0, 0, CHARACTERJOB.SWORDMAN); + AddUIChild(headButton); + + } + + function RegisterDraw() { + //大背景 + local BackGround = CL_SpriteObject("sprite/interface2/charactercreatever2/characterbackground.img", 0); + Addchild(BackGround); + + } + + //逻辑入口 + function Proc(Dt) { + + SyncPos(X, Y); + base.Proc(Dt); + } + +} + + + + + + + + + +//头像按钮 +class HeadButton extends Yosin_CommonUi { + + // 角色名称 + name = ""; + + // 图像id + imageId = 0; + + // 状态 0:普通 1:悬停 2:按下 3:不可用 + state = 0; + spriteState = 0; + + // 角色头像精灵 + CharacterSprite = null; + + // 角色头像覆盖精灵 + CharacterSpriteCover = null; + + constructor(X, Y, jobEnum, state = 0) { + + this.name = name; + this.state = state; + + // 计算图像id + this.imageId = jobEnum * 2 + 3; + + + base.constructor(X, Y, 62, 62); + + // 角色头像 + CharacterSprite = CL_SpriteObject(); + CharacterSprite.SetFrame(CL_SpriteFrameObject( "sprite/interface2/charactercreatever2/characterbtn.img", imageId)); + CharacterSprite.SetPosition(0, 0); + Addchild(CharacterSprite); + + CharacterSpriteCover = CL_SpriteObject(); + CharacterSpriteCover.SetFrame(CL_SpriteFrameObject( "sprite/interface2/charactercreatever2/characterbtn.img", state)); + CharacterSprite.SetPosition(0, 0); + Addchild(CharacterSpriteCover); + + ChangeFrame(); + } + + function ChangeFrame() { + if (spriteState == state) return; + print(111); + //不可用 + if (state == 3) { + CharacterSprite.SetFrame(CL_SpriteFrameObject( "sprite/interface2/charactercreatever2/characterbtn.img", imageId + 1)); + CharacterSpriteCover.SetVisible(false); + }else{ + CharacterSprite.SetFrame(CL_SpriteFrameObject( "sprite/interface2/charactercreatever2/characterbtn.img", imageId)); + CharacterSpriteCover.SetVisible(true) + CharacterSpriteCover.SetFrame(CL_SpriteFrameObject( "sprite/interface2/charactercreatever2/characterbtn.img", state)); + } + + spriteState = state; + } + + function Proc(Dt) { + //不可用 + if (state == 3) { + return; + } else { + //按下 + if (isLBDown) { + state = 2; + } + //悬停 + else if (isInRect) { + if (state == 2) return; + state = 1; + } + //普通 + else { + if (state == 2) return; + state = 0; + } + } + ChangeFrame(); + } +} + + + + + + + + + + + + + + + diff --git a/sqr/folder-alias.json b/sqr/folder-alias.json index 1867f3c..802881f 100644 --- a/sqr/folder-alias.json +++ b/sqr/folder-alias.json @@ -172,5 +172,8 @@ }, "User/UI/Window/233_HUD_Message.nut": { "description": "公告弹窗" + }, + "User/UI/Window/2_Create_Character.nut": { + "description": "创建角色" } } \ No newline at end of file