cocos creator飞机大战总结
背景滚动方法
//每一帧都移动//遍历子物体(背景)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飞机大战总结相关推荐
- cocos做飞机大战笔记【玩家飞机移动与子弹发射】
文章目录 滚动背景 创建脚本MovingSceneBg 让背景动起来 游戏开发常用框架 飞机移动+子弹发射 管理脚本文件夹 飞机移动 创建子弹材质 将子弹展示在编辑器中 绑定子弹脚本 创建子弹管理类b ...
- cocos做飞机大战笔记【添加游戏音效】
文章目录 前言 添加音频脚本并绑定组件 音频脚本 子弹发射播放音频并将播放音频方法在管理脚本中暴露 点击按钮播放音频 敌机销毁的时候播放音频 玩家飞机销毁播放音频 完整代码 前言 游戏音效会分为游戏开 ...
- cocos做飞机大战笔记【敌机发射子弹】
文章目录 前言 敌机脚本 1. 初始变量 2. 子弹发射逻辑 3. 初始化敌机状态和子弹状态 子弹脚本 1.创建初始变量与飞机子弹类型判断逻辑 2. 状态初始化 游戏管理脚本 完整代码 GameMan ...
- cocos做飞机大战笔记【根据道具设置子弹】
文章目录 前言 定义子弹方向 定义子弹状态及根据状态移动 编写 M.H.S子弹创建逻辑 完整代码 前言 本文会介绍怎么根据拾取道具来改变子弹形态默认子弹是M s子弹 h子弹 定义子弹方向 首先可以想到 ...
- cocos做飞机大战笔记【创建道具】
文章目录 效果 创建道具预制资源 创建道具材质 在引擎中调整道具并添加预制资源 编写脚本 添加碰撞类型与道具类型 子弹脚本 游戏管理脚本 将预制挂在脚本上并查看效果 完整代码 效果 道具运行轨迹大致是 ...
- cocos做飞机大战笔记【开始、游戏中,游戏结束界面】
文章目录 UI界面 创建开始前的场景 创建游戏中的界面 游戏结束的场景 脚本编写 1. 脚本中接受上面三个节点 2. 按钮绑定点击事件 3. 绑定游戏分数 3. 游戏结束逻辑 4. 设置血量 完整代码 ...
- 飞机大战-Cocos Creator 碰撞系统实践
本文概要 本文主要是讲解Cocos Creator碰撞系统的简单实践,并且结合一个简单小项目-飞机大战,来一起熟悉碰撞系统的使用.demo效果如下图. 关于Cocos Creator 碰撞基本介绍 ...
- Cocos creator实现飞机大战空中大战《战击长空》小游戏资源及代码
Cocos creator实现飞机大战空中大战小游戏资源及代码 最近在学习Cocos Creator,作为新手,刚刚开始学习Cocos Creator,刚刚入门,这里记录一下飞机大战小游戏实现.搜索微 ...
- 基于Cocos creator 实现坦克大战小游戏【100010131】
疯狂坦克 引言 坦克大战是一款曾经风靡一时的小游戏,本次的实训,就是要力图让经典历久弥新.因此在老师的帮助下,我们将尽力开发一款在原有基础上有突破的"疯狂坦克2",加入新的元素,融 ...
- 第一个合作开发的游戏项目--飞机大战(cocos creater)
上一周与小伙伴们完成了一个飞机大战的项目,从中汲取到了许多项目经验. 例如如何在项目中分模块的开发,游戏登陆模块,创建房间模块,游戏逻辑模块等:以及对开发框架的普适性以及拓展性有了更多的理解. 1. ...
最新文章
- [Sdoi2008]沙拉公主的困惑
- 一种缘于积木游戏的思维
- idea无法创建javaclass文件
- 发送WM_COPYDATA消息实现进程间的通信
- 禁止Dockpanel拖动
- logstash使用中遇到的问题
- logstash异常
- 支付宝小程序中Navigator和导航栏之间的区别以及用法场景的分析
- 【PKUSC2019】线弦图【计数】【树形DP】【分治FFT】
- vue学习笔记-01-前端的发展历史(从后端到前端,再到前后端分离,再到全栈)
- windows下tomcat7+nginx1.8负载均衡
- c#项目 java项目_c#项目转Java项目!!!!!
- 文件的上传下载功能的实现(包括进度条)[telerik控件]
- Java开发、网络爬虫、自然语言处理、数据挖掘简介
- Samba配置文件常用参数详解
- 并联串联混合的电压和电流_电子电路基础,教你看懂电子电路,简单的串并联...
- 婴儿纸尿裤的综合分析
- 语雀文章导入CSDN
- 今日头条测开----2轮
- python 猪八戒网接单_python接单平台简单整理