Cocos Creator2D游戏开发(3)-飞机大战(1)-背景动起来

news2024/12/27 10:08:41

资源见: https://pan.baidu.com/s/1cryYNdBOry5A4YEEcLwhDQ?pwd=zual

步骤
1, 让背景动起来
2, 玩家飞机显现,能操控,能发射子弹
3.敌机出现
4. 碰撞效果(子弹和敌机,敌机和玩家)
5. 积分和游戏结束
6. 游戏存档,对接微信小游戏,保存历史最高分
7. cocos发布到微信小游戏

资源准备:
背景图, 敌方飞机, 玩家飞机, 爆炸效果图, 子弹动画帧, 游戏结束图,音效
Resources: 图片和音效
Scene: 场景文件 文件夹
Scripts: 脚本文件夹
在这里插入图片描述

  1. 文件目录创建
    在Canvas右键创建空节点,命名为root_node,在root_node下创建空节点background_node, 并将资源中的图片Background拖入节点background_node下 , 按ctrl+s 保存当前场景, 并命名为main_scene,保存在scene文件夹中,(再次打开项目就看不到这个场景了,双击场景文件就行了)
    选择当前场景,点击运行按钮,浏览器就自动显示蓝天白云的背景了
    在这里插入图片描述
  2. 让背景动起来
    ①将背景图片节点复制一份
    ② 选中Scripts文件夹右键创建脚本(TypeScript)文件,命名 Background.ts
    ③ 选中background_node,将脚本Background.ts拖入右侧属性检查器,将脚本进行和节点进行绑定
    在这里插入图片描述
    双击脚本Background,直接打开VScode编辑器进行写代码
import { _decorator, Component, Node } from 'cc';
const { ccclass, property } = _decorator;

@ccclass('Background')
export class Background extends Component {
    private Speed = 100; // 速度
    private MyBGsArr = [];
    private DHeight = 747;

    //回调函数会在组件第一次激活前,也就是第一次执行 update 之前触发。
    start() {
        this.MyBGsArr = this.node.children; //获取当前节点子子节点(即Background_1,Background_2) 
    }

    // 游戏开发的一个关键点是在每一帧渲染前更新物体的行为,状态和方位。这些更新操作通常都放在 update 回调中。但deltaTime的值不一定
    update(deltaTime: number) {
        // 遍历两个子节点,沿Y轴向下(Y轴负方向)
        for (let i = 0; i < this.MyBGsArr.length; i++) {
            const pos = this.MyBGsArr[i].getPosition();
            const x = pos.x;
            const y = pos.y;
            if(y<= -747){
                this.MyBGsArr[i].setPosition(x, 747); // 将移动到屏幕下方的图片放到上方
            }else{
                this.MyBGsArr[i].setPosition(x, y - deltaTime * this.Speed);
            }
        }
    }
}

当前场景运行,背景图就运动起来了,偶尔会看到一条线,因为deltaTime不是恒定的所以将图片高度调整为750; 这样就能覆盖住那条线
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1953813.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机网络】IP地址和子网掩码(IP地址篇)

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️计算机网络】 文章目录 前言IP地址网络地址网络地址的定义与组成作用分类网络地址的分配与管理 广播地址&#xff08;Broadcast Address&#xff09;定义构成类型作用注意事项 广播地址功能 组播地址…

【初阶数据结构篇】栈的实现(赋源码)

文章目录 栈1 代码位置2 概念与结构1.1概念1.2结构 2 栈的实现2.1 栈的初始化和销毁2.1.1 初始化2.1.2 销毁 2.2 栈顶插入和删除数据2.2.1 栈顶插入数据&#xff08;压栈&#xff09;2.2.2 栈顶删除数据&#xff08;出栈&#xff09; 2.3 返回栈顶数据2.4 返回栈的有效数据个数…

Jenkins持续部署

开发环境任务的代码只要有更新&#xff0c;Jenkins会自动获取新的代码并运行 1. pycharm和git本地集成 获取到下面的 Git可执行文件路径 2. pycharm和gitee远程仓库集成 先在pycharm中安装gitee插件 在设置中找到gitee&#xff0c;点击添加账户&#xff0c;并将自己的账户添…

(day26)leecode热题——找到字符串中所有字母异位词

描述 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串&#xff08;包括相同的字符串&#xff09;。 示例 1: 输入: s "cbaebabacd", p …

【QGroundControl二次开发】六. QGC地面站中视频流配置gstreamer

本文解决qgc源码编译后无法接收视频推流&#xff0c;原因是缺少gstreamer。 下面为windows安装流程&#xff0c;qgc版本为4.4.1稳定版 1. 安装gstreamer 官网链接&#xff1a;https://gstreamer.freedesktop.org/download/#windows 两个都要下载。安装的时候&#xff0c;在cu…

网络安全自学从入门到精通的制胜攻略!!!

在信息时代&#xff0c;网络安全已成为至关重要的领域。越来越多的人希望通过自学掌握这门技术&#xff0c;开启充满挑战与机遇的职业道路。以下是一份精心为您打造的网络安全自学攻略&#xff0c;助您在自学之旅中乘风破浪。 一、明确目标与兴趣方向 网络安全涵盖众多领域&am…

Java的四种引用类型

Java的四种引用类型 1. 强引用&#xff08;Strong Reference&#xff09;2. 软引用&#xff08;Soft Reference&#xff09;3. 弱引用&#xff08;Weak Reference&#xff09;4. 虚引用&#xff08;Phantom Reference&#xff09; &#x1f496;The Begin&#x1f496;点点关注…

硬件工程师笔面试真题汇总

目录 1、电阻 1&#xff09;上拉电阻的作用 2&#xff09;PTC热敏电阻作为电源电路保险丝的工作原理 2、电容 1&#xff09;电容的特性 2) 电容的特性曲线 3) 1uf的电容通常来滤除什么频率的信号 3、电感 4、二极管 1&#xff09;二极管特性 2&#xff09;二极管伏安…

MySQL练手 --- 1633. 各赛事的用户注册率

题目链接&#xff1a;1633. 各赛事的用户注册率 思路&#xff1a; 两张表&#xff0c;一张为Users用户表&#xff0c;该表存储着所有用户的 user_id 和 user_name 另一张表为Register注册表&#xff0c;该表存储着赛事id&#xff08;contest_id&#xff09;&#xff0c;和已…

NumpyPandas:Pandas库(25%-50%)

目录 前言 一、列操作 1.修改变量列 2.筛选变量列 3.删除变量列 4.添加变量列 二、数据类型的转换 1.查看数据类型 2.将 ok的int类型转换成float类型 3.将ar的float类型转换成int类型 三、建立索引 1.建立DataFrame时建立索引 2.在读入数据时建立索引 3.指定某列或…

PHP8.3.9安装记录,Phpmyadmin访问提示缺少mysqli

ubuntu 22.0.4 腾讯云主机 下载好依赖 sudo apt update sudo apt install -y build-essential libxml2-dev libssl-dev libcurl4-openssl-dev pkg-config libbz2-dev libreadline-dev libicu-dev libsqlite3-dev libwebp-dev 下载php8.3.9安装包 nullhttps://www.php.net/d…

【Linux】生产者消费者模型 + 线程池的介绍和代码实现

前言 上节我们学习了线程的同步与互斥&#xff0c;学习了互斥锁和条件变量的使用。本章我们将学习编程的一个重要模型&#xff0c;生产者消费者模型&#xff0c;并且运用之前学的线程同步和互斥的相关接口来实现阻塞队列和环形队列&#xff0c;最后再来实现一个简易的线程池。 …

springboot电子产品销售系统-计算机毕业设计源码80294

摘 要 电子商务行业在全球范围内迅速发展&#xff0c;随之而来的是电子产品销售市场的快速增长和消费者对在线购物体验的需求提升&#xff0c;因此&#xff0c;电子产品销售系统应运而生。该系统旨在满足电子产品市场的需求&#xff0c;提供全面的购物功能和高效的管理操作。 …

严格模式 模块化开发

严格模式 当你在脚本或函数的顶部添加"use strict"语句时&#xff0c;你的代码将在严格模式下执行。这可以帮助你避免某些常见的编程陷阱&#xff0c;例如在不声明变量的情况下就使用它们&#xff0c;或者删除变量、函数或函数参数。在严格模式下&#xff0c;这样的…

进阶篇,内附代码:锂电池二阶模型-离线与在线参数辨识

锂电池二阶模型-在线参数辨识 背景二阶等效电路模型介绍二阶模型的离线参数辨识二阶模型的RLS表达式递推代码已知问题背景 锂电池一阶戴维南等效模型的参数辨识方法,已经在前面两期详细地讲解了一轮。 一阶模型-离线参数辨识一阶模型-在线参数辨识本期继续讲解一下如何进行二…

stm32——lcd液晶显示

一.液晶屏介绍 液晶显示屏是由液晶显示面板&#xff0c;电容触摸屏&#xff0c;pcb底板构成。在液晶显示屏里我们有带控制芯片的还有不带控制芯片的。对于低端的微控制器它不能直接控制液晶面板&#xff0c;所以需要给液晶控制面板而外增加一个液晶控制芯片。对于单片机stm32f4…

Photos框架 - 自定义媒体选择器(UI预览)

引言 在前面的博客中我们已经介绍了使用媒体资源数据的获取&#xff0c;以及自定义的媒体资源选择列表页。在一个功能完整的媒体选择器中&#xff0c;预览自然是必不可少的&#xff0c;本篇博客我们就来实现一个资源的预览功能&#xff0c;并且实现列表和预览的数据联动效果。…

内网横向——远程桌面利用

文章目录 一、远程桌面的确定和开启二、RDP Hijacking 网络拓扑&#xff1a; 攻击机kali IP&#xff1a;192.168.111.0 跳板机win7 IP&#xff1a;192.168.111.128&#xff0c;192.168.52.143 靶机win server 2008 IP&#xff1a;192.168.52.138 一、远程桌面的确定和开启 下面…

VMware、Docker - 让虚拟机走主机代理,解决镜像封禁问题

文章目录 虚拟机全局代理配置找到 VMnet8 的 IPv4 地址代理相关配置虚拟机代理配置 Docker 代理配置修改镜像修改 Docker 代理配置 虚拟机全局代理配置 找到 VMnet8 的 IPv4 地址 a&#xff09;打开此电脑&#xff0c;输入 “控制面板”&#xff0c;然后回车. b&#xff09;之…

元注解相关知识总结

Target 这个注解适用于决定注解的适用范围&#xff0c;例如适用于构造器&#xff0c;方法&#xff0c;字段等 Retention 这个注解的作用是确定注解的生命周期一般用得比较多的是RunTime这样就可以在运行环境中使用它&#xff0c;赋值的方式一般是使用value进行赋值 SOURCE 代…