DaFuWeng/assets/Script/StartGameUINode.ts

175 lines
5.2 KiB
TypeScript
Raw Normal View History

import { _decorator, BlockInputEvents, Button, Color, Director, director, EventMouse, Label, Node, sp, Sprite, UITransform, v2 } from 'cc';
2024-03-11 17:37:03 +08:00
import { BaseSprite } from '../GlobalScript/CommonComponent/BaseSprite';
import { NpkImage } from '../Tool/NPKImage';
import { BaseButton } from '../GlobalScript/CommonComponent/BaseButton';
import { AnimationNode } from '../GlobalScript/Animation/AnimationNode';
import { CharacterType, GamerNode } from './GamerNode';
import { UIRoot } from './UIRoot';
import {closeButtonNode } from './common/closeButtonNode';
2024-03-11 17:37:03 +08:00
const { ccclass } = _decorator;
/// 开始游戏按钮界面
@ccclass('StartGameUINode')
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;
}
constructor(){
super();
this.addComponent(UITransform).setContentSize(1067,600);
this.init();
}
/// 初始化子节点
init(){
this.initBackground();
this.initTitle();
this.initStartButton();
this.initLabel();
this.initPressenButton();
2024-03-11 19:20:48 +08:00
this.initPressen();
2024-03-11 17:37:03 +08:00
}
/// 背景
initBackground(){
/// 背景节点
const backgroundNode = new Node('StartBackgroundNode');
this.addChild(backgroundNode);
/// 给背景节点添加 baseSprite 组件
const backgroundComponent = backgroundNode.addComponent( BaseSprite );
backgroundComponent.updateSpriteFrame(NpkImage.main,24);
}
/// 标题动画
initTitle(){
let titleNode = new AnimationNode('ani/title_loop.ani');
titleNode.setPosition(544.5,-305);
this.addChild(titleNode);
}
/// 开始游戏
initStartButton(){
/// 按钮节点
const startButtonNode = new Node('StartButton');
startButtonNode.setPosition(441.5,-450);
/// 给节点添加 button 组件
const buttonComponent = startButtonNode.addComponent( BaseButton );
buttonComponent.ImgPath = NpkImage.main;
buttonComponent.NormalImgIndex = 1;
buttonComponent.HoverImgIndex = 2;
buttonComponent.PressImgIndex = 3;
buttonComponent.DisableImgIndex = 4;
startButtonNode.addComponent( Button)
startButtonNode.on(Button.EventType.CLICK,this.startOnTouchEnd,this);
this.addChild(startButtonNode);
}
/// 入场次数
initLabel(){
const labelNode = new Node('Label');
labelNode.setPosition(550,-421);
const labelComponent = labelNode.addComponent( Label );
labelComponent.string = '∞';
labelComponent.color = new Color('24a5cd');
labelComponent.fontSize = 18;
this.addChild(labelNode);
}
/// 玩法介绍按钮
initPressenButton(){
/// 按钮节点
const pressenButtonNode = new Node('PressenButton');
pressenButtonNode.setPosition(1020,-10);
/// 给节点添加 button 组件
const buttonComponent = pressenButtonNode.addComponent( BaseButton );
buttonComponent.ImgPath = NpkImage.main;
buttonComponent.NormalImgIndex = 9;
buttonComponent.HoverImgIndex = 10;
buttonComponent.PressImgIndex = 11;
buttonComponent.DisableImgIndex = 12;
pressenButtonNode.on(Node.EventType.MOUSE_UP,this.pressenOnTouchEnd,this);
this.addChild(pressenButtonNode);
}
/// 玩法介绍
initPressen(){
/// 节点
this.pressenNode = new Node('Pressen');
this.pressenNode.active = false;
this.addChild(this.pressenNode);
this.pressenNode.setPosition(0,0);
2024-03-11 17:37:03 +08:00
this.pressenNode.addComponent( UITransform).setContentSize(1067,600);
this.pressenNode.getComponent(UITransform).anchorPoint = v2(0, 1);
/// 拦截下层的点击事件
this.pressenNode.addComponent( BlockInputEvents );
/// 给节点添加 img
2024-03-11 17:37:03 +08:00
const imgNode = new Node('PressenImage');
imgNode.setPosition(134,-21.5);
const imgComponent = imgNode.addComponent( BaseSprite );
imgComponent.updateSpriteFrame(NpkImage.main,25);
this.pressenNode.addChild(imgNode);
/// 关闭按钮
const closeNode = new closeButtonNode(this.closeOnTouchEnd.bind(this));
closeNode.setPosition(767,-10);
imgNode.addChild(closeNode);
2024-03-11 17:37:03 +08:00
}
/// 打开玩法介绍
pressenOnTouchEnd(event:EventMouse){
if ( event.getButton() === EventMouse.BUTTON_LEFT ){
this.pressenNode.active = true;
2024-03-11 17:37:03 +08:00
}
}
2024-03-11 17:37:03 +08:00
closeOnTouchEnd(event:EventMouse){
this.pressenNode.active = false;
2024-03-11 17:37:03 +08:00
}
/// 开始游戏
startOnTouchEnd(event:Event){
const uiroot = this.parent.getComponent( UIRoot );
uiroot.initGameUI();
/// 一帧结束之后销毁
director.once(Director.EVENT_END_FRAME,()=>{
// 销毁
this.destroy();
});
2024-03-11 17:37:03 +08:00
console.log('开始游戏');
}
}