当前位置: 首页 > news >正文

Cocos Creator2D游戏开发(9)-飞机大战(7)-爆炸效果

这个爆炸效果我卡在这里好长时间,视频反复的看, 然后把代码反复的测试,修改,终于给弄出来
视频中这段,作者也是修改了好几次, 跟着做也走了不少弯路; 最后反正弄出来了;
有几个坑;
① 动画体创建位置是enemy_prefab
② enemy_prefab预制体下不用放动画就行;
③ 代码中引用Animation不会有提示,要手动添加

下面直接跟着做把, 争取一次能成吧

  1. 在enemy_prefab下创建俩动画体, 命名enemy_animation,explosion_animation
    enemy_animation下里就放一张enemy图片,但是节点选择enemy才能创建; 我们要的是文件;
    在这里插入图片描述
  2. 将动画体拖斤enemy_prefab的属性检查器中
    在这里插入图片描述
    最坑的一步来了

Enemy.ts文件中添加动画的引用(需要手动把Animation,放在import 里面)

   @property(Animation) ExploAnim: Animation;   // 添加属性 以便在代码中 播放动画

完整代码如下

import { _decorator, Collider2D, Component, Contact2DType, IPhysics2DContact, Animation } from 'cc';
const { ccclass, property } = _decorator;@ccclass('Enemy')
export class Enemy extends Component {@property(Animation) ExploAnim: Animation;   // 添加属性 以便在代码中 播放动画private isExplo = false;private collider: Collider2D;start() {this.collider = this.getComponent(Collider2D);if (this.collider) {this.collider.on(Contact2DType.BEGIN_CONTACT, this.onBeginContact, this); // 碰撞函数注册}}onBeginContact(selfCollider: Collider2D, otherCollider: Collider2D, contact: IPhysics2DContact | null) {if (this.isExplo === false) { // 碰撞一次就行了this.isExplo = true;this.collider.destroy();this.ExploAnim.play("explosion_animation");this.scheduleOnce(() => {   // 匿名函数  局部函数            this.node.destroy();}, 0.9);}}update(deltaTime: number) {const pos = this.node.getPosition();if (pos.y < -400) {this.node.destroy();} else {this.node.setPosition(pos.x, pos.y - 5);}}
}

最后效果有了;
在这里插入图片描述

留下了几个坑没有填, 这些节点的颜色不会改,没找到,隔行如隔山
第二个这个API文档我没看懂 https://docs.cocos.com/creator/3.8/api/zh/result?keyword=color
在这里插入图片描述

相关文章:

  • 使用ImDisk将Python安装到RAM磁盘提高运行速度
  • web小游戏开发:2048(完)移动操作及动画效果
  • 巧用casaos共享挂载自己的外接硬盘为局域网共享
  • CSP 2020 第三题:表达式
  • 【时时三省】unity test 测试框架 使用 code blocks 移植(核心文件:unity.c, unity_fixture.c)
  • PCB设计
  • OS X El-Capitan 安装 virtualenvwrapper 遇到 Operation not permitted
  • 模型微调(Fine-Tuning)及其在AI中的作用(优缺点)
  • 构建智能手写数字和符号识别系统:深度学习与YOLO模型的结合
  • springboot集成canal
  • Windows系统使用内网穿透配置Mysql公网地址实现IDEA远程连接
  • 【持续监控与反馈】DevOps中的监控与反馈机制
  • TypeScript 装饰器详解
  • 大模型是否潜在地进行多跳推理?
  • 51 for 循环与 while 循环
  • python3.6+scrapy+mysql 爬虫实战
  • 【React系列】如何构建React应用程序
  • Akka系列(七):Actor持久化之Akka persistence
  • css属性的继承、初识值、计算值、当前值、应用值
  • Hibernate最全面试题
  • Intervention/image 图片处理扩展包的安装和使用
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • 阿里云购买磁盘后挂载
  • 前端攻城师
  • 使用 @font-face
  • 我从编程教室毕业
  • 我的zsh配置, 2019最新方案
  • # include “ “ 和 # include < >两者的区别
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #1014 : Trie树
  • %@ page import=%的用法
  • (14)Hive调优——合并小文件
  • (70min)字节暑假实习二面(已挂)
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (四)软件性能测试
  • (算法二)滑动窗口
  • (循环依赖问题)学习spring的第九天
  • (转)平衡树
  • (自用)交互协议设计——protobuf序列化
  • ./configure,make,make install的作用
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .env.development、.env.production、.env.staging
  • .NET Core跨平台微服务学习资源
  • .net core使用EPPlus设置Excel的页眉和页脚
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET开源项目介绍及资源推荐:数据持久层
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • :class的用法及应用
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题
  • [20170705]diff比较执行结果的内容.txt