三年前下载量达600W的老游戏,没想到还能发光发热!

news2024/11/30 0:45:38

说好的 TypeScript 版已经三年了,是时候该兑现了!

99c756dc695aa39fd59f28729d512b09.gif

《球球要回家2》是晓衡当年,初开微店晓衡在线时的开门商品(2021 年被 Cocos 招安,在 Cocos 引擎负责 CocosStoreCocos微店 的运营工作)。

《球球要回家2》第一版在微店上架半个月不到就卖出近30份,解决了晓衡当时的一度的经济危机,欲知晓衡当前的故事可以看这篇文章:《大龄个人开发者,我是如何活下来的,又将怎样活下去》。

有群友多次告诉过晓衡,有人购买了我的《球球要回家》上架 vivo 平台,下载量达到 600W+。

f772affcdfd159f1e095ab362db818df.png

这是他看到的微店上最为成功的案例,上面这些已经是 2020 年的往事了。

1682fdc61a4099323d53c4583850c13b.jpeg

三年过去 Cocos 引擎已经更新了数十个版本,而我开发的《球球要回家》时不时会得到一些朋友的支持,但一直停留在 Cocos Creator 2.2.2 版本上。

直到今年双11,有老铁说 Creator 2.2.2 的引擎都找不到下载(其实在 Cocos 官网上可以下载到历史版本),下载了代码还是看不太明白。

我常对 Cocos Store 开发者们说:“要为用户提供有价值的内容”。看来现在,时候对自己说这句话了!为此我新开了《球球要回家-Lite教学版》工程。

93fd94761ea89fc4a4fcb416f64f0974.png

它是在《球球要回家》3.6.2 原版基础上抽离出核心玩法,并重构资源结构与代码,使其更为简洁:

90c78da37f2fa5331871a0929b00604e.png

prefabs目录:核心预制与脚本

  • Ball:⚽️会在图块通道中滚向终点

  • Block:玩家在游戏中移动图块🧩形成通道

  • GameBoard:棋盘💠是图块的容器,控制关卡布局

res 目录:美术资源与模型

  • atlas:图块🧩图集资源

  • config:游戏关卡配置📝

  • model:3D足球⚽️模型

  • textures:2D 图片素材背景、按钮、图标等

scenes:游戏场景与脚本

  • GameScene:负责关卡加载、关卡选择、进度保存、UI更新

原版本包含首页、经典玩法、冒险模式三个场景。

基本概念

  1. 要读懂《球球回家》代码,一定要先了解核心玩法。游戏是模拟了图块通道中做直线或曲线滚动,图块按形状分为:

e68a37d94312143aeef7af2017b4868c.png
直线图块:垂直或水平
52296aeb689415d5585c4c60defa9834.png
拐角图块:每个拐角都是1/4个圆

2. 图块端口port

游戏中图块通道只会出现在方块的上、右、下、左的四个边上,我们用四个边上的开口来标识它的出入口port

d85322b0e38e2768228b1fc704f61505.png
图块的名字后缀为“UR”,表示开口在“上”和“右”

3. 入口与出口

球在接通的图块通道中移动时,对于单个图块来说,会有。出入口不同,球的运动方向也就不同。

因此,带通道的图块含有入口出口,但出入口不是确定的,需根据球运动的方向来确认。

8f98e0086a98fb4c3dc8753e57a5d4fd.png
  • 左图:球从上向下移动,向拐弯,因此入口在,出口在

  • 右图:球从右向左移动,向拐弯,因此入口在,出口在


  1. 圆环运动

球在拐角图块上的曲线移动,我们在游戏中并没有使用贝赛尔曲线,而是把它看成是一个固定半径的圆周移动。

1e260926cbb3d2525987902d9f36d646.png

需要注意的是,代码中是以逆时针旋转为正方向:

  • 0π 在最右边

  • 0.5π 在正上方

  • 1π 在最右

  • 2π 与 0π 重合

圆环参数的计算是在 Block.ts 脚本中,球的位移动画是在 Ball.ts 脚本中。


5. 图块命名

要读懂源码,一定要注意图块文件的命名规则,图形按颜色分为3种,见下图:

76d7a1b076b2fb5df6958f69585c2668.png
  • 前缀

    • greywood:灰色木块,在游戏中不可移动

    • redwood:红色木块,在游戏表示终点,不可移动

    • wood:普通木块,在游戏中可触摸移动

  • 中缀

    • base:实心无通道的图块

    • line:直线通道的图块,有出入口

    • start:起点图块,只有出口

    • goal:终点图块,只有入口

    • turn:拐角图块,有出入口

  • 后缀

    • H:水平通道

    • V:垂直通道

    • U:开口在上

    • R:开口在右

    • D:开口在下

    • L:开口在左

通过以上基本概念的解释,希望能帮助到大家理解代码的实现,能在基础上创造出更多的玩法。

获取源码

74ce88c0f40ead9b3d12a2debea231f0.png源码链接:
https://store.cocos.com/app/detail/4374

双12活动特价优惠仅需9.9元,如果你在 Cocos 微店下载,还有满减优惠券可以叠加使用!

凡是之前购买过《球球要回家》完整版的老铁,可联系晓衡微信0元领取《球球要回家—Lite教学版》源码。相关教程后续还会有更新,感谢您的支持!

8bcff219e9a1b2cc91d88da2a7a5440f.jpeg

往期精彩

  • 一套全能免费Creator游戏开发框架!—Oops Framework

  • Creator 2.x 项目升级 3.x!避坑要点与基础 API 差异总结

  • 一个人30天!开发一款3D竞技足球游戏!

  • 麒麟子免费3D角色虚拟摇杆控制器!这也太好用了

  • 微信小游戏超4M怎么办?小游戏包体优化方案

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

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

相关文章

【服务器数据恢复】raid6崩溃导致上层虚拟机不可用的数据恢复案例

服务器故障: 服务器中一组由16块硬盘组成的raid6磁盘阵列,其中有一块硬盘由于物理故障掉线,服务器上层虚拟机不可用,部分分区丢失。用户重启服务器后发现上层数据还是处于丢失状态。 服务器数据恢复过程: 1、服务器数据…

Checked exception及Unchecked exception对比

一、异常分类 从异常处理机制的角度可以分为两类,Unchecked Exceptions和Checked Exceptions。Check即编译器检查程序是否已经抛出或处理了可能的异常。Unchecked Exceptions指的是被程序员check的异常,Checked Exceptions指的是被编译器check的异常。 T…

封装一个丝滑的聊天框组件

需求背景 应公司业务要求,需要做个聊天机器人,要适应不同的业务场景,大概就跟淘宝客服类似,发送消息,机器人自动回复。 话不多说,直接开撸 技术栈: react(hooks写法) …

Python——列表的常用操作

1.append: cities [北京] cities.append(上海) 2.count:统计某个元素在泪飙中出现的次数 temps [to,be,or,not,to,be] print(temps.count(to)) 3.extend:将一个列表中元素追加到另外一个列表中 a [1,2,3] b [4,5,6] c a.extend(b) 4.ins…

GPU上运行基于bert的分类任务训练loss为nan

问题如下: 运行环境:GPU 1080Ti 代码流程:因为是在之前的一份情感数据集上测试通过的,所以流程整体上应该没有大的问题。 但就是loss一直为nan,也没有报错。 然后经对比测试,同样的数据,同样…

Java——红黑树

概念 红黑树也是一种二叉搜索树,但是和avl树不同,它并不是依靠平衡因子来保证树的平衡的,而是通过颜色 红黑树每个节点中会存储颜色,分为红色和黑色,通过红黑树的限制条件,可以保证从根节点出发到叶子节点…

Final、求职两头难,留学生如何摆脱焦虑?

2022不知不觉已临近尾声,期末在即,今年秋招也即将告一段落。很多同学在学业和求职两难中艰难挣扎,焦虑情绪无形中被无限放大… 你是不是也有这样的感受—看着周围的同学们,一个接一个的拿着offer发到了朋友圈里,而自己…

推荐系统学习笔记-论文研读--点击率预估中特征交互的作用

研究背景 当前点击率预估模型没有完全挖掘特征交互的潜力特征的表征学习与特征的交互存在冲突笛卡尔积的方法比当前的点击率预估模型效果都好算法模型的效率和效果的平衡阿里巴巴线上业务量级和耗时的考虑 当前模型的特征交互的相关方法 论文研究成果 这篇论文的主要贡献 强…

day20【代码随想录】二叉树的前序遍历、二叉树的中序遍历、二叉树的后序遍历

文章目录前言一、二叉树的前序遍历(力扣144)1、递归遍历2、非递归遍历二、二叉树的中序遍历(力扣94)1、递归遍历2、非递归遍历三、二叉树的后序遍历(力扣145)1、递归遍历2、非递归遍历总结前言 1、二叉树的…

十一、JavaScript——字符串

一、转义字符 字符串 在 JS中使用单引号或者双引号来表示字符串(要么全用双引号,要么全用单引号,不要混着用) 转义字符 反斜杠 \ 使用typeof检查转义字符返回的是string类型 在 JS中使用单引号或者双引号来表示…

零成本实现接口自动化测试 – Java+TestNG 测试Restful service

接口自动化测试 – JavaTestNG 测试 Restful Web Service 关键词:基于Rest的Web服务,接口自动化测试,数据驱动测试,测试Restful Web Service, 数据分离,JavaMavenTestNG 本文主要介绍如何用Java针对Restf…

【Lilishop商城】No3-9.模块详细设计,订单模块-3(售后)的详细设计

仅涉及后端,全部目录看顶部专栏,代码、文档、接口路径在: 【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接口类、业务类,具体的结合源代…

Seata-TCC快速上手

原文链接 如果是小白,可以先看TCC步骤,核心思想,然后使用Seata,阅读Seata官方提供的示例代码,验证自己的猜想,再看遍TCC。 分布式事务是跨过多个数据库或者系统的事务,在电商、金融领域应用十…

[附源码]Node.js计算机毕业设计房屋租赁管理系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

web前端Javascript学习之了解JavaScript弹出框

在JavaScript中,可以创建对话框或弹出窗口来与用户进行交互。 JavaScript具有三种不同类型的弹出框:警告框,确认框和提示框。 一、警告框 警告框是最简单的弹出框。它使可以向用户显示一条短消息。还包括“确定”按钮,用户必须…

巧用Github Action 自动推送docker镜像,白piao github服务器资源,还省时又省力

对于个人开发者来说如果不想再自己电脑上搭建CI/DI系统(毕竟吃资源),Github Action是一个不二的选择。 本文我们来通过 Github Action 实现 SpringBoot 项目的自动编译、制作doceker镜像,最后推送到docker hub 仓库。 Github Acti…

亿华通通过上市聆讯:第三季营收降53% 净亏3457万

雷递网 雷建平 12月13日北京亿华通科技股份有限公司(简称:“亿华通”)日前通过聆讯,准备在香港上市。这之前,亿华通是2020年8月在科创板上市,发行价为76.65元,发行17,630,523股,募集…

技术分享 | 测试平台开发-前端开发之Vue.js 框架(一)

Vue.js 是一套用于构建用户界面的渐进式框架,在目前的前端开放中比较流行的前端框架。 Vue 被设计成自底向上的逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或已有项目整合。但是学习 Vue.js 需要一定的 HTML、CSS、和…

09、SpringBoot中集成SSM及其他插件

1、创建spring Boot项目导入如下基础依赖 <!-- 打包方式 jar 包 --> <packaging>jar</packaging><!-- 指定父工程 --> <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</art…

[附源码]Node.js计算机毕业设计房屋中介管理信息系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…