161 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
| import { _decorator, BlockInputEvents, Button, Color, Director, director, EventMouse, Label, Node, UITransform, v2 } from 'cc';
 | |
| import { BaseSprite } from '../../GlobalScript/CommonComponent/BaseSprite';
 | |
| import { NpkImage } from '../../Tool/NPKImage';
 | |
| 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;
 | |
| 
 | |
| /// 开始游戏按钮界面
 | |
| @ccclass('StartGameUINode')
 | |
| export class StartGameUINode extends Node {
 | |
| 
 | |
|     /// 玩法介绍
 | |
|     private pressenNode: Node;
 | |
| 
 | |
|     constructor(){
 | |
|         super();
 | |
| 
 | |
|         this.addComponent(UITransform).setContentSize(1067,600);
 | |
| 
 | |
|         this.init();
 | |
|     }
 | |
| 
 | |
|     /// 初始化子节点
 | |
|     init(){
 | |
| 
 | |
|         this.initBackground();
 | |
|         this.initTitle();
 | |
|         this.initStartButton();
 | |
|         this.initLabel();
 | |
|         this.initPressenButton();
 | |
|         this.initPressen();
 | |
|     }
 | |
| 
 | |
|     /// 背景
 | |
|     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.init(NpkImage.main,1);
 | |
|         // 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.init(NpkImage.main,9);
 | |
| 
 | |
|         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);
 | |
|         this.pressenNode.addComponent( UITransform).setContentSize(1067,600);
 | |
|         this.pressenNode.getComponent(UITransform).anchorPoint = v2(0, 1);
 | |
| 
 | |
|         /// 拦截下层的点击事件
 | |
|         this.pressenNode.addComponent( BlockInputEvents );
 | |
| 
 | |
|         /// 给节点添加 img
 | |
|         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);
 | |
| 
 | |
|     }
 | |
| 
 | |
|     /// 打开玩法介绍
 | |
|     pressenOnTouchEnd(event:EventMouse){
 | |
|         if ( event.getButton() === EventMouse.BUTTON_LEFT ){
 | |
|             this.pressenNode.active = true;
 | |
|         }
 | |
|     }
 | |
| 
 | |
| 
 | |
|     closeOnTouchEnd(event:EventMouse){
 | |
|         this.pressenNode.active = false;
 | |
|     }
 | |
| 
 | |
|     /// 开始游戏
 | |
|     startOnTouchEnd(event:Event){
 | |
|         const uiroot = GameRootSingleton.getInstance().UIRoot;
 | |
|         uiroot.initGameUI();
 | |
| 
 | |
|         /// 一帧结束之后销毁
 | |
|         director.once(Director.EVENT_END_FRAME,()=>{
 | |
|             // 销毁
 | |
|             this.destroy();
 | |
|         });
 | |
| 
 | |
|         console.log('开始游戏');
 | |
|     }
 | |
| 
 | |
| }
 | |
| 
 | |
| 
 |