/* 文件名: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(); } }