背景滚动方法

//每一帧都移动//遍历子物体(背景)update (dt) { //dt是每秒有dt帧for(let bgNode of this.node.children){//移动 帧 -> 秒bgNode.y -= 50 * dt;//变成每秒移动50if(bgNode.y < -850){bgNode.y += 852*2;}}}

做物体移动的基本方法

//每一帧都移动//遍历子物体(背景)update (dt) { //dt是每秒有dt帧for(let bgNode of this.node.children){//移动 帧 -> 秒bgNode.y -= 50 * dt;//变成每秒移动50if(bgNode.y < -850){bgNode.y += 852*2;}}}

setTimeot()延时方法

 setTimeout(() => {//延时方法,多长时间后执行什么方法this.node.destroy();}, 200);//单位毫秒

做碰撞的基本方法

//碰撞onCollisionEnter(other){//如果碰到敌人,销毁自己,敌人死亡if(other.tag == 1){//销毁敌人other.getComponent(EnemyControl).die();//获取敌人的脚本//销毁自己this.node.destroy();}}

动态加载图片方法

//加载动态图片cc.resources.load("enemy0_die",cc.SpriteFrame,(err,spriteFrame)=>{this.node.getComponent(cc.Sprite).spriteFrame = spriteFrame;});

创建随机敌人方法

//每隔1秒创建一个敌机this.schedule(()=>{let enemy = cc.instantiate(this.enemyPre);enemy.setParent(cc.director.getScene());enemy.y = this.node.y;enemy.x = Math.random() * 400;//默认从0-400, 格式为400 + 20  20到400的随机数},1);

背景脚本源码


const {ccclass, property} = cc._decorator;@ccclass
export default class BgControl extends cc.Component {@property(cc.Label)label: cc.Label = null;@propertytext: string = 'hello';// LIFE-CYCLE CALLBACKS:// onLoad () {}start () {}//每一帧都移动//遍历子物体(背景)update (dt) { //dt是每秒有dt帧for(let bgNode of this.node.children){//移动 帧 -> 秒bgNode.y -= 50 * dt;//变成每秒移动50if(bgNode.y < -850){bgNode.y += 852*2;}}}
}

玩家飞机脚本源码


const {ccclass, property} = cc._decorator;@ccclass
export default class PlayerControl extends cc.Component {//创建子弹预设体@property(cc.Prefab)bulletPre:cc.Prefab =null;@property(cc.Label)label: cc.Label = null;@propertytext: string = 'hello';// LIFE-CYCLE CALLBACKS:// onLoad () {}start () {//移动 通过监听let self = this;this.node.on(cc.Node.EventType.TOUCH_MOVE,(event)=>{this.node.setPosition(event.getLocation());});//攻击 计时器this.schedule(()=>{//创建子弹let bullet = cc.instantiate(this.bulletPre);//设置父物体bullet.setParent(cc.director.getScene());//设置子弹位置bullet.x = this.node.x;bullet.y = this.node.y + 60;},0.5,); //四个参数:函数,0.5秒重复一次,重复几次,多长时间开始第一次//开启碰撞检测cc.director.getCollisionManager().enabled = true;}die(){//变为被攻击后图片cc.resources.load("hero1_die",cc.SpriteFrame,(err,res)=>{this.node.getComponent(cc.Sprite).spriteFrame = res;});//九百毫秒后消失setTimeout(() => {this.node.destroy();}, 900);}update (dt) {}
}

子弹脚本源码

import EnemyControl from "./EnemyControl";const {ccclass, property} = cc._decorator;@ccclass
export default class BulletControl extends cc.Component {@property(cc.Label)label: cc.Label = null;@propertytext: string = 'hello';speed:number = 800;start () {}update (dt) {//子弹移动this.node.y += this.speed * dt;//每秒向上移动800像素//出屏幕销毁if(this.node.y > 820){this.node.destroy();}}//碰撞onCollisionEnter(other){//如果碰到敌人,销毁自己,敌人死亡if(other.tag == 1){//销毁敌人other.getComponent(EnemyControl).die();//获取敌人的脚本//销毁自己this.node.destroy();}}
}

敌人脚本源码

const {ccclass, property} = cc._decorator;
import PlayerControl from "./PlayerControl";
@ccclass
export default class EnemyControl extends cc.Component {//是否死亡isDie:boolean = false;@property(cc.Label)label: cc.Label = null;@propertytext: string = 'hello';start () {}update (dt) {//敌人移动if(this.isDie ==false){this.node.y -= 300*dt;}if(this.node.y < -50){this.node.destroy();}}//死亡方法die(){this.isDie = true//加载动态图片cc.resources.load("enemy0_die",cc.SpriteFrame,(err,spriteFrame)=>{this.node.getComponent(cc.Sprite).spriteFrame = spriteFrame;});//200毫秒后销毁setTimeout(() => {//延时方法,多长时间后执行什么方法this.node.destroy();}, 200);//单位毫秒}onCollisionEnter(other){//碰到敌人 玩家死亡if(other.tag == 2){other.getComponent(PlayerControl).die();}}
}

敌人生成器脚本源码

const {ccclass, property} = cc._decorator;@ccclass
export default class EnemyManger extends cc.Component {//敌机预设体@property(cc.Prefab)enemyPre: cc.Prefab = null; @property(cc.Label)label: cc.Label = null;@propertytext: string = 'hello';// LIFE-CYCLE CALLBACKS:// onLoad () {}start () {//每隔1秒创建一个敌机this.schedule(()=>{let enemy = cc.instantiate(this.enemyPre);enemy.setParent(cc.director.getScene());enemy.y = this.node.y;enemy.x = Math.random() * 400;//默认从0-400, 格式为400 + 20  20到400的随机数},1);}// update (dt) {}
}

cocos creator

效果图

cocos creator飞机大战总结相关推荐

  1. cocos做飞机大战笔记【玩家飞机移动与子弹发射】

    文章目录 滚动背景 创建脚本MovingSceneBg 让背景动起来 游戏开发常用框架 飞机移动+子弹发射 管理脚本文件夹 飞机移动 创建子弹材质 将子弹展示在编辑器中 绑定子弹脚本 创建子弹管理类b ...

  2. cocos做飞机大战笔记【添加游戏音效】

    文章目录 前言 添加音频脚本并绑定组件 音频脚本 子弹发射播放音频并将播放音频方法在管理脚本中暴露 点击按钮播放音频 敌机销毁的时候播放音频 玩家飞机销毁播放音频 完整代码 前言 游戏音效会分为游戏开 ...

  3. cocos做飞机大战笔记【敌机发射子弹】

    文章目录 前言 敌机脚本 1. 初始变量 2. 子弹发射逻辑 3. 初始化敌机状态和子弹状态 子弹脚本 1.创建初始变量与飞机子弹类型判断逻辑 2. 状态初始化 游戏管理脚本 完整代码 GameMan ...

  4. cocos做飞机大战笔记【根据道具设置子弹】

    文章目录 前言 定义子弹方向 定义子弹状态及根据状态移动 编写 M.H.S子弹创建逻辑 完整代码 前言 本文会介绍怎么根据拾取道具来改变子弹形态默认子弹是M s子弹 h子弹 定义子弹方向 首先可以想到 ...

  5. cocos做飞机大战笔记【创建道具】

    文章目录 效果 创建道具预制资源 创建道具材质 在引擎中调整道具并添加预制资源 编写脚本 添加碰撞类型与道具类型 子弹脚本 游戏管理脚本 将预制挂在脚本上并查看效果 完整代码 效果 道具运行轨迹大致是 ...

  6. cocos做飞机大战笔记【开始、游戏中,游戏结束界面】

    文章目录 UI界面 创建开始前的场景 创建游戏中的界面 游戏结束的场景 脚本编写 1. 脚本中接受上面三个节点 2. 按钮绑定点击事件 3. 绑定游戏分数 3. 游戏结束逻辑 4. 设置血量 完整代码 ...

  7. 飞机大战-Cocos Creator 碰撞系统实践

    本文概要 本文主要是讲解Cocos Creator碰撞系统的简单实践,并且结合一个简单小项目-飞机大战,来一起熟悉碰撞系统的使用.demo效果如下图. ​ 关于Cocos Creator 碰撞基本介绍 ...

  8. Cocos creator实现飞机大战空中大战《战击长空》小游戏资源及代码

    Cocos creator实现飞机大战空中大战小游戏资源及代码 最近在学习Cocos Creator,作为新手,刚刚开始学习Cocos Creator,刚刚入门,这里记录一下飞机大战小游戏实现.搜索微 ...

  9. 基于Cocos creator 实现坦克大战小游戏【100010131】

    疯狂坦克 引言 坦克大战是一款曾经风靡一时的小游戏,本次的实训,就是要力图让经典历久弥新.因此在老师的帮助下,我们将尽力开发一款在原有基础上有突破的"疯狂坦克2",加入新的元素,融 ...

  10. 第一个合作开发的游戏项目--飞机大战(cocos creater)

    上一周与小伙伴们完成了一个飞机大战的项目,从中汲取到了许多项目经验. 例如如何在项目中分模块的开发,游戏登陆模块,创建房间模块,游戏逻辑模块等:以及对开发框架的普适性以及拓展性有了更多的理解. 1. ...

最新文章

  1. [Sdoi2008]沙拉公主的困惑
  2. 一种缘于积木游戏的思维
  3. idea无法创建javaclass文件
  4. 发送WM_COPYDATA消息实现进程间的通信
  5. 禁止Dockpanel拖动
  6. logstash使用中遇到的问题
  7. logstash异常
  8. 支付宝小程序中Navigator和导航栏之间的区别以及用法场景的分析
  9. 【PKUSC2019】线弦图【计数】【树形DP】【分治FFT】
  10. vue学习笔记-01-前端的发展历史(从后端到前端,再到前后端分离,再到全栈)
  11. windows下tomcat7+nginx1.8负载均衡
  12. c#项目 java项目_c#项目转Java项目!!!!!
  13. 文件的上传下载功能的实现(包括进度条)[telerik控件]
  14. Java开发、网络爬虫、自然语言处理、数据挖掘简介
  15. Samba配置文件常用参数详解
  16. 并联串联混合的电压和电流_电子电路基础,教你看懂电子电路,简单的串并联...
  17. 婴儿纸尿裤的综合分析
  18. 语雀文章导入CSDN
  19. 今日头条测开----2轮
  20. python 猪八戒网接单_python接单平台简单整理

热门文章

  1. 2021年国考申论写作之如何快速改进作文书写
  2. 风华散尽,葬送何言?伤感日志分享
  3. 机器学习经典总结---入门必读----心血总结
  4. ucharts 柱状图圆角_调整柱状图圆角弧度
  5. nginx 引号 x22
  6. mysql创建联合主键
  7. 微博、微信和QQ OAuth2.0开发记录
  8. Arduino火焰传感器(含代码)
  9. bat脚本用默认浏览器打开指定网站
  10. 如果你不释放MogaFX外汇,你将无法获得交易或投资