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. 用户权限管理 最小权限原则:每个用户应该只被授予完成其工作所需的最低限度的权限。定期审查权限:定期检查用户的权限,确…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...
沙箱虚拟化技术虚拟机容器之间的关系详解
问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西,但是如果把三者放在一起,它们之间到底什么关系?又有什么联系呢?我不是很明白!!! 就比如说: 沙箱&#…...
【UE5 C++】通过文件对话框获取选择文件的路径
目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...
快速排序算法改进:随机快排-荷兰国旗划分详解
随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...
