飞机打方块(一)菜单界面制作

news2025/1/17 15:20:27

一、创建项目

修改配置

 

 新建anim,Prefabs,Scene,Script文件夹分别用于存放动画,预制资源,场景,脚本

 

 新建场景和脚本,

 

1.游戏名称

新建title节点并修改属性:

 2.开始游戏按钮

1.新建menu容器:

 2.新建按钮start_btn:

3.新建Label节点:

 4.新建粒子:

 5.新建音乐节点:

 6.给容器Canvas绑定脚本,并绑定资源:

 7.编写开始游戏按钮交互方法:

Start.ts

const { ccclass, property } = cc._decorator;

@ccclass
export default class NewClass extends cc.Component {

    @property(cc.Node)
    canvas: cc.Node = null

    @property({ type: cc.Node, displayName: "粒子", tooltip: "粒子节点" })
    particle: cc.Node = null

    @property({ type: cc.Node, displayName: "开始游戏按钮", tooltip: "开始游戏按钮" })
    btn: cc.Node = null;

    @property({ type: cc.Label, displayName: "显示历史最高分的文字", tooltip: "显示历史最高分的文字" })
    score_lb: cc.Label = null

    @property({ type: cc.AudioSource, displayName: "点击按钮音效", tooltip: "点击按钮音效" })
    music: cc.AudioSource = null;


    onLoad() {

        let self = this;
        //加载游戏场景
        cc.director.preloadScene("Game");

    }

    //点击按钮时执行的函数
    onbtn() {
        //打印log
        cc.log("点击了按钮")
        //跳转场景
        cc.director.loadScene("Game");
    }

    start() {

    }
}

8.新建脚本(Btn_Scale) 


const { ccclass, property } = cc._decorator;

@ccclass
export default class Btn_Scale extends cc.Component {



    onLoad() {
        let self = this;

        //当手指触摸时
        this.node.on(cc.Node.EventType.TOUCH_START, function () {
            //执行放大动作并使用缓动
            var b = cc.scaleTo(0.1, 1.2).easing(cc.easeCircleActionInOut());
            //执行并返回该执行的动作
            self.node.runAction(b)
        }, this);


        //两只手指离开按钮时
        //执行缩小动作并使用缓动
        this.node.on(cc.Node.EventType.TOUCH_END, function () {
            var s = cc.scaleTo(0.08, 1);
            self.node.runAction(s);
        }, this);

        this.node.on(cc.Node.EventType.TOUCH_CANCEL, function () {
            var s = cc.scaleTo(0.08, 1);
            self.node.runAction(s)
        }, this)
    }
}

9.绑定节点

 3.给Canvas绑定事件,粒子特效

Start.ts

onLoad() {

        let self = this;
        //加载游戏场景
        cc.director.preloadScene("Game");

        //给canvas绑定事件
        this.canvas.on(cc.Node.EventType.TOUCH_MOVE, this.onmove, this)
        this.canvas.on(cc.Node.EventType.TOUCH_END, this.end, this)

    }



 //当手指在屏幕上移动时执行的函数
    onmove(event: cc.Event.EventTouch) {
        //显示粒子特效
        this.particle.active = true;
        //打印log
        console.log("手指在屏幕上移动了");

        //触摸点的坐标
        var pos = new cc.Vec2(event.getLocationX(), event.getLocationY())
        //转换坐标
        //将一个点转换到节点(局部)空间坐标系,这个坐标系以锚点为原点
        pos = this.canvas.convertToNodeSpaceAR(pos);
        //给粒子特效赋值
        this.particle.position = cc.v3(pos)
    }

    //当手指离开屏幕时方法
    end() {
        //隐藏粒子特效
        this.particle.active = false;
    }

 4.历史最高分:

Start.ts

onLoad() {

        let self = this;

        //恢复游戏,避免游戏暂停导致无法继续
        cc.director.resume();
        
        //加载游戏场景
        cc.director.preloadScene("Game");

        //给canvas绑定事件
        this.canvas.on(cc.Node.EventType.TOUCH_MOVE, this.onmove, this)
        this.canvas.on(cc.Node.EventType.TOUCH_END, this.end, this)


        //如果历史最高分为null,初始化分数
        let score = cc.sys.localStorage.getItem("score")
        if (score == null) {
            cc.sys.localStorage.setItem("score", 0)
            cc.log("初始化分数")
        }
    }

5.游戏解释

1.新建容器

 2.新建飞机节点 

1.新建飞机子节点 :

2.新建label节点: 

3.新建障碍节点:

 1.新建barrier子节点:

2.新建label节点 

 3.新建label节点

4.新建barrier节点

 1.新建buff节点:

 2.新建label节点:

3.新建label节点 :

 

 

 

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

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

相关文章

浙大mem项目备考上岸的三大“顽疾”

大家好!不知道至今为止你是否已经在浙大mem项目的备考路上,随着今年提前批面试结束,相信有一部分考生已经获得了“优秀”资格,而有一部分考生则还没来得及申请,无论是哪种情况杭州达立易考教育都建议大家坚持自己的备考…

我能“C”——实用的调试技巧

什么是bug? 调试是什么?有多重要? debug和release的介绍。 windows环境调试介绍。 一些调试的实例。 如何写出好(易于调试)的代码。 编程常见的错误。 1.什么是bug? 世界上第一个bug是程序员赫柏发现的。 …

CSS和AJAX阶段学习记录

1、AJAX的工作原理: 如图所示,工作原理可以分为以下几步: 网页中发生一个事件(页面加载、按钮点击) 由 JavaScript 创建 XMLHttpRequest 对象 XMLHttpRequest 对象向 web 服务器发送请求 服务器处理该请求 服务器将响应…

openpnp - 板子上最小物料封装尺寸的选择

文章目录 openpnp - 板子上最小物料封装尺寸的选择概述END openpnp - 板子上最小物料封装尺寸的选择 概述 现在设备调试完了, 用散料飞达载入物料试了一下. 0402以上贴的贴别准, 贴片流程也稳, 基本不需要手工干预. 0201可以贴, 但是由于底部相机元件视觉识别成功率不是很高…

“Spring管理JavaBean的过程及Bean的生命周期“

目录 引言1.弹簧容器2. Bean的生命周期2.1 配置javaBean2.2. 解析Bean的定义2.3 检查是否需要添加自己的功能2.4 初始化2.5 实现Aware接口2.6 扩展2.7. 销毁 3. 单例模式和原型模式3.1. 单例模式3.2. 原型模式 4. 总结 引言 Spring框架是一个非常流行的Java应用程序框架&#…

Java之抽象类

Java之抽象类 抽象类概念抽象类如何使用抽象类的特性 作者简介: zoro-1,目前大一,正在学习Java,数据结构等 作者主页:zoro-1的主页 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖&#x1f49…

Redis持久化:RDB和AOF机制详解

目录 1.Redis持久化简介 2.RDB持久化 2.1 什么是 RDB 持久化? 2.2 触发方式 2.3 Redis.conf中配置RDB 2.4 RDB 更深入理解 2.5 RDB优缺点 3.AOF持久化 3.1 什么是 AOF 持久化? 3.2 如何实现AOF 3.3 Redis.conf中配置AOF 3.4 深入理解AOF重写 4.RDB和…

Linux命令200例:zip和unzip用于压缩和解压文件(常用)

🏆作者简介,黑夜开发者,全栈领域新星创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 &…

案例: 用户消费数据分析--Pandas

1. 数据读入 2. 数据处理–日期处理 3. 用户整体消费趋势分析 4. 用户个体消费分析 4.1 用户消费数量与消费金额关系的散点图 4.2 每位用户消费金额分布 4.2.1 消费金额贡献度折线图 用户贡献度折线图 4.2.2 消费金额占比前80%的客户,消费分布直方图 4.3 消费时…

【管理运筹学】第 5 章 | 整数规划 (2,割平面法及 0-1 变量的特性)

文章目录 引言三、割平面法四、0-1 型整数规划4.1 0-1 变量的特性4.1.1 投资问题4.1.2 约束条件满足个数问题 写在最后 引言 前文我们介绍了整数规划的一种求解方法——分支定界法,可以求解纯整数和混合整数规划问题。现在我们来学习另一种整数规划求解方法——割平…

【Java 动态数据统计图】动态数据统计思路案例(动态,排序,containsKey)五(117)

需求:前端根据后端的返回数据:画统计图; 1.动态获取地域数据以及数据中的平均值,按照平均值降序排序; 说明: X轴是动态的,有对应区域数据则展示; X轴 区域数据降序排序;…

CloudQuery:更好地管理你的 OceanBase 数据库

前言:作为 OceanBase 的生态合作伙伴,CloudQuery(简称“CQ”) 最新发布的社区版 2.2.0 新增了 OceanBase 数据库,为企业使用 OceanBase 数据库提供全面的支持。包括连接与认证、查询与分析、数据安全与权限管理&#x…

同伦问题与同伦算法

同伦问题 据我所知,这篇博客是CSDN上少数几篇讲同伦算法的博客之一考虑同伦算法的目的 扩大初值选取范围解决非线性代数方程组的全部解计算问题 同伦算法中的基本概念 考虑求的解人为地引入参数t,构造一个函数族使得 同时假设的解已知,从出发可以求解对…

Matplotlib数据可视化(三)

目录 1.绘图的填充 1.1 曲线下方区域的填充 1.2 填充部分区域 1.3 两条曲线之间的区域填充 1.4 直接使用fill进行填充 1.绘图的填充 绘图的填充可以调用fill_between()或fill()进行填充。 1.1 曲线下方区域的填充 x np.linspace(0,1,500) y np.sin(3*np.pi*x)*np.exp…

Python功能制作之3D方块

介绍 用python写一个黑窗口,窗口里面有一个白色的3D方块,左键按下后移动可以旋转以各个视角来看方块。 当然有需要的话,可以自己在代码中去更改颜色,直接通过RBG的参数进行更改即可。 做了两个函数:init[初始化]和d…

坦克大战-kotlin

坦克大战 游戏需求👇核心玩法👇👇界面原型👇👇成品演示👇 游戏开发1.代码实现 源码下载 专栏简介 💒个人主页 📰专栏目录 点击上方查看更多内容 📖心灵鸡汤&#x1…

<CodeGeeX>基于大模型的全能AI编程助手

CodeGeex官网 智谱AI官网 CodeGeex是由清华大学 KEG 实验室和智谱 AI 公司于2023共同训练的代码生成模型 CodeGeeX 开发的AI助手。它基于深度学习技术,能够针对用户的问题和要求提供适当的答复和支持。CodeGeex的功能包括代码生成、自动添加注释、代码翻译以及智能问…

Unity制作一个简单的登入注册页面

1.创建Canvas组件 首先我们创建一个Canvas画布,我们再在Canvas画布底下创建一个空物体,取名为Resgister。把空物体的锚点设置为全屏撑开。 2.我们在Resgister空物体底下创建一个Image组件,改名为bg。我们也把它 的锚点设置为全屏撑开状态。接…

看完这篇文章,被这个学习技巧狠狠吸引了!

思政课程的学习不仅仅是课堂知识的传授,更是培养学生全面发展和积极参与社会的能力的过程。学生应该认真学习思政课程,积极思考,结合自己的实际情况,形成独立的思考和判断。 通过思政通学习小程序的多样化知识,学生可以…

剑指Offer37.序列化二叉树 C++

1、题目描述 请实现两个函数,分别用来序列化和反序列化二叉树。你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结…