欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > Cocos Creator2D游戏开发(6)-飞机大战(4)-敌机产生

Cocos Creator2D游戏开发(6)-飞机大战(4)-敌机产生

2025/5/1 18:25:05 来源:https://blog.csdn.net/xy3233/article/details/140744326  浏览:    关键词:Cocos Creator2D游戏开发(6)-飞机大战(4)-敌机产生

敌机产生&玩家发射子弹

敌机产生:
创建一个空节点
创建一个敌机预制体
把敌机图片拖入预制体内
使用代码生成敌机
让敌机动起来

  1. 创建一个预制体enemy_prefab
  2. 双击预制体enemy_prefab,然后拖入一个敌机图片,设置好方向和尺寸,一定要记得保存然后关闭(场景编辑器里面的保存)
    在这里插入图片描述
  3. 创建一个空节点enemy_node
  4. 创建一个脚本root.ts和root_node绑定
  5. root.ts添加 两行代码,保存
`   @property(Node) enemy_node: Node;   @property(Prefab) enemy_prefab: Prefab;  `

在这里插入图片描述
6. 选中root_node节点 绑定节点和预制体, 保存
在这里插入图片描述
7. root.ts代码

import { _decorator, Component, instantiate, Node, Prefab } from 'cc';
const { ccclass, property } = _decorator;@ccclass('root')
export class root extends Component {@property(Node) enemy_node: Node;   // 添加属性 以便在代码中引用 敌人节点@property(Prefab) enemy_prefab: Prefab;   // 添加属性 以便在代码中 动态生成 敌人start() {this.createEnemies(); //使用定时器生成敌机}update(deltaTime: number) {}createEnemies() {this.schedule(() => {this.createOneEnemy();}, 1);}// 创建一个敌机createOneEnemy() {// console.log("createOneGold !");const enemyPrefab = instantiate(this.enemy_prefab);   // 实例化一个对象 (动态生成)this.enemy_node.addChild(enemyPrefab);     // 将对象 添加到某个 节点内let x = (Math.random() * 360)   // random() 0-360 enemyPrefab.setPosition(180 - x, 350);  // 设置敌机的Y坐标console.log("enemyPrefab: " + (180 - x) + "   y" + 350);}}

运行,飞机出来了,就是不会动
在这里插入图片描述
8. 让敌机飞
①创建Enemy.ts
②Enemy.ts和enemy_node节点绑定
③ 编写enemy.ts代码

import { _decorator, Component, Node } from 'cc';
const { ccclass, property } = _decorator;@ccclass('Enemy')
export class Enemy extends Component {start() {}update(deltaTime: number) {const enemy_list = this.node.children;let need_destroy =[];for (let i = 0; i < enemy_list.length; i++) {const pos  = enemy_list[i].getPosition();if (pos.y < -400) {need_destroy.push(i);}else{enemy_list[i].setPosition(pos.x, pos.y - 10);}}for (let j = 0; j < need_destroy.length; j++) {const index =  need_destroy[j];enemy_list[index].destroy(); //销毁对象}}
}

然后运行 飞机就能飞了
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词