文档章节

V-Play入门手册2-如何创建一个多分辨率的游戏或应用程序?

j
 jannn
发布于 2016/04/06 17:21
字数 980
阅读 207
收藏 1

##如何创建一个多分辨率的游戏或应用程序? 作为一个开发者,你肯定不想每次都重写一次代码来保证不同设备下相同的用户体验.
但是,你又会遇到一个不可避免的问题:市面上设备的尺寸太多样化了,大的小的,老的少的.
为此,如果你想开发一个跨平台的游戏或应用程序,有2个比较理想的方案:

###A.)适用于应用程序的密度无关性 在游戏中,你通常希望在不同平台下能有一个相同的游戏体验.
但是,在移动设备IOS & Android & Windows Phone中,你想充分利用屏幕空间的最好办法.

一个理想的跨平台的用户体验,应该是不管什么平台的屏幕密度 & 屏幕大小 & 屏幕分辨率,都有一个你想要的按钮和文本元素尺寸以便操作.此外,在高密度设备中图像应该是非常清晰的,并在低端设备不会过多浪费宝贵的内存.

同时为了进一步提高用户体验度,需要响应式设计,意思如下例:

  • 在屏幕上显示更多的内容,比如在平板电脑上应该比在手机显示更多的内容.
  • 显示更多的列表子项,比如在某些比较长的手机上.
    手机和平板电脑内容显示对比

V-Play可以帮你解决这些挑战,以跨平台的方式! 因此,只需要一份代码,就可以轻易的创建一个适配不同设备的应用程序. 为了深入指导如何做到这一点,可以看看这个How to Support Muliple Screen Sizes & Screen Densities

###B.)适用与游戏的内容缩放 我将要展示的是一种最适合游戏的技术,叫做内容缩放.

在一个逻辑场景尺寸中缩放适配不同设备的分辨率,这个概念的好处如下:

  • 只需要写一次代码,节省了大量时间.
  • 可以使不同设备上的玩家对等,例如平板VS手机(这在游戏排行榜中尤其突出).

你可以设置不同的缩放模式,来使逻辑场景与显示屏分辨率匹配. 接下来我将介绍letterbox,这是最重要的也是默认的缩放模式. ####Letterbox Scale Mode 这种缩放模式缩放的内容尺寸是一致的,而较小的四边则留空显示. 这意味着不同设备上都可以看到整个逻辑场景. 不足之处,在长宽比不同的逻辑场景中,会有黑色边框,如图:
不同长宽比导致的黑色边框
为了解决这个问题,你可以增加你的背景图像的大小来填充边框,所以应该创建4:3和16:9的长宽比的背景图像,而不是3:2.

在下面这张图片,你可以看到,4:3和16:9的长宽比都能较好的适配不同屏幕尺寸的比例.
较好的适配比例

为了使你更轻松,我们已经计算并准备好了你的背景图像应该支持的所有设备的尺寸.

Device typeLogical Scene SizeSuggested Background Size
sd480x32570x360
hd960x6401140x720
hd21920x12802280x1440

TODO:以下内容待补充... ####动态切换精灵图(也叫雪碧图)

####如何使游戏布局更合理

####高级主题

在某些情况下,你想在不同设备(平板电脑 & 移动设备 & PC)下拥有不同的UI和布局.

####准备起飞(你咋不上天嘞) 现在你可以试着把这些概念付之于行动!

© 著作权归作者所有

共有 人打赏支持
j
粉丝 10
博文 66
码字总数 20006
作品 0
温州
程序员
私信 提问
V-Play入门手册

是一个基于Qt的新生代游戏开发框架(主要是2D),后衍生出了App开发框架. 下载和使用开发你的前,必须注册一个的账户( 更新 & 部署 & 其他都需要这个账户), 拥有你自己的账户之后(账户就是你的某...

jannn
2016/04/11
217
0
iOS和Android开发:你需要知道的5件事

当谈到为你的移动应用或游戏选择目标平台时,仍是有两个主要的选择。自智能手机引入以来,iOS和Android主导了移动设备,并且这种情况没有很快会改变的迹象。那么这几个平台真正的区别是什么呢...

zoujiajun33
2016/09/22
9
0
V-Play入门手册1-如何在5分钟内把你游戏或应用程序带到你的移动设备上?

第一次课程... 如何在5分钟内把你游戏或应用程序带到你的移动设备上? 安装之后,启动()并创建一个新的项目, 这里有一些游戏或应用程序的模版,你可以选择你喜欢的来生成,下面是模版示意图: 新建...

jannn
2016/04/06
154
0
V-Play入门手册4-如何获取最新的V-Play更新?

通过维护工具手动更新 安装后,你可以通过Qt的维护工具来获取V-Play游戏或应用程序API的更新, 这个维护工具在你的安装目录下,叫做. 运行这个维护工具并选择更新组件来检查是否有可用的V-Play更...

jannn
2016/04/06
77
0
[译] 如何在东南亚拓展您的应用业务

原文地址:How to grow your app business in Southeast Asia 原文作者:Guy Charusadhirakul 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:jianboy 使用 Android(...

Android_开发者
10/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Yearning基于Inception的开源SQL审核平台

基础环境: python3 nodejs vuejs mysql python-ldap pymysql mysql 新建数据库 create database Yearning DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; Navicat导入初始化数据 : ......

以谁为师
11分钟前
0
0
flutter Expanded用法

使用的地方:一个分类,类似京东的,左右两边都可以滑动 Widget build(BuildContext context) { return Row(children: [ Column( children: <Widget>[ Ex......

大灰狼wow
15分钟前
2
0
Java8 Map中新增的方法使用总结

前言 得益于 Java 8 的 default 方法特性,Java 8 对 Map 增加了不少实用的默认方法,像 getOrDefault, forEach, replace, replaceAll, putIfAbsent, remove(key, value), computeIfPresent,......

kaixin_code
25分钟前
1
0
@TransactionConfiguration

@TransactionConfiguration过时与替代写法 @TransactionConfiguration 替代写法

miaojiangmin
27分钟前
0
0
浅谈Vue响应式(数组变异方法)

很多初使用Vue的同学会发现,在改变数组的值的时候,值确实是改变了,但是视图却无动于衷,果然是因为数组太高冷了吗? 查看官方文档才发现,不是女神太高冷,而是你没用对方法。 看来想让女...

开元中国2015
29分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部