Compare commits

..

2 Commits

Author SHA1 Message Date
Lenheart b59c76d0bb 音频类更新 引入 音频NPK 2024-12-19 23:54:15 +08:00
WONIU 570532aa99 创建角色增加 输入名称 弹窗
(cherry picked from commit e9a8a6ad17)
2024-12-19 17:33:15 +08:00
7 changed files with 26227 additions and 95 deletions

Binary file not shown.

25919
audio.xml Normal file

File diff suppressed because it is too large Load Diff

BIN
bass.dll Normal file

Binary file not shown.

View File

@ -0,0 +1,79 @@
sqr/Core/ENUM/ENUM_KEY.nut
sqr/Core/ENUM/enum_system.nut
sqr/Core/BaseTool/BaseTool.nut
sqr/Core/BaseTool/Math.nut
sqr/Core/BaseTool/String.nut
sqr/Core/BaseTool/BlobExClass.nut
sqr/Core/BaseTool/JsonClass/JsonClass.nut
sqr/Core/BaseTool/JsonClass/Json.nut
sqr/Core/BaseClass/ScriptManager/ScriptManager.nut
sqr/Core/BaseClass/ScriptManager/InitAni.nut
sqr/Core/BaseClass/Game_Window_Class.nut
sqr/Core/BaseClass/BaseObject.nut
sqr/Core/BaseClass/AudioClass.nut
sqr/Core/BaseClass/StageClass.nut
sqr/Core/BaseClass/ActorObject.nut
sqr/Core/BaseClass/LayerObject.nut
sqr/Core/BaseClass/UserStorage.nut
sqr/Core/BaseClass/SpriteObject/SpriteFrameClass.nut
sqr/Core/BaseClass/SpriteObject/SpriteClass.nut
sqr/Core/BaseClass/TextObject/Font.nut
sqr/Core/BaseClass/TextObject/TextActor.nut
sqr/Core/BaseClass/AnimationClass/AnimationClass.nut
sqr/Core/ExtraCalss/Socket/Socket.nut
sqr/Core/Game_Proc/Game_Proc.nut
sqr/Core/UI_Class/UI_Cursor.nut
sqr/Core/UI_Class/UI_Core.nut
sqr/Core/UI_Class/UI_Widget.nut
sqr/User/_ENUM/global_object.nut
sqr/User/_ENUM/enum_music.nut
sqr/User/_ENUM/enum_packet.nut
sqr/User/_ENUM/enum_game.nut
sqr/User/Socket/Socket.nut
sqr/User/Asset/AssetManager.nut
sqr/User/Asset/FontAsset.nut
sqr/User/Asset/Character/Animation.nut
sqr/User/Asset/Item/Item.nut
sqr/User/Asset/Item/Equipment.nut
sqr/User/Object/StateMachine/StateMachineClass.nut
sqr/User/Object/Object/BaseObject.nut
sqr/User/Object/Object/AnimationObject.nut
sqr/User/Object/Map/TileObject.nut
sqr/User/Object/Map/MapObject.nut
sqr/User/Object/ActiveObject/GameObjectClass.nut
sqr/User/Object/ActiveObject/StaticObjectClass.nut
sqr/User/Object/ActiveObject/ActiveObjectClass.nut
sqr/User/Object/ActiveObject/PassiveObjectClass.nut
sqr/User/Object/ActiveObject/MonsterObjectClass.nut
sqr/User/Object/ActiveObject/CharacterObjectClass.nut
sqr/User/Object/ActiveObject/CharacterObjectClass_AI.nut
sqr/User/Socket/Socket.nut
sqr/User/Stage/LodingStage.nut
sqr/User/Stage/TestStage.nut
sqr/User/UI/Widget/IMouse.nut
sqr/User/UI/Widget/InputBox.nut
sqr/User/UI/Widget/Drag_Button.nut
sqr/User/UI/Widget/Scroll_Bar.nut
sqr/User/UI/Widget/Text_Button.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

View File

@ -5,8 +5,8 @@
文件用途:音频类
*/
if (!(getroottable().rawin("_Globa_Audio_Volume_"))) _Globa_Audio_Volume_ <- 1.0;
if (!(getroottable().rawin("_SoundEffect_List_"))) _SoundEffect_List_ <- [];
class Sound extends CL_BaseObject {
if (!(getroottable().rawin("_Globa_Sound_Volume_"))) _Globa_Sound_Volume_ <- 1.0;
class Audio extends CL_BaseObject {
//名称
Name = null;
//路径
@ -57,24 +57,6 @@ class Sound extends CL_BaseObject {
}
}
class SoundEffect extends Sound {
constructor(Name) {
base.constructor(Name);
//加入全局临时音效组
JoinSoundEffect();
//默认调用播放
Play();
}
//加入全局临时音效组
function JoinSoundEffect() {
_SoundEffect_List_.append(this);
}
}
class AudioControlClass {
//当前播放音乐集合
@ -82,10 +64,6 @@ class AudioControlClass {
//音源库
MusicList = null;
//销毁临时音效的时间Flag
CloseSoundEffectTimeFlag = 0;
//销毁临时音效的间隔时间 //5秒一次
CloseSoundEffectTime = 5000;
//销毁音乐的时间Flag
CloseMusicTimeFlag = 0;
//销毁音乐的间隔时间 //5秒一次
@ -164,25 +142,10 @@ class AudioControlClass {
//移除音乐(淡出)
RemoveMusic(dt);
//销毁临时音效
CloseSoundEffect(dt);
//销毁音乐
CloseMusic(dt);
}
function CloseSoundEffect(dt) {
CloseSoundEffectTimeFlag += dt;
if (CloseSoundEffectTimeFlag >= CloseSoundEffectTime) {
for (local i = 0; i< _SoundEffect_List_.len(); i++) {
local SoundEffectObj = _SoundEffect_List_[i];
//播放完成销毁资源
if (!SoundEffectObj.IsPlaying()) {
_SoundEffect_List_.remove(i);
}
}
CloseSoundEffectTimeFlag = 0;
}
}
function CloseMusic(dt) {
CloseMusicTimeFlag += dt;
@ -212,7 +175,7 @@ if (!(getroottable().rawin("AudioControl"))) _Global_AudioControl_ <- AudioContr
//播放临时音效
function Sq_PlaySoundEffect(Name) {
return SoundEffect(Name);
return Sound_PlayEffect(Name.tolower(), _Globa_Sound_Volume_);
}
//全局音效逻辑

View File

@ -228,10 +228,12 @@ class _CreateCharacter extends Yosin_Window {
firedustAni = null;
auraAni = null;
enter = null;
changJobAniClock = null;
changNextJobAniClock = null;
nextJobIndex = null;
jobIndex = null;
constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) {
base.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH);
@ -247,6 +249,52 @@ class _CreateCharacter extends Yosin_Window {
}
function RegisterDraw() {
//大背景
BackGround = CL_SpriteObject("sprite/interface2/charactercreatever2/characterbackground.img", 0);
Addchild(BackGround);
// 人物图片
jobImg = CL_SpriteObject("sprite/interface2/charactercreatever2/basecharctertitle.img", 0);
jobImg.SetPosition(0, 0);
Addchild(jobImg);
// 下一个人物图片
nextJobImg = CL_SpriteObject("sprite/interface2/charactercreatever2/basecharctertitle.img", 11);
nextJobImg.SetPosition(500, 0);
nextJobImg.SetOpacity(0);
Addchild(nextJobImg);
// 光动画 ui/charactercreate/topdodge.ani
topLightObj = Animation("ui/charactercreate/topdodge.ani");
topLightObj.SetPosition(0, 0);
Addchild(topLightObj);
// 底部光动画
lightAni = Animation("ui/charactercreate/dust.ani");
lightAni.SetPosition(0, 0);
// lightAni.SetVisible(false);
Addchild(lightAni);
firedustAni = Animation("ui/charactercreate/firedust.ani");
firedustAni.SetPosition(0, 0);
firedustAni.SetVisible(false);
Addchild(firedustAni);
dustAni = Animation("ui/charactercreate/dust.ani");
dustAni.SetPosition(0, 0);
dustAni.SetVisible(false);
Addchild(dustAni);
auraAni = Animation("ui/charactercreate/aura.ani");
auraAni.SetPosition(0, 0);
auraAni.SetVisible(false);
Addchild(auraAni);
}
function RegisterWidget() {
//头像
headList = _CreateCharacter_SelectBaseHeadList(135, 40);
@ -260,7 +308,46 @@ class _CreateCharacter extends Yosin_Window {
// 创建职业
infoWidget.OnClick = function () {
enter.SetVisible(true);
}.bindenv(this);
// 返回按钮
local backButton = Yosin_BaseButton(986, 30, 45, 12 "sprite/interface2/charactercreatever2/common_add.img", 0);
//点击事件回调
backButton.OnClick = function(Button) {
CloseWindow();
}.bindenv(this);
local backText = FontAssetManager.GenerateNormal("返回", true, {
color = sq_RGBA(159, 137, 80, 255)
});
backText.SetUpdateFunc(function(Text, Dt) {
if (Text.Parent.State == 1 || Text.Parent.State == 2) {
Text.SetFillColor(sq_RGBA(225, 218, 126, 255));
} else if (Text.Parent.State == 0) {
Text.SetFillColor(sq_RGBA(159, 137, 80, 255));
}
})
backText.SetPosition(16, -2.5);
backButton.Addchild(backText);
AddUIChild(backButton);
// 输入名字
enter = _create_Character_enterName();
enter.SetVisible(false);
AddUIChild(enter);
// 确定
enter.OnClick = function (enterName) {
local jobEnum = getJobEnum(jobIndex);
MySocket.Send(9, {
name = enterName,
gkb = jobEnum,
})
}.bindenv(this);
}
@ -268,11 +355,11 @@ class _CreateCharacter extends Yosin_Window {
// 切换职业
function changJob(index) {
if (index == nextJobIndex) return;
if (index == jobIndex) return;
local jobEnum = getJobEnum(index);
nextJobIndex = index;
jobIndex = index;
// 切换背景
BackGround.SetFrame(CL_SpriteFrameObject("sprite/interface2/charactercreatever2/characterbackground.img", jobEnum));
nextJobImg.SetFrame(CL_SpriteFrameObject("sprite/interface2/charactercreatever2/basecharctertitle.img", jobEnum));
@ -370,13 +457,13 @@ class _CreateCharacter extends Yosin_Window {
}.bindenv(this), function () {
changNextJobAniClock = null;
local jobEnum = getJobEnum(nextJobIndex);
local jobEnum = getJobEnum(jobIndex);
jobImg.SetFrame(CL_SpriteFrameObject("sprite/interface2/charactercreatever2/basecharctertitle.img", jobEnum ));
jobImg.SetOpacity(1);
jobImg.SetPosition(0, 0);
if (nextJobIndex < 16) {
nextJobImg.SetFrame(CL_SpriteFrameObject("sprite/interface2/charactercreatever2/basecharctertitle.img", getJobEnum(nextJobIndex + 1)));
if (jobIndex < 16) {
nextJobImg.SetFrame(CL_SpriteFrameObject("sprite/interface2/charactercreatever2/basecharctertitle.img", getJobEnum(jobIndex + 1)));
nextJobImg.SetOpacity(0);
nextJobImg.SetPosition(500, 0);
}
@ -385,53 +472,8 @@ class _CreateCharacter extends Yosin_Window {
}
function RegisterDraw() {
//大背景
BackGround = CL_SpriteObject("sprite/interface2/charactercreatever2/characterbackground.img", 0);
Addchild(BackGround);
// 人物图片
jobImg = CL_SpriteObject("sprite/interface2/charactercreatever2/basecharctertitle.img", 0);
jobImg.SetPosition(0, 0);
Addchild(jobImg);
// 下一个人物图片
nextJobImg = CL_SpriteObject("sprite/interface2/charactercreatever2/basecharctertitle.img", 11);
nextJobImg.SetPosition(500, 0);
nextJobImg.SetOpacity(0);
Addchild(nextJobImg);
// 光动画 ui/charactercreate/topdodge.ani
topLightObj = Animation("ui/charactercreate/topdodge.ani");
topLightObj.SetPosition(0, 0);
Addchild(topLightObj);
// 底部光动画
lightAni = Animation("ui/charactercreate/dust.ani");
lightAni.SetPosition(0, 0);
// lightAni.SetVisible(false);
Addchild(lightAni);
firedustAni = Animation("ui/charactercreate/firedust.ani");
firedustAni.SetPosition(0, 0);
firedustAni.SetVisible(false);
Addchild(firedustAni);
dustAni = Animation("ui/charactercreate/dust.ani");
dustAni.SetPosition(0, 0);
dustAni.SetVisible(false);
Addchild(dustAni);
auraAni = Animation("ui/charactercreate/aura.ani");
auraAni.SetPosition(0, 0);
auraAni.SetVisible(false);
Addchild(auraAni);
}
//逻辑入口
function Proc(Dt) {
@ -701,10 +743,116 @@ class HeadButton extends Yosin_CommonUi {
}
}
// 输入角色名称
class _create_Character_enterName extends Yosin_Window {
nameInputBox = null;
//是否为独立窗口
IsIndependent = false;
OnClick = null;
constructor() {
base.constructor("输入角色名称", 0, 0, 1066, 600, 0);
//背景
local background = Yosin_NineBoxStretch(-2, 0, 1070, 604, "sprite/interface/lenheartwindowcommon.img", 97);
AddUIChild(background);
//背景
local background = Yosin_NineBoxStretch(413, 228, 240, 140, "sprite/interface/lenheartwindowcommon.img", 97);
AddUIChild(background);
// 标题文字
local title = CL_SpriteObject("sprite/interface2/charactercreatever2/charctertitle.img", 13);
title.SetPosition(477.5, 240);
Addchild(title);
// 输入框
nameInputBox = Yosin_InputBox(433, 270, 150);
AddUIChild(nameInputBox);
// 重复检查按钮
local checkButton = Yosin_BaseButton(593, 267, 46, 24 "sprite/interface/lenheartwindowcommon.img", 400);
checkButton.State = 3;
checkButton.SetUpdateFunc(function(button, Dt) {
if (button.Parent.nameInputBox.str.len() > 0) {
button.State = 0;
}else{
button.State = 3;
}
})
//点击事件回调
checkButton.OnClick = function(Button) {
if (OnClick != null) OnClick(Button.Parent.nameInputBox.str);
}.bindenv(this);
//按钮文本
local checkTextActor = FontAssetManager.GenerateNormal("重复", true, {
color = sq_RGBA(200, 195, 169, 255)
});
checkTextActor.SetPosition(11, 4);
checkButton.Addchild(checkTextActor);
AddUIChild(checkButton);
//提示文本
local tipTextActor = FontAssetManager.GenerateNormal("最多可以输入2~6个汉字、12个英文字符。", true, {
color = sq_RGBA(200, 195, 169, 255)
wrap_width = 150,
});
tipTextActor.SetPosition(458, 300);
Addchild(tipTextActor);
// 确认检查按钮
local affirmButton = Yosin_BaseButton(473, 338, 46, 24 "sprite/interface/lenheartwindowcommon.img", 400);
affirmButton.State = 3;
affirmButton.SetUpdateFunc(function(button, Dt) {
if (button.Parent.nameInputBox.str.len() > 0) {
button.State = 0;
}else{
button.State = 3;
}
})
//点击事件回调
affirmButton.OnClick = function(Button) {
}.bindenv(this);
//按钮文本
local affirmTextActor = FontAssetManager.GenerateNormal("确认", true, {
color = sq_RGBA(153,128,71, 255)
});
affirmTextActor.SetPosition(11, 4);
affirmButton.Addchild(affirmTextActor);
AddUIChild(affirmButton);
// 取消检查按钮
local cancelButton = Yosin_BaseButton(533, 338, 46, 24 "sprite/interface/lenheartwindowcommon.img", 400);
//点击事件回调
cancelButton.OnClick = function(button) {
nameInputBox.str = "";
button.Parent.SetVisible(false);
}.bindenv(this);
//按钮文本
local cancelTextActor = FontAssetManager.GenerateNormal("取消", true, {
color = sq_RGBA(153,128,71, 255)
});
cancelTextActor.SetPosition(11, 4);
cancelButton.Addchild(cancelTextActor);
AddUIChild(cancelButton);
}
//逻辑入口
function Proc(Dt) {
SyncPos(X, Y);
base.Proc(Dt);
}
}

View File

@ -0,0 +1,23 @@
/*
文件名:enum_music.nut
路径:User/_ENUM/enum_music.nut
创建日期:2024-12-19 01:36
文件用途:枚举音乐
*/
enum MUSIC {
M_CHARACTER_SELECT = "music/characterSelectStage.ogg"
}
enum SOUND {
BUTTON_01 = "sounds/UI/button_01.ogg"
BUTTON_02 = "sounds/UI/button_02.ogg"
BUTTON_03 = "sounds/UI/button_03.ogg"
BUTTON_04 = "sounds/UI/button_04.ogg"
BUTTON_05 = "sounds/UI/button_05.ogg"
BUTTON_06 = "sounds/UI/button_06.ogg"
CLICK_BUTTON1 = "sounds/UI/click1.ogg"
CLICK_BUTTON2 = "sounds/UI/click2.ogg"
CLICK_BUTTON3 = "sounds/UI/click3.ogg"
CLICK_BUTTON4 = "sounds/UI/click4.ogg"
}