Cocos Creator 试玩广告开发
之前主要是使用Unity,这次刚好项目是试玩游戏的开发,所以临时学了Cocos来开发。所以这篇文章,更加关注从Unity转到Cocos开发的经历以及试玩的基本开发。
首先,我是没有使用过Cocos的,也没有接触过Ts语言,对于Ts的开发开始也很难习惯,不过语言之间都大差不差,遇到不清楚的查一下文档即可。
如果你之前也是使用Unity开发的,基本上可以直接上手Cocos,两者从界面上来说,没太大区别,不过对于Cocos-2dx来说,游戏不一样。具体的区别和使用体验我就不说了,这不是重点。
cocos creator 3.8界面
unity 2022界面
不过,Cocos在运行时好像不能看编辑界面,这一点很难受。至于其他部分的用法和unity几乎一样。如果你也是从unity转来暂时需要用Cocos,请不用担心,
下面记录一些开发中所遇到的问题。
问题集合:
1.Cocos版本
Cocos版本迭代好像很快,哪怕是小版本之间的区别也蛮大的,项目创建需要注意
2.射线检测失效
在开发中,突然发现射线检测没有用了,有时候能检测到射线开始,却检测不到结束。之类的情况,这个问题是Cocos自己的Bug,退出重启即可。
3.脚本中的定义怎么才能在面板中显示出来。
虽然ts支持的数据容器也有好些,但是我确实不知道在Cocos中怎么用,可能我用的不多。在存储大量类型方面我一直用的数组。
//面板中显示必须加,并且需要赋初值@property(Node)//括号中也需要指定类型public curNum: num = null;@property([SpriteFrame])public nums: SpriteFrame[] = Array<SpriteFrame>();
4.更改屏幕分辨率
之前好像是能之间在Canvas组件上面改,不过后面移到项目设置中去了
5.移动端设计了横竖屏的切换,但是运行后无法转换,或者转换后马上转回去了
这个是由于在打包构建时,设备方向勾选了横或者竖,改为自动即可。
6.打包运行
其他打包我没有试过,目前主要时Web移动和桌面端,这两种打包方式打包出来是无法直接运行的。
运行方式:
1.在包体构建完成之后,Cocos构建界面可以之间点击运行。
2.如果你代码是用VsCode写的,可以加上Live Server的扩展,然后打开构建完成的文件夹,运行Index.html即可。
3.服务器部署
将项目部署在服务器上,这就比较复杂了。不过试玩广告主要也就一个html文件,用一个文件服务器就可以了。
可以用下面的这个简单的做一些部署,就可以通过手机访问到你的打包文件了。
HFS ~ HTTP File Server
7.编辑预览
在开发过程中,想要实时看在手机上的运行情况,官方推荐的是之间扫二维码预览。但我试了一下,好像不行,这个位置先空着,之后有办法在补充。
后面我有看来一下,需要手机与电脑处于同一个局域网内,但是实际在做项目的时候,公司这边的Wifi好像不行。如果需要实时的预览手机运行情况,出了打包之外,在电脑上安装手机模拟器也可以直接扫描二维码运行。
8.横竖屏切换
这一点有些坑,横竖版的两个素材,在运行中切换横竖屏的表现状态和运行前直接改分辨率的表现是不一样的,所以需要做一些单独的适配,在项目中我采用了横竖屏两套状态的切换方式。
而且在网上找的很多实列拿过来之后就不能用了,主要是Cocos迭代把一些API去掉了
不过对于横竖屏的判断,大多都是判断屏幕的长和宽的大小,我这里随便占了一个,指不定啥时候这Api又被扔掉了
let winSize = new Size(screen.windowSize.width / view['_scaleX'], screen.windowSize.height / view['_scaleY']);if (winSize.width > winSize.height) {this.curState = true;this.backGround.spriteFrame=this.spBg[1];}else {this.curState = false;this.backGround.spriteFrame=this.spBg[0];}
9.包体大小
由于平台限制,试玩基本上不能超过5MB,在我打包完之后,发现不管是那个平台的html似乎都很大,这让我很苦恼,我找了很多方法,包括资源文件夹的使用等等,好像都不太管用,后面我又换版本,发现越换越大,我突然想到会不会是文件残留。试了之后,果然如此。下面我罗列一些包体优化的方法。
1.优化图片文件体积
2.优化声音文件
3.优化字体字库大小
4.优化引擎代码体积
其他几个我还没用过,毕竟试玩的资源也不会太多。优化引擎代码体积,主要是剔除一些不必要的模块
5.重建大法
这个方法不确定有没有用,反正我是可以用的,在项目根目录下删掉不需要的文件,重新构建,比如Library这些文件
10. 特效不显示
在Cocos商店下载了一份3d特效,但是放在2D项目中,在运行之前能够看到特效,但是运行之后却不显示的问题。
解决方法:1.更改摄像机的参数,Visibilty中将GIZMOS勾选上
2.给特效添加UIMeshRenderer组件,如果是多个特效的预制体,则每一个特效都需要添加这个组件
试玩开发
打包出来的文件很多,但是试玩只需要一个html文件,这需要我们手动写插件压缩,如果公司有大佬写了还好,如果没有只能向我一样到处找了,下面这个项目能构建的平台非常多,而且使用也很方便。链接放这里了。
https://github.com/ppgee/cocos-pnp
打包之后的文件
打包之后的单html就是我们需要的试玩文件了。这个时候就可以上传相关的平台了。
下载跳转
那么试玩之后的下载跳转怎么做呢。
根据要求,我们只需要调用mraid.open()这个API就可以了,并且打包文件的AppLovin中是自带的,可是我找了半天根本没有啊。后面也是看到一位老哥的帖子才知道怎么做。
解决方案:
1.在代码的对应位置之间调用mraid.open(),这个时候会爆红,不用管他。打包
2.打包完成,打开AppLovin.html,将这个删掉
这个时候上传测试就可以发现点击之后出现跳转提示了。
这就是目前遇到的一些问题和总结,后面有的话会继续更新。
相关文章:

Cocos Creator 试玩广告开发
之前主要是使用Unity,这次刚好项目是试玩游戏的开发,所以临时学了Cocos来开发。所以这篇文章,更加关注从Unity转到Cocos开发的经历以及试玩的基本开发。 首先,我是没有使用过Cocos的,也没有接触过Ts语言,对于Ts的开发开…...

快速解决oracle 11g中exp无法导出空表的问题
在一些生产系统中,有些时候我们为了进行oracle数据库部分数据的备份和迁移,会使用exp进行数据的导出。但在实际导出的时候,我们发现导出的时候,发现很多空表未进行导出。今天我们给出一个快速解决该问题的办法。 一、问题复现 我…...
selenium 报错 invalid argument: invalid locator
环境: Python3.12.2 selenium4.0 报错信息: invalid argument: invalid locator 错误分析: selenium语法错误,find_element方法少写By.XPATH参数 错误语法如下: driver.find_element(//div[id"myid"]) 解决办…...

Flink2.0未来趋势中需要注意的一些问题
手机打字,篇幅不长,主要讲一下FFA中关于Flink2.0的未来趋势,直接看重点。 Flink Forward Asia 2024主会场有一场关于Flink2.0的演讲,很精彩,官方也发布了一些关于Flink2.0的展望和要解决的问题。 1.0时代和2.0时代避免…...

机械鹦鹉与真正的智能:大语言模型推理能力的迷思
编者按: 大语言模型真的具备推理能力吗?我们是否误解了"智能"的本质,将模式匹配误认为是真正的推理? 本文深入探讨了大语言模型(LLMs)是否真正具备推理能力这一前沿科学问题,作者的核…...

本地电脑使用命令行上传文件至远程服务器
将本地文件上传到远程服务器,在本地电脑中cmd使用该命令: scp C:/Users/"你的用户名"/Desktop/environment.yml ws:~/environment.yml 其中,C:/Users/“你的用户名”/Desktop/environment.yml是本地文件的路径, ~/en…...

【系统】Windows11更新解决办法,一键暂停
最近的windows更新整的我是措不及防,干啥都要关注一下更新的问题,有的时候还关不掉,我的强迫症就来了,非得关了你不可! 经过了九九八十一难的研究之后,终于找到了一个算是比较靠谱的暂停更新的方法&#x…...

34. Three.js案例-创建球体与模糊阴影
34. Three.js案例-创建球体与模糊阴影 实现效果 知识点 WebGLRenderer WebGLRenderer 是 Three.js 中用于渲染 3D 场景的核心类。它负责将场景中的对象绘制到画布上。 构造器 new THREE.WebGLRenderer(parameters)参数类型描述parametersObject可选参数对象,包…...
Qt同步读取串口
头文件 #include "InsScpi.h" #include <QObject> #include <QSerialPort>class TestSerial : public QObject {Q_OBJECT public:explicit TestSerial(QObject *parent nullptr);//打开设备bool openDevice(const QString &portName);//关闭设备…...

如何用上AI视频工具Sora,基于ChatGPT升级Plus使用指南
没有GPT,可以参考这个教程:详情移步至底部参考原文查看哦~ 1.准备工作 详情移步至底部参考原文查看哦~ 详情移步至底部参考原文查看哦~ 4.Sora使用 详情移步至底部参考原文查看哦 参考文章:【包教包会】如何用上AI视频工具Soraÿ…...
对象的状态变化处理与工厂模式实现
一、引言 在 C 编程中,有效地处理对象的状态变化以及合理运用设计模式可以极大地提高代码的可维护性、可扩展性和可读性。本文将深入探讨 C 如何处理对象的状态变化以及如何实现工厂模式。 二、C 中对象的状态变化处理 使用成员变量表示状态 class GameCharacte…...
关于IP代理API,我应该了解哪些功能特性?以及如何安全有效地使用它来隐藏我的网络位置?
IP代理API是一种服务,允许用户通过访问经过中间服务器的网络连接来改变其公开的互联网协议地址(IP),从而达到隐藏真实地理位置的效果。以下是您在选择和使用IP代理API时应关注的一些功能和安全性考虑: 匿名度ÿ…...
在Linux上将 `.sh` 脚本、`.jar` 包或其他脚本文件添加到开机自启动
在Linux上将 .sh 脚本、.jar 包或其他脚本文件添加到开机自启动 在Linux环境中,有时需要将一些程序、脚本或应用程序设置为开机时自动启动。这对于那些需要在系统启动时启动的服务或应用非常有用。本文将介绍如何将 .sh 脚本、.jar 包或其他脚本文件添加到Linux系统…...

[Maven]构建项目与高级特性
有关于安装配置可以看我的另一篇文章:Maven下载安装配置与简介。 构建项目的生命周期和常用命令 这一节的内容熟记即可,要用了认得出来即可。 在Maven出现之前,项目构建的生命周期就已经存在。对项目进行清理、编译、测试、部署等一系列工作…...
【系统架构设计师】真题论文: 论数据分片技术及其应用(包括解题思路和素材)
更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2020年 试题1)解题思路论文素材参考Hash 分片原理一致性 Hash 分片原理按照数据范围(Range Based)分片原理项目采用的分片方式的实现过程和效果真题题目(2020年 试题1) 数据分片就是按照一定的规则…...

【bWAPP】XSS跨站脚本攻击实战
别低头,皇冠会掉;别流泪,贱人会笑。 0x01、XSS - Reflected (GET) Low 输入的内容直接输出到页面中: 后台服务端没有对输入的参数进行过滤, 构造一个注入xss payload即可: <script>alert(1)</script> 成功弹窗 Medium 审查…...
Ubuntu 22.04,Rime / luna_pinyin.schema 输入法:外挂词库,自定义词库 (****) OK
测试平台: Ubuntu 22.04 sudo apt install ibus-rime 实例 1 :不实用的 实例 2 :实用的 文件使用说明:已经内嵌在文件中了。 ====================================== 实例 1 :不实用的 一共需要 3 个文件,放在用户文件夹下:~/.config/ibus/rime/ # Test A @ Fi…...

多协议视频监控汇聚/视频安防系统Liveweb搭建智慧园区视频管理平台
智慧园区作为现代化城市发展的重要组成部分,不仅承载着产业升级的使命,更是智慧城市建设的重要体现。随着产业园区竞争的逐渐白热化,将项目打造成完善的智慧园区是越来越多用户关注的内容。 然而我们往往在规划前期就开始面临众多难题&#…...

如何高效获取Twitter数据:Apify平台上的推特数据采集解决方案
引言 在数据分析和市场研究领域,Twitter(现在的X)数据一直是重要的信息来源。但是,自从Twitter更改API定价策略后,获取数据的成本大幅提升。本文将介绍一个经济实惠的替代方案。 为什么需要Twitter数据? …...
第二部分:进阶主题 15 . 安全管理 --[MySQL轻松入门教程]
MySQL 数据库的安全管理是一个多方面的工作,涉及到了解和配置数据库的访问控制、加密、备份与恢复策略、日志记录等多个方面。以下是一些关键点: 1. 用户权限管理 最小权限原则:每个用户应该只被授予完成其工作所需的最低限度的权限。定期审查权限:定期检查用户的权限,确…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...