提交新手引导

This commit is contained in:
DESKTOP-5RP3AKU\Jisol
2023-11-13 02:37:29 +08:00
parent ada44b2fd1
commit c519fae9a4
71 changed files with 4009 additions and 375 deletions

View File

@@ -1,5 +1,7 @@
import Singleton from "../../../../extensions/ngame/assets/ngame/util/Singleton";
import { app } from "../../App";
import PlayerData from "../../data/PlayerData";
import PlayerPetData from "../../data/PlayerPetData";
import { GUI } from "../UIConfig";
export default class NoviceManager extends Singleton{
@@ -7,11 +9,19 @@ export default class NoviceManager extends Singleton{
//新手引导执行
async onStart(){
if(!(app.data.getPlayerInfo().novice)){
//获取玩家信息是否引导过
if(!(PlayerData.getIns().data.novice)){
//如果没有过引导则打开引导页面
await app.layer.OpenToClose(GUI.NoviceNamingView);
}
//获取玩家信息是否选择过宠物(有没有宠物)
//如果没有宠物则弹出让玩家选择宠物
if(PlayerPetData.getIns().getData().length == 0){
//没有宠物则弹出选择宠物页面
await app.layer.OpenToClose(GUI.NoviceSelectPetView);
}
console.log("新手引导结束");
}

View File

@@ -1,9 +1,83 @@
import { _decorator, Component, Node } from 'cc';
import { JNGLayerBase } from '../../App';
import { JNGLayerBase, TD, app } from '../../App';
import { TbGGlobalEnum } from '../../../resources/config/TbGGlobalEnum';
import { _decorator,Node } from 'cc';
import { sp } from 'cc';
import { UIPetAnim } from '../../consts/GData';
import { Sprite } from 'cc';
import { Color } from 'cc';
import { API } from '../../consts/API';
import { GUI } from '../UIConfig';
import PlayerPetData from '../../data/PlayerPetData';
const { ccclass, property } = _decorator;
@ccclass('NoviceSelectPetView')
export class NoviceSelectPetView extends JNGLayerBase {
//选择宠物的节点
@property([Node])
selects:Node[] = [];
//可选择宠物的列表
petIds:number[];
//选择index
index:number = 0;
async onJNLoad(data?: any) {
super.onJNLoad();
//加载配置表 (找到可选择的宠物Id)
let info = TD.TbGGlobal.get(TbGGlobalEnum.SELECT_PET_ID);
this.petIds = JSON.parse(info.args);
//显示宠物
this.selects.forEach((item,index) => {
//获取Spine组件
let spine = item.getComponentInChildren(sp.Skeleton);
//设置显示的角色
spine.skeletonData = app.battleRes.roleSpine[this.petIds[index]];
//全部角色播放等待动画
spine.setAnimation(0,UIPetAnim.std,true);
})
this.onUpdateView();
}
//更新UI
onUpdateView(){
this.selects.forEach(item => {
item.getComponent(Sprite).color = new Color("8D8D8D");
})
//被选择赋黑
this.selects[this.index].getComponent(Sprite).color = new Color("#000000");
}
//点击选择
onClickSelect(e,data){
let index = parseInt(data);
this.index = index;
//更新UI
this.onUpdateView();
}
//点击确定
async onClickOk(){
//向服务器确认选择
console.log(await PlayerPetData.getIns().SelectNovicePet(this.petIds[this.index]));
app.layer.Open(GUI.Tips,{text:"选择宠物成功 欢迎来到宠物世界..."});
//关闭页面
app.layer.CloseNode(this.node);
}
}