初学者用COCOS CREATOR写一款飞机大战游戏(5)

初学者COCOS CREATOR一款飞机大战游戏(8) 跟普通敌人类似,BOSS也会有撞击攻击力、初始血量、初始速度、敌人类型等字段,这里我们可以把BOSS的撞击攻击力设置的高一些,毕竟碰到BOSS就会死也很合理。最后再分享一个体力相关的计算函数,当我们下线后,可以通过获取再次上线的时间计算时间差,来增加相应的体力。目前戒戒在游戏内暂时设置了4个BOSS,它们的血量、攻击力和战胜后获取的金币等都是累加的。 阅读详情

在上一篇文章中我们介绍了做弹出框和列表框,还有用云函数做了一个简单的排行榜,今天我们来说一说战斗相关的内容。

首先我们先获取缓存数据中的关卡数值,然后根据关卡数值判断是否是BOSS关。如果关卡数值是10倍数的话则是BOSS关卡,BOSS关卡的schedule只执行一次,所以最后一个参数是0。

   if (this.levelNum % 10 == 0) {//如果是BOSS关卡

            this.remainEnemy = 1;

            this.schedule(this.makeEnemyAndBoss, this.enemyCreateTime, 0);

            this.enemyNumberBar.node.active = false; //开始游戏后敌人条可见

            //this.bossNumberBar.node.active = true; //开始游戏后敌人条可见

        }

        else {

            this.remainEnemy = this.levelNum + 10

            this.schedule(this.makeEnemyAndBoss, this.enemyCreateTime, macro.REPEAT_FOREVER);

            this.enemyNumberBar.node.active = true; //开始游戏后敌人条可见

            this.bossNumberBar.node.active = false; //开始游戏后敌人条可见

        }

创建BOSS函数也比较简单,根据BOSS的类型来从BOSS工厂中新建BOSS。

 makeBOSS(BossType: enemyTypeEnum) {

        const playerNode = this.node.getChildByName('player')

        let playerwidth = playerNode.getComponent(UITransform).contentSize.width;

        let enemyTemp: Node = null;

        switch (BossType) {

            case enemyTypeEnum.BOSS1:

                enemyTemp = this.enemyBossFactory.createProduct(BossType);

                break;

            case enemyTypeEnum.BOSS2:

                enemyTemp = this.enemyBoss2Factory.createProduct(BossType);

                break;

            case enemyTypeEnum.BOSS3:

                enemyTemp = this.enemyBoss3Factory.createProduct(BossType);

                break;

            case enemyTypeEnum.BOSS4:

                enemyTemp = this.enemyBoss4Factory.createProduct(BossType);

                break;

        }

        //根据这个可以动态调整敌机的战斗力

        //console.log(enemyTemp.getComponent(bossBase).startImpactAttack)

        enemyTemp.name = 'Enemy';

        enemyTemp.setParent(this.node)

        let v2 = this.randomPosition((common.viewWidth - playerwidth) / 2, -(common.viewWidth - playerwidth) / 2)

        enemyTemp.setPosition(v2.x, v2.y);

    }

在初始化敌人之前,先根据关卡数值判断敌人类型,敌人类型在枚举类中定义。

那么如何来判断关卡是否结束了呢?我们先定义一个KillEnemy函数,在敌人管理类中判断敌人的血量,如果小于0则调用这个函数。然后再更新关卡的敌人数量进度条的时候,判断已经死亡的敌人数量和总共需要生成的敌人数量的差值,小于零的话就说明关卡结束。然后做一些保存关卡记录、增加金币数量、停止玩家射击等操作。

战斗结束以后写了一个基础的tween函数,让飞机飞到指定的地点。

 successFly(node: Node) {

        //物理碰撞失效

        node.getComponent(BoxCollider2D).enabled = false;

        const height = view.getVisibleSize().height

        tween(node)

            .to(3, { position: new Vec3(0, height / 2 - 200, 0) }, {  // 这里以node的位置信息坐标缓动的目标

                easing: "elasticOut",                     // 缓动函数,可以使用已有的,也可以传入自定义的函数。      

            })

            .start();

    }

无尽模式的战斗脚本也是类似,区别在于一个schedule是macro.REPEAT_FOREVER无限循环的。在玩家脚本中,如果是无尽模式的话再判断获得的分数,调用云函数看看是否超过自己以往的最高分,如果是则更新。

好了今天就先说这么多,对了记得来体验一下这款小游戏哦,打不过的话一定要升级装备!

无聊吗?个【飞机大战】来玩吧(上篇) 01前言介绍 微信小游戏是基于微信客户端的游戏,它即点即玩,无需下载安装,体验轻便,可以和微信内的好友一起玩,比如PK、围观等,享受小游戏带来的乐趣。那如何开发一款属于自己的小游戏呢?   源码地址: https://github.com/A123asdo11/aircraft_war (新版ccc已无法正常使用,需要修复,文章作者花费了大量的时间和精... 阅读详情

相关推荐

基于cocos creator简单的打飞机源码

基于cocos creator简单的打飞机源码,实现了打飞机游戏基本操作。敌人队列、子弹、消灭敌人、碰撞检测等。

基于cocosCreator做的微信经典飞机大战

【作品名称】:基于cocosCreator做的微信经典飞机大战 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:该项目是模仿的微信经典飞机大战CocosCreator开发的。 应用了CC数据驱动的优势,让一些参数方便调整,道具更容易扩展 诸如:敌机的生成频率,速度,子弹的频率 速度,还可以很容易的增加子弹的种类,ufo的种类等 敌机 子弹 ufo等使用了对象池 历史分数纪录用到了本地存储 结构上自上而下的控制,main控制游戏主逻辑,暂停继续得分等 main下有三个分组,敌机组 子弹组 ufo组,每个组又管理组员的生成逻辑

cocos creator 源码 :”飞机大战“,特别适合新手入门

1. 基于cocos creator 2.1.3 开发 2. 主要功能: 2.1 开始菜单界面 2.2 主游戏界面 2.3 历史排行榜 2.4 结算弹窗 3. 支持微信等各平台小游戏发布 4. 亲测有效

这几十款CocosCreator做的3D游戏你玩过多少呢?

许多小伙伴都在问 Cocos Creator 有哪些 3D 游戏项目。今天阿麟就给大家盘点一下。“由于获得信息途径有限,只能收集少量项目,如果有谁发现了使用 Cocos Creator 开发的优秀 3D 作品,欢迎留言。中重度3D小游戏《三国:冰河时代》- 3D SLG三国:冰河时代是一款采用 Cocos Creator 开发的 3D 放置策略手游,游戏的画风精美、细腻,带入感很强。能够让这种使用...

Cocos的博客 6267

cocos2d-js飞机项目:飞机游戏增加BOSS功能

1.boss的移动:实现boss横向水平移动,先从原点移动到屏幕右边,然后回到原点,发射子弹3秒,然后停止发射,再像左移动,一直循环这些动作,直达boss死亡 var move1 = cc.moveBy(GAME_CONFIG.ENEMY_BOSS_SPEED,cc.p(cc.winSize.width/4,0)); var move2 = move1.reverse(); var that

Cleve_baby的博客 1074

飞机大战素材和源码.zip

此资源是休闲小游戏飞机大战》的源码与素材,主要使用了cocoscreator与vscode来开发,下载后直接解压,然后通过cocoscreator打开这个项目即可

微信小游戏飞机大战Cocos Creator+TypeScript

微信小游戏飞机大战 - 实现工具: Cocos Creator + VSCode - 游戏预览: - 实现原理: 1. 背景移动 实现飞机飞行的方法不是让飞机往前跑,而是通过后移背景图片,使得产生飞机向前跑的视觉效果。 这里设置两个一样的背景图,为了同时控制两个背景图,所以放在一个节点下面,将背景控制的脚本加载在背景节点上。通过this.node.children获得两个背景图,在update(dt)中移动两个背景图, 考虑到越界问题,当背景超过下界的时候,将图片下界向上移动到Canvas上端,从而实

Who_Am_I 8602

cocos creator】经典微信飞机大战

最近在学习cocos creator, 教程常常是cocos creator 2.4.x, 3.x API很多发生变化, 故记录一下使用3.x练习实现过程。如果对您有用,倍感荣幸。习作: 经典的微信小游戏飞机大战软件: cocos creator 3.8.0开源地址: https://gitee.com/depingl/cc_plane_war.git体验地址:https://planewar.lisi.fun/

平兄的笔记 1704

学习飞机大战游戏的个人笔记(Cocos Creator

学习飞机大战的个人笔记 飞机大战前14课时 1、游戏轮播背景 相同的两张图片进行位置移动 进行交替轮播 2、暂停页面 带图片的按钮事件应该灵活使用button按钮组件 防止背景穿透,添加使用block input events组件 3、飞机移动动画 获取飞机位置 获取触摸点移动的距离 飞机位置+触摸点移动的距离 4、子弹对象池 4.1、初始化对象池 //... onLoad: function () { this.enemyPool = new cc.NodePool(); } 4.

Eddie_Hong的博客 418

cocos进阶【飞机大战】全流程【代码-笔记】

完后的心得用来安卓小游戏和网页小游戏还是蛮不错的,但cocos似乎已经放弃电脑端了,各种报错,全网翻了个遍也没看几个靠谱的方案,不好评价开始游戏的ui界面1引入素材之中的背景图片【backgroud】,放置在画布节点下方。2选择拖入的图片节点,在右侧的属性检查器查看长与宽。3在项目设置-》项目数据-》设计宽度/高度,进行调整为图片节点的大小。4添加logo,在资源管理器找到logo并拖入5把图片【game_loaing1】拖入。6把图片创建帧动画,选择图片-》创建动画组件-》添加动画剪辑资源-》属性列表

gougouxianka的博客 1110

Cocos Creator实战:前端开发者如何用TypeScript开发《飞机大战游戏

游戏开发的核心在于高效管理动态对象与实时交互。对象池技术通过复用节点实例,有效解决了频繁创建销毁带来的性能瓶颈,是优化内存和GC的关键手段。碰撞检测则是实现游戏交互逻辑的基础,通过物理组件定义边界并处理接触事件,驱动游戏规则运行。这些技术共同支撑起丰富的游戏玩法与流畅的体验。在Cocos Creator引擎中,前端开发者可以运用熟悉的组件化思维和TypeScript类型系统,结合对象池与碰撞检测等核心机制,快速构建出像《飞机大战》这样的完整2D游戏项目,实现从Web应用到互动游戏开发的平滑过渡。

weixin_30613727的博客 377

cocos creator 6个小游戏合集

整合了多个小游戏 供大家分享 2048 傻鸟. 消消乐等6个小程序. cocoscreator 实现. 可直接运行 大家互相学习

Cocos Creator 一个游戏大厅 2.0.5

一个游戏大厅框架,用于制作游戏合集使用,包含json数据解析等一系列基本的大厅公用脚本,可以直接添加子游戏,这是一个大厅框架,子游戏,也可以支持发多语言包 只需要你对应配置翻译文本

PinK(Cocos4.0?)生成飞机大战,抢先体验全流程!

Cocos引擎新工具PinK 0.0.1-alpha.1版发布,作者通过开发者测试资格体验了这款基于VSCode开发的工具。文章详细介绍了PinK的安装激活流程、界面布局以及与Cocos Creator的关联性,重点展示了使用PinK开发飞机大战游戏的实战过程。通过AI辅助生成游戏设计文档、美术资源和技术方案,工具能自动创建场景节点和挂载脚本,但在实际运行中仍遇到图片格式报错等问题。测试显示PinK可能对应Cocos Creator 4.0版本,为游戏开发提供了新的AI辅助工作流。

lsw_Cs的博客 1624

Cocos Creator2D游戏开发(7)-飞机大战(5)-让子弹飞

③ 发射子弹 player加入代码 @property(Prefab) playerBullet_prefab: Prefab;新建一个动画体,命名为playerBullet_animation.amim 保存在assets/animation/文件夹中。创建脚本PlayerBullet.ts脚本里的是子弹运动的逻辑。现在已经可以发射子弹了,但是子弹是是静止的,不会动,向下面这样。创建动画帧 每5帧插入一张新动画 (这里重复用了第一张)Player.ts加入创建子弹的代码。

Fuly的博客 963

从0开始做游戏—-cocos引擎

第一次做游戏,记录一下

weixin_46630782的博客 2832

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

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

一名开发者 1912

cocos creator 开发飞机游戏(笔记一)

计算夹角,使得箭头一直朝向目标 主要用于: 1.使曲线飞行的子弹朝向正确方向 2.使面朝玩家飞机的敌机面向玩家 3.使瞄准玩家的子弹朝向正确 this.tarPos=this.target.position; letv=this.tarPos.sub(this.selfPos); letangle=cc.v2(v.x,v.y).signAngle(cc.v2(0,1)); // 这里直接用V会有警告 letd...

USevenDays 588
上一篇: 初学者用COCOS CREATOR写一款飞机大战游戏(4)
下一篇: 初学者用COCOS CREATOR写一款飞机大战游戏(6)
chb497710576
博客等级 码龄16年 2粉丝 · 8原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值