diff --git a/.gitignore b/.gitignore index cb62c16..2420886 100644 --- a/.gitignore +++ b/.gitignore @@ -22,4 +22,6 @@ node_modules/ #////////////////////////// # WebStorm #////////////////////////// -.idea/ \ No newline at end of file +.idea/ +assets/ImagePack/!幻想模拟战.NPK +assets/ImagePack/!幻想模拟战.NPK.meta diff --git a/assets/Script/DialogRoot.ts b/assets/Script/DialogRoot.ts index 21abcee..2aa3102 100644 --- a/assets/Script/DialogRoot.ts +++ b/assets/Script/DialogRoot.ts @@ -1,14 +1,37 @@ -import { _decorator, Component, Node } from 'cc'; -const { ccclass, property } = _decorator; - -@ccclass('DialogRoot') -export class DialogRoot extends Component { - start() { - - } - - update(deltaTime: number) { - - } -} - +import { _decorator, Component, Director, director, Node } from 'cc'; +import { SelectNumberNode } from './DialogNode/SelectNumberNode'; +const { ccclass, property } = _decorator; + +@ccclass('DialogRoot') +export class DialogRoot extends Component { + start() { + + } + + update(deltaTime: number) { + + } + + + //* 初始化并显示顺序选择node + initSelectNumberNode(){ + const selectNode = new SelectNumberNode(); + selectNode.name = 'SelectNumberNode'; + this.node.addChild(selectNode); + } + + //* 销毁顺序选择node + destroySelectNumberNode(){ + /// 一帧结束之后销毁 + director.once(Director.EVENT_END_FRAME,()=>{ + // 销毁 + this.node.getChildByName('SelectNumberNode').destroy(); + }); + } + + + + +} + + diff --git a/assets/Script/GameRootController.ts b/assets/Script/GameRootController.ts new file mode 100644 index 0000000..6ed3c17 --- /dev/null +++ b/assets/Script/GameRootController.ts @@ -0,0 +1,57 @@ +import { _decorator,Component, Node } from 'cc'; +import { BoardRoot } from './BoardRoot'; +import { UIRoot } from './UIRoot'; +import { DialogRoot } from './DialogRoot'; +const { ccclass, property } = _decorator; + + +export class GameRootSingleton { + private static readonly _instance: GameRootSingleton = new GameRootSingleton(); + + private constructor() {} + + public static getInstance(): GameRootSingleton { + return GameRootSingleton._instance; + } + + boardRootNode:Node; + UIRootNode: Node; + DialogRootNode: Node; + + boardRoot: BoardRoot; + UIRoot: UIRoot; + DialogRoot: DialogRoot; + + } + + +@ccclass('GameRootController') +export class GameRootController extends Component { + + @property(Node) boardRootNode:Node; + @property(Node) UIRootNode: Node; + @property(Node) DialogRootNode: Node; + + + start() { + + /// 给三个图层添加 root 根脚本 + const game = GameRootSingleton.getInstance(); + game.boardRootNode = this.boardRootNode; + game.UIRootNode = this.UIRootNode; + game.DialogRootNode = this.DialogRootNode; + + /// 给三个图层添加 root 根脚本 + game.boardRoot = this.boardRootNode.getComponent(BoardRoot); + game.UIRoot = this.UIRootNode.getComponent(UIRoot); + game.DialogRoot = this.DialogRootNode.getComponent(DialogRoot); + + + } + + update(deltaTime: number) { + + } +} + + diff --git a/assets/Script/GameRootController.ts.meta b/assets/Script/GameRootController.ts.meta new file mode 100644 index 0000000..62ad047 --- /dev/null +++ b/assets/Script/GameRootController.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "949ead83-9b0e-4202-8007-c50ab2ceeeb5", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Script/StartGameNode/StartGameUINode.ts b/assets/Script/StartGameNode/StartGameUINode.ts index b4cec14..0b61356 100644 --- a/assets/Script/StartGameNode/StartGameUINode.ts +++ b/assets/Script/StartGameNode/StartGameUINode.ts @@ -5,6 +5,7 @@ import { BaseButton } from '../../GlobalScript/CommonComponent/BaseButton'; import { AnimationNode } from '../../GlobalScript/Animation/AnimationNode'; import { UIRoot } from '../UIRoot'; import {CloseButtonNode } from '../Common/CloseButtonNode'; +import { GameRootSingleton } from '../GameRootController'; const { ccclass } = _decorator; /// 开始游戏按钮界面 @@ -12,18 +13,7 @@ const { ccclass } = _decorator; export class StartGameUINode extends Node { /// 玩法介绍 - private _pressenNode: Node; - - set pressenNode(node: Node){ - if (this._pressenNode){ - this._pressenNode.destroy(); - this._pressenNode = null; - } - this._pressenNode = node; - } - get pressenNode(): Node{ - return this._pressenNode; - } + private pressenNode: Node; constructor(){ super(); @@ -156,7 +146,7 @@ export class StartGameUINode extends Node { /// 开始游戏 startOnTouchEnd(event:Event){ - const uiroot = this.parent.getComponent( UIRoot ); + const uiroot = GameRootSingleton.getInstance().UIRoot; uiroot.initGameUI(); /// 一帧结束之后销毁 diff --git a/assets/Script/UIRoot.ts b/assets/Script/UIRoot.ts index 9180636..4e5c5a9 100644 --- a/assets/Script/UIRoot.ts +++ b/assets/Script/UIRoot.ts @@ -15,6 +15,8 @@ import { DiceButtonNode } from "./UINode/DiceButtonNode"; import { OtherWinNode, otherWinType } from "./UINode/OtherWinNode"; import { BoardRoot } from "./BoardRoot"; import { StartGameUINode } from "./StartGameNode/StartGameUINode"; +import { SelectNumberNode } from "./DialogNode/SelectNumberNode"; +import { GameRootSingleton } from "./GameRootController"; const { ccclass } = _decorator; @ccclass("UIRoot") @@ -32,14 +34,14 @@ export class UIRoot extends Component { /// 其他胜利条件 private otherWinNode: OtherWinNode; - /// 初始化开始游戏界面的UI + //* 初始化开始游戏界面的UI initStartGameUI() { const startGameUINode = new StartGameUINode(); startGameUINode.addComponent(UITransform).setContentSize(1067, 600); this.node.addChild(startGameUINode); } - /// 初始化游戏界面UI + //* 初始化游戏界面UI initGameUI() { /// 玩家UI this.initGamerUI(); @@ -48,10 +50,10 @@ export class UIRoot extends Component { /// 等待玩家加载 this.initAwaitGamerUI(); /// 其他胜利条件 - this.initOtherNode(); + this.initOtherWinNode(); } - /// 初始化玩家UI + //* 初始化玩家UI initGamerUI() { this.gamerOne = new GamerNode("玩家一"); this.gamerOne.setPosition(0, -540); @@ -68,7 +70,7 @@ export class UIRoot extends Component { this.initDiceButton(); } - /// 初始化等待玩家加载UI + //* 初始化等待玩家加载UI initAwaitGamerUI() { const node = new Node(); node.setPosition(177.5, -244.5); @@ -83,40 +85,43 @@ export class UIRoot extends Component { this.awaitGamerNode = node; - /// 2秒后 结束加载 + + + //todo 自动跳过,接入网络后修改 + // 1秒后 结束加载 setTimeout(() => { /// 这一帧结束之后销毁 director.once(Director.EVENT_END_FRAME, () => { // 销毁 this.awaitGamerNode.destroy(); + // todo 开发时跳过倒计时动画 /// 初始化开始倒计时动画 // this.initCountFontAni(5); }); + // todo 开发时跳过倒计时动画 this.aniDone(); - }, 2000); + }, 1000); } - /// 初始化倒计时动画 + //* 初始化倒计时动画 initCountFontAni(index: number) { - const ani = new AnimationNode("ani/dnf_quiz_" + index + ".ani", () => { + const ani = new AnimationNode('ani/count_font.ani',()=>{ + /// 这一帧结束之后销毁 director.once(Director.EVENT_END_FRAME, () => { + // 销毁 ani.destroy(); }); - if (index > 1) { - this.initCountFontAni(index - 1); - } else { - /// 动画结束 + /// 动画结束 this.aniDone(); - } - }); - ani.setPosition(420, -180); + }) + ani.setPosition(500, -200); this.node.addChild(ani); } - /// 初始化投骰子按钮 + //* 初始化投骰子按钮 initDiceButton() { this.diceButton = new DiceButtonNode(); this.diceButton.setPosition(849, -453); @@ -128,15 +133,15 @@ export class UIRoot extends Component { }; } - /// 初始化其他胜利条件 - initOtherNode() { + //* 初始化其他胜利条件 + initOtherWinNode() { this.otherWinNode = new OtherWinNode(otherWinType.longRun); this.node.addChild(this.otherWinNode); this.otherWinNode.active = false; } - /// 动画结束 + //* 动画结束 显示选择顺序 aniDone() { /// 恢复其他胜利按钮的状态 this.diceButton.winButtonComponent.ButtonState = BaseButtonState.Normal; @@ -146,6 +151,15 @@ export class UIRoot extends Component { /// 显示最底层的地图块 const board = boardNode.getComponent(BoardRoot); board.initMapTile(); + + //* 1秒后自动关闭胜利条件显示,并显示顺序选择 + setTimeout(() => { + + //* 显示顺序选择node + this.otherWinNode.active = false; + + GameRootSingleton.getInstance().DialogRoot.initSelectNumberNode(); + }, 1000); } start() { diff --git a/settings/v2/packages/project.json b/settings/v2/packages/project.json index 00b158f..84d0ac0 100644 --- a/settings/v2/packages/project.json +++ b/settings/v2/packages/project.json @@ -5,5 +5,6 @@ "width": 1067, "height": 600 } - } + }, + "custom_joint_texture_layouts": [] }