DOF/sqr/User/UI/Window/2_Create_Character.nut

222 lines
4.5 KiB
Plaintext

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