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. 用户权限管理 最小权限原则:每个用户应该只被授予完成其工作所需的最低限度的权限。定期审查权限:定期检查用户的权限,确…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...
