Cocos2dx学习笔记:浅谈游戏内的适配方案

news2024/11/26 4:25:06
前言
本篇在讲什么

Cocos2dx中的适配方案
本篇适合什么

适合初学Cocos的小白
本篇需要什么

Lua语法有简单认知
依赖Cocos2dx3.15环境
依赖Sublime Text编辑器
依赖VS 2015编辑器

本篇的特色

具有全流程的图文教学
重实践,轻理论,快速上手
提供全流程的源码内容


★提高阅读体验★

👉 ♠ 一级标题 👈

👉 ♥ 二级标题 👈

👉 ♣ 三级标题 👈

👉 ♦ 四级标题 👈


目录

  • ♠ 绘制视口
  • ♠ 适配
    • ♥ SHOW_ALL
    • ♥ EXACT_FIT
    • ♥ FIXED_WIDTH
    • ♥ FIXED_HEIGHT
    • ♥ NO_BORDER
  • ♠ 推送
  • ♠ 结语


♠ 绘制视口

通过CC_DESIGN_RESOLUTION全局表来设置设计尺寸和屏幕的适配方案,一般放在config.lua文件里

在这里插入图片描述

  • CC_DESIGN_RESOLUTION.width:设置屏幕宽度
  • CC_DESIGN_RESOLUTION.height:设置屏幕高度
  • CC_DESIGN_RESOLUTION.autoscale:设置屏幕适配方案

通过函数setDesignResolutionSize设置视口的设计尺寸和适配方式,lua脚本中放在了display.lua中的setDesignResolution函数内

在这里插入图片描述

可以通过setFrameSize来重设视口的大小, 博主一般写在display.lua脚本初始化的时候

local director = cc.Director:getInstance()
local view = director:getOpenGLView()
view:setFrameSize(1560, 720)

在这里插入图片描述

下图是重设置视口后,新窗口的显示大小,已经按照1560*720的尺寸重新绘制视口了

在这里插入图片描述


♠ 适配

本篇重点讲cc.ResolutionPolicy下不同字段的适配方案

cc.ResolutionPolicy =
{
    EXACT_FIT = 0,
    NO_BORDER = 1,
    SHOW_ALL  = 2,
    FIXED_HEIGHT  = 3,
    FIXED_WIDTH  = 4,
    UNKNOWN  = 5,
}

♥ SHOW_ALL

该适配方案是保持游戏视口宽高比不变,根据真实设备视口宽高,去整体缩放游戏视口的大小

C++逻辑在CCGLView.cpp内的updateDesignResolutionSize函数里,取宽高比其中较小的一个

在这里插入图片描述

在这里插入图片描述

我们的设计宽高是1280*720,下图是我们在cocos studio中根据设计宽高制作的一个场景文件

在这里插入图片描述

下面是我们在1560*720的视口下显示的效果,因为1560/1280=1.22,720/720=1,所以最终缩放比例是1,居中后两边会有黑边

在这里插入图片描述

下面是我们在960*720的视口下显示的效果,因为960/1280=0.75,720/720=1,所以最终缩放比例是0.75,居中后上下会有黑边

在这里插入图片描述


♥ EXACT_FIT

不管你的真实视口和设计宽高有多大差距,宽高均会根据比例铺满整个屏幕,C++代码如下所示

在这里插入图片描述

在这里插入图片描述

1560*720的视口下宽度被拉伸,铺满了整个屏幕

在这里插入图片描述

960*720的视口下高度被拉伸,铺满了整个屏幕

在这里插入图片描述


♥ FIXED_WIDTH

和SHOW_ALL有点类似,不过这个是指定宽度铺满整个屏幕,不考虑高度是否合适

在这里插入图片描述

在这里插入图片描述

480*480的视口下整体缩放比例不变,仅仅宽度铺满了屏幕

在这里插入图片描述


♥ FIXED_HEIGHT

这个是指定高度铺满整个屏幕,不考虑宽度是否合适

在这里插入图片描述
在这里插入图片描述

480*480的视口下整体缩放比例不变,高度铺满了屏幕

在这里插入图片描述


♥ NO_BORDER

按比例缩放,铺满整个屏幕,不留黑边,和SHOW_ALL正好相反,取的是宽高比大的一方作为整体缩放比例

在这里插入图片描述

在这里插入图片描述

1560*720960*720的视口下整体缩放比例不变,铺满了整个屏幕

在这里插入图片描述
在这里插入图片描述


♠ 推送

  • Github
https://github.com/KingSun5

♠ 结语

若是觉得博主的文章写的不错,不妨关注一下博主,点赞一下博文,另博主能力有限,若文中有出现什么错误的地方,欢迎各位评论指摘。

👉 本文属于原创文章,转载请评论留言,并在转载文章头部著名作者出处👈

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

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

相关文章

vue基于SpringBoot的智慧城市社区生活分类信息管理系统的设计与实现_2p760

表名:dongwuzhonglei 功能:动物种类 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 addtime timestamp 创建时间 CURRENT_TIMESTAMP dongwuzhonglei varchar 200 动物种类 …

防止video视频被下载的几种处理办法

1&#xff0c;video禁用下载功能 <video controlslist"nodownload"></video>2&#xff0c;隐藏鼠标右键&#xff0c;禁止复制链接 document.oncontextmenu function () {return false; }3&#xff0c;使用云点播等第三方播放控件&#xff0c;最好的话…

图像增强算法Retinex原理与实现详解

文章目录 1. 引言2. Retinex算法原理2.1 单尺度Retinex示例代码 2.2 多尺度Retinex示例代码 2.3 颜色恢复示例代码 2.4 最终图像处理代码示例 3. Retinex算法的Python实现4. 完结 1. 引言 图像增强是图像处理中的重要技术之一&#xff0c;它可以改善图像的亮度、对比度和颜色等…

微信开发者工具模拟器中不显示鼠标问题

前言 在使用微信开发者工具开发微信小程序时&#xff0c;使用到了第二屏幕&#xff0c;在第一屏幕上&#xff0c;微信开发者工具模拟器中&#xff0c;可以正常显示鼠标&#xff0c;而在第二屏幕上不显示鼠标。 解决方案&#xff1a; 方案1&#xff1a;设置指针轨迹&#xff…

【JMeter分布式压测连接Jenkins生成测试报告报错:Data exporter “html“ is unable to export data】

An error occurred: Data exporter “html” is unable to export data. Build step “Execute shell” marked build as failure 发生了一个错误:数据导出器“html”无法导出数据。 构建步骤“执行shell”将构建标记为失败 查看JMeter-master日志jmeter.log 发现是由于没有r…

基于springboot+vue的文物收藏系统(源代码+数据库+13000字论文)082

基于springbootvue的文物收藏系统(源代码数据库13000字论文)082 一、系统介绍 本项目前后端分离(本项目有ssmvue版本) 本系统分为管理员、用户两种角色 用户角色包含以下功能&#xff1a; 登录、文物查看、文物资料下载、文物收藏管理、文物维护管理、文物封存管理、个人中…

赛效:电子书可以转换成TXT吗

1&#xff1a;在“其他功能”菜单里点击“电子书转TXT”。 2&#xff1a;点击页面中间的号或者拖拽电子书上传。常规格式的电子书&#xff0c;都可以上传。 3&#xff1a;文件添加成功后&#xff0c;点击右下角的“开始转换”。 4&#xff1a;文件转换成功后&#xff0c;点击下…

Vue element admin git安装失败-2023年7月6日

Vue element admin-2023年7月6日 Vue element admin官网安装失败&#xff0c;是由于依赖包&#xff0c;所nodejs要求版本很低&#xff0c;导致和新版的18、16版本不兼容&#xff0c;git下安装失败。解决办法 Vue element admin官网 https://panjiachen.gitee.io/vue-element-a…

大数据的薪资怎么样?是真的很高么

既然提到了数据的问题&#xff0c;其实不妨看一下各大招聘平台在不同城市给出的薪资&#xff0c;百闻不如一见&#xff0c;自己真正看到了就知道能拿多少了。当然&#xff0c;是否能高薪&#xff0c;很大一部分还是取决于自身的能力的 猎聘大数据研究院发布了《2022未来人才就…

【yolov5】训练自己的数据集-实践笔记

【yolov5】训练自己的数据集-实践笔记 使用yolov5训练自己的数据集&#xff0c;以RSOD数据集为例&#xff0c;图像数量976&#xff0c;一共四类。 yolov5源码&#xff1a;https://github.com/ultralytics/yolov5 官网的代码会一直更新&#xff0c;相关依赖环境也会变&#xf…

嵌套和递归使用模板类

嵌套和递归使用模板类 模板栈模板数组栈中嵌套数组数组中嵌套栈数组中嵌套数组 模板栈 #pragma once #include <iostream> // 包含头文件。 using namespace std; // 指定缺省的命名空间。template<class DataType> class mystack2 { private:Data…

Java面向对象程序开发——文件与流

文章目录 前言File类IO字符流与字节流字符流字节流打印流缓冲流 前言 File类 是文件和目录路径名的抽象表示&#xff0c;主要用于文件和目录的创建、查找和删除等操作。 方法有三类&#xff1a;1获取、2判断、3创建或删除 public String getAbsolutePath() &#xff1a;返回…

ELK部署安装

目录 一、环境准备 1.准备三台服务器&#xff08;带图形化的linuxCentOS7&#xff0c;最小化缺少很多环境&#xff09; 2.修改主机名 3.关闭防火墙 4.elk-node1、elk-node2 用系统自带的java 5.上传软件包到node1和node2 二、部署elasticsearch 1、node1、node2操作 2.no…

《华尔街幽灵》的三大交易规则

规则1&#xff1a;只持有正确的仓位 如果你下单后经过一段时间&#xff0c;市场没有证明你的交易是正确的&#xff0c;那么应该立即平仓。交易者在每次建仓后&#xff0c;首先应关注保护本金&#xff0c;及早平掉不正确的仓位&#xff0c;而不是过多考虑盈利金额。 如何判断交…

生命在于学习——风险评估

风险评估的目录 一、网络安全风险评估概述1、概念2、意义3、步骤4、基本原则5、评估要素6、网络安全风险评估方法 二、网络安全风险评估方法三、网络安全风险评估方案1、确定评估范围和目标2、收集信息3、评估威胁和漏洞4、评估安全控制5、评估风险和制定建议6、报告和沟通 四、…

匿名苏丹的网络攻击仍在继续: 继微软之后拳头游戏成为最新目标

黑客组织 "匿名苏丹 "声称&#xff0c;它对美国视频游戏开发商和出版商Riot Games发起了分布式拒绝服务&#xff08;DDoS&#xff09;攻击。 据称匿名苏丹的目标是Riot Games的登录门户&#xff0c;该组织在Telegram帖子中宣布&#xff0c;这次攻击持续了30分钟至1小…

《随便测测》做UI测试

目录 前排提示 使用playwright录制ui操作 创建UI模板 运行用例 查看报告 再次编辑代码 再次查看报告 selenoid服务搭建 配置selenoid服务地址 总结 前排提示 1.使用playwright[selenoid]&#xff0c;可选的远程浏览器执行用例 2.没有采用 PageObjectModule&#xff0…

展示与处理复杂JSON数据——gradio库的JSON模块详解

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

从小白到大神之路之学习运维第54天--------ELK技术堆栈---

第三阶段基础 时 间&#xff1a;2023年7月6日 地 点&#xff1a;2304教室 授课人&#xff1a;李凤海 参加人&#xff1a;全班人员 内 容&#xff1a; ELK技术堆栈 目录 服务器设置&#xff1a; 部署elasticsearch集群&#xff1a; 配置elasticsearch集群&#xff…

Vue2中使用ElementUI组件Form组件的校验validate

先准备一些el-form元素 这里面el-form中:model(v-bind:model)是单项绑定的&#xff0c;如果你写成了v-model""可能会出现校验没有效果的情况。 这是校验过后的结果了 现在开始使用下吧&#xff01; 1.在el-form中绑定一个ref&#xff0c;名字自拟,后续触发检验结果…