【Cocos TypeScript 零基础 10.1】

计分

最开始我想的是在玩家身上创建得分记录
但一想玩家我都销毁了,得分那不是没有了吗?
理论上是子弹与敌机发生碰撞得分
所以还只能是敌机身上触发得分事件,
且得分独立保存
暂时想到的引用老师方法,还可以多学种方法
老师代码
应该类似于注册绑定

    static instance : ts_defen      //  老师代码
    static getinstance() : ts_defen {return this.instance}      //  老师代码

    protected onLoad(): void {
        ts_defen.instance = this    //  老师代码
    }
    defen_add(fen : number){
        this.defen += fen
    }

调用

ts_defen.getinstance().defen_add(this.jifen)    //  从ls那里调用方法

==关键词 static ==
在 TypeScript 中,static 关键字用于定义类的静态成员。静态成员属于类本身,而不是类的实例,这意味着你可以直接通过类来访问它们,而不需要创建类的实例。静态成员包括静态属性和静态方法。
至于显示计分就比较简单了,应该不需要过多解释了

修复无敌bug

我之前是使用

this.enabled = false    //  关闭触发器?表示该组件自身是否启用

发现 this.enabled = true 无法开启自身组件(子弹不发射)
还是改用老师方法
增加无敌属性
减血前面判断
受伤修改状态

wudi : boolean = false  //  是否无敌
if (this.wudi == true) return   //  如果处于无敌状态就返回
this.wudi = true    //  无敌状态打开
this.scheduleOnce(function(){this.wudi = false},1)    //  延迟1秒关闭无敌状态

初步成型
在这里插入图片描述

暂停和开始

创建一个按钮
在这里插入图片描述
名字选中框,启用或者不启用(在表示显示隐藏)
node 里面的参数自己高兴调 (老师调过 画布 我没调,不知道有什么关系)
UIT 一样的自己高兴看着调
sprite 没调
button 后5个属性

  1. 按钮状态图 普通
  2. 按钮状态图 按下
  3. 按钮状态图 悬停
  4. 按钮状态图 禁用
  5. 按钮绑定事件
    哪个组件,哪个脚本,哪个函数

本人全局控制没有老师的多

import { _decorator, Button, Component, director, Label, Node } from 'cc';
import { ts_player } from './ts_player';
const { ccclass, property } = _decorator;

@ccclass('ts_control')
export class ts_control extends Component {
    @property defen : number = 0
    static instance : ts_control      //  老师代码
    static getinstance() : ts_control {return this.instance}      //  老师代码
    @property(Label) ui_defen :Label = null //  得分ui显示
    @property(Node) ui_but_p : Node = null
    @property(Node) ui_but_s : Node = null
    @property(ts_player) player : ts_player = null  //  还能这样玩?
    touch_mova : boolean = true     //  

    protected onLoad(): void {
        ts_control.instance = this    //  老师代码
    }
    start() {

    }

    update(deltaTime: number) {
        
    }
    defen_add(fen : number){
        this.defen += fen   //  更新得分
        this.ui_defen.string = this.defen.toString()    //  更新得分显示
    }
    on_but_p(){  //  暂停
        director.pause()
        this.player.onmove_mode()   //  触摸取反函数
        this.ui_but_p.active = false
        this.ui_but_s.active = true
    }
    on_but_s(){  //  开始
        director.resume()
        this.player.onmove_mode()   //  触摸取反函数
        this.ui_but_p.active = true
        this.ui_but_s.active = false
    }
}

不是因为我简化了代码
而是有些东西我写到了player里面去了
再次申明 计分>老师代码
那三条代码很给力,可以在其他脚本中调用
个人理解它的原理是

  1. 创建变量
  2. 创建函数返回变量
  3. 变量绑定类

最后玩家是否可以操控飞机,我偷懒只写了一个函数
更安全的情况下是2个函数

onmove_mode(){this.move = !this.move}   //  控制玩家是否可以操控飞机
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值