WP7 XNA游戏:如何适应不同手机分辨率?

2023-12-31

我创建了一款针对 800 x 480 分辨率的游戏,但对其适应其他 WP7 分辨率很感兴趣。另外,我听说游戏可以通过 Mono 和 ExEn 移植到 iPhone 和 Android,从而开放大量其他屏幕分辨率。

处理这个问题的正确方法是什么?我想让游戏足够智能,能够检测屏幕尺寸并更改资产,使其看起来尽可能接近原始版本并玩相同的游戏。

这是一款 2D 游戏,我认为理想的情况是为所有分辨率提供单独的图像,但为了面向未来,这是行不通的。我想过使用 800 x 480 的基线,在开始时检测大小,并更改所有实体的边界以进行缩放,然后简单地将纹理绘制到这些目标。这将使我能够正确进行碰撞检测并缩放纹理,但可能有更好的方法。

无论如何,我希望我已经清楚地解释了这个问题。如果没有,我会在评论进来后编辑问题。

我很欣赏你的意见。


为了让那些在 Windows Phone 可能支持多种分辨率时来到这里的人们受益(或者寻找这个答案来编写真正的多分辨率引擎),我就是这样做的。

我枚举/检查可用的分辨率,并为具有我已经知道的纵横比的分辨率设置正交投影。为此,我硬编码了一张我测试过的游戏的长宽比表以及每个长宽比的“参考”宽度/高度。然后,我查看当前请求的分辨率,找到其纵横比,并在我的表格中查找最接近的较低匹配的纵横比,并设置正交投影(居中 - 因此,如果高度匹配但宽度不匹配,反之亦然,则字母-装箱会自动发生)并相应地视口。

例如:我会为 qHD (960x540)、WXGA (1280x720) 和 FHD (1920x1080) 设置 1280x720 的正射投影,因为它们三个都具有相同的宽高比。

在宽高比为 1.5 的 SVGA 和 DVGA (960x640) 显示器上,我会设置 SVGA 800x600 分辨率,这样一切看起来都不错。

上述方法可确保,如果您根据主要目标设备使用的宽高比设计资源,它们不会出现任何挤压。注意这个方法是NOT用于确定您资产的实际分辨率。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WP7 XNA游戏:如何适应不同手机分辨率? 的相关文章

  • 如何强制在 DateTimeAxis 上显示特定日期

    是否可以强制在图表上显示网格线以及极端数据点的日期 我已经尝试了以下 Chart DateTimeAxis 属性的几乎所有配置 IntervalType Interval Minimum and Maximum但我对结果并不满意 设置属性M
  • 如何配置具有两个端点的 WCF 服务,以便为每个端点使用不同的 ListenUri?

    我有一个 WCF 服务 它使用以下方式公开端点webHttpBinding并由 WPF 和 ASP NET 应用程序使用 一切都很好 我现在尝试从 Windows Phone WP7 使用该服务 然而 由于 NET Framework 还没
  • 如何对密码进行哈希处理

    我想在手机上存储密码的哈希值 但我不知道该怎么做 我似乎只能找到加密方法 应该如何正确地对密码进行哈希处理 考虑到今天 2012 年 的最佳实践 这里的大多数其他答案都有些过时了 NET 中原生可用的最强大的密码哈希算法是 PBKDF2 由
  • Windows Phone 7 和 Windows Phone 8 支持什么框架?

    Windows Phone 7 和 Windows Phone 8 支持什么框架 我在网上找不到太多关于此的信息 但我听说WP7不支持完整的框架 如果是的话 WP7 和 WP8 的框架有哪些限制 奖金问题 WP7和WP8的编程仅限于C 吗
  • 如何使用 .Net(在 Windows Phone 上)阅读公共 Twitter 源

    我正在尝试读取用户的公共 Twitter 状态 以便可以在我的 Windows Phone 应用程序中显示它 我用 Scott Gu 的例子 http weblogs asp net scottgu archive 2010 03 18 b
  • 以编程方式关闭 WP7 应用程序? [复制]

    这个问题在这里已经有答案了 可能的重复 Windows Phone 7 关闭应用程序 https stackoverflow com questions 3659195 windows phone 7 close application 如
  • 在 WP7 Silverlight 应用程序中导航时将复杂对象传递到页面

    我一直在使用NavigationService s Navigate导航到我的 WP7 Silverlight 应用程序中其他页面的方法 NavigationService Navigate new Uri Somepage xaml va
  • Windows Phone 7 上的 Dispatcher.Invoke()?

    在回调方法中 我尝试获取文本框的文本属性 如下所示 string postData tbSendBox Text 但因为它不是在 UI 线程上执行 所以它给了我一个跨线程异常 我想要这样的东西 Dispatcher BeginInvoke
  • 部分类继承

    我正在为 Windows Phone 制作一个单位转换器 但我在类继承方面遇到了一些问题 我有课Measurement这应该是我的程序中图形内容的顶级 public class Measurement PhoneApplicationPag
  • WP7 上的 POST 请求

    我花了大约 6 个小时试图弄清楚如何在 WP7 中发出常规 POST 请求 我尝试了此处和许多其他地方发布的类似问题的答案 我还尝试了许多不同的 API POST 请求 它们都导致针对某一特定问题 远程服务器返回错误 NotFound 好像
  • 编译 XNA 项目时,无法执行请求的操作错误

    第二次编译项目时 出现以下错误消息 我必须关闭 VS 2010 重新加载时它会编译 如果我做出改变 那么问题又回来了 无法复制文件 obj x86 Debug MyFile dll 无法对打开的用户映射部分的文件执行请求的操作 我因为另一个
  • 如何在 Windows Phone 7 中创建自定义文本框?

    是否可以通过创建自定义文本框来处理 sip 我想创建一个自定义文本框 gt 创建获得焦点事件 gt 在我的自定义文本框的焦点上而不是 SIP 上 我的自定义键盘应该打开 要求 如何创建自定义文本框 打开自定义键盘而不是 SIP 获取文本字段
  • Windows Phone 7 的 xaml 学习教程

    我想使用 silverlight 为 WINDOWS PHONE 7 开发移动应用程序 有人能给我推荐合适的教程吗 提前致谢 那么您可能应该从 MSDN 开始电话平台 http msdn microsoft com en us ff3801
  • Windows Phone 目前是否有用于接近传感器和光传感器的 API?

    Windows Phone 目前是否有用于接近传感器和光传感器的 API 我想访问这两个传感器 但找不到API 有一些方法可以使用它们吗 很不幸的是 不行 此处列出了可用的传感器 API http msdn microsoft com en
  • 如何在Windows Phone 7中获取Wi-Fi和移动网络参数?

    我的应用程序需要以下移动网络参数 MCC 移动国家代码 MNC 移动网络代码 LAC 位置区域代码 CID 小区标识符 细胞信号强度 对于 Wi Fi MAC地址 信号强度 我还需要两个变体的设备 IP 地址 Windows Phone 7
  • 重置 Windows Phone 照片上传

    我正在尝试使用 RestSharp 将照片上传到 Windows Phone 7 应用程序中的 REST api 进行获取 发布 post参数如下 photo 照片 编码为多部分 表单数据 照片 相册 id 现有相册的标识符 可以是一个事件
  • 多个事件处理程序触发,为什么?

    我很难解决这个问题 我已经呆了三个小时了 但我仍然不明白为什么会这样 这是代码 private void Catagory SelectionChanged object sender SelectionChangedEventArgs e
  • 我如何在 C# .NET(win7 手机)中使用“DataContractJsonSerializer”读入“嵌套”Json 文件?

    我有一个问题 如果我的 json 文件看起来像这样 Numbers 45387 Words 空间桶 我可以很好地阅读它 但是如果它看起来像这样 Main Numbers 45387 Words 空间桶 某事 数字 12345 单词 克兰斯基
  • 如何获取 Windows Phone 7 的 useragent 字符串?

    我需要获取手机的用户代理字符串 但我在 API 中没有找到任何允许这样做的内容 我遇到过以下两篇描述用户代理字符串格式的博客文章 http blogs msdn com b iemobile archive 2010 03 25 ladie
  • Windows Phone 上的列表框样式所选项目

    我想知道如何在选择列表框的项目时添加样式 我有以下列表框

随机推荐

  • 如何访问字典中的第一个和最后一个元素?

    在发帖之前 我已经经历过在Python中访问字典中的任意元素 https stackoverflow com questions 3097866 python access to first element in dictionary 但我
  • 为什么我不能使用 Set:union() 而不是 Set.union?

    我正在学习 Lua 我宁愿使用冒号 的方法 不幸的是 它并不是在所有地方都有效 看我的代码 Set local mt function Set new m local set setmetatable set mt for a b in p
  • 如何使用 RabbitMQ-JMS 恢复消费者,或指定自定义异常处理程序?

    我正在尝试使用 RabbitMQ JMS 客户端 并有意创建了一个长 onMessage 侦听器来查看客户端将如何恢复 Context context new InitialContext rabbitMQ RMQConnectionFac
  • 如果构造函数中引发异常会发生什么[重复]

    这个问题在这里已经有答案了 可能的重复 如果派生类析构函数抛出异常 基类析构函数会发生什么情况 https stackoverflow com questions 4508533 what happens to base class des
  • 创建注册表项(和子项)?

    我正在尝试创建一个注册表项和子项 以便为计算机上的所有用户启用 IE 11 企业模式 这就是我当前用于 VBScript 的内容 但它失败得很厉害 不添加密钥 我需要一些帮助来纠正这个问题 Const HKEY LOCAL MACHINE
  • 如何删除 Eclipse 项目相关文件而不从 Eclipse 中删除源

    每当我们想要使用现有源位置创建 Eclipse 项目时 我们都会选择现有源位置 根 作为项目位置 Eclipse 将在该源的根目录中创建所有项目特定文件 现在 由于某种原因 如果我们想使用不同的设置重新创建项目 我们应该如何告诉 Eclip
  • 启用 Lambda@Edge 后调试 CloudFront 的问题

    下列的本文 https aws amazon com blogs apn using amazon cloudfront with multi region amazon s3 origins 我正在尝试从 AWS 内的多个区域 同一域下
  • JAVA 面向方面编程 - 运行时方面编织和类加载时方面编织

    我看到一篇关于 AOP 的文章 其中提到切面编织可以在编译时 类加载时和运行时发生 在java中 我可以想象 甚至可以理解 方面编织在编译时实际上是如何发生的 代理类是在类编译期间生成的 在项目上启用了方面 生成的字节码将具有代理代码 但我
  • .Net Twitter OAuth 如何执行成功的 GET 请求

    按照本教程 我能够成功向 Twitter API 发布帖子并更新我的状态 但是我在处理成功的 GET 请求时遇到问题 我正在尝试修改 Post 请求来完成此操作 但在我的网络异常上不断收到 无效协议 错误 以下是将发布状态更新的工作代码 h
  • 原则 2. orm:schema-tool:update 。设置开始ID

    当我使用 bin doctrine orm fixtures load使用示例数据填充表首先迁移设置自动增量表 ID 如 1 2 3 4 5 等 第二次之后orm fixtures load迁移命令它会清除所有数据并设置 id 如 5 6
  • 如何在 Vim 中设置工作/当前目录?

    因此 当我想使用 e 命令创建新文件时 我不想指定整个路径 而只想指定新文件名 能做到吗 正如已经建议的 您可以使用 autochdir 它将更改为您打开的文件的目录 另一个选项是 cd mydirectory 这将更改目录 这可以是绝对路
  • ruby - 覆盖方法然后恢复

    我正在尝试找到一种方法 可以覆盖方法 执行某些操作 然后在不留下任何工件的情况下进行恢复 我已经使用 mocha 实现了这个 但显然这不会在生产应用程序中运行 请注意 新方法有参数 而旧方法没有 示例如下 require rubygems
  • CSS 宽度和高度属性的最大像素值是多少?

    最大有效值是多少pxCSS 的值width and height属性接受吗 我目前正在构建一个网络应用程序 它创建一个非常大的可缩放容器元素 我想知道实际的限制是什么 在元素上使用某些浏览器附带的 CSS 检查器10000000000px
  • 从 javascript 运行 bat 文件

    我正在尝试使用 javascript 运行 bat 文件 我尝试过使用 powershell 但它似乎无法正常工作 这是我尝试过的代码 var oShell WScript CreateObject WScript Shell oShell
  • 将浮动栏添加到滚动视图,就像 Facebook iOS 应用程序的时间线中一样

    我一直在尝试向我的测试项目添加不同的交互 但在添加 Facebook 的帖子状态栏之类的东西时遇到了麻烦 该状态栏位于时间线滚动视图上 并在向下滚动时随滚动视图一起滚动视图 但当您向上滚动时仍停留在导航栏下方 我一直在创建一个单独的 UIV
  • 如何在 docker 上运行电子应用程序

    我创建了一个托管电子应用程序的存储库的分支 该应用程序是一个聊天客户端 https github com Serkan devel BetterDiscordApp docker https github com Serkan devel
  • 是否可以克隆 ValueType?

    当已知对象是装箱 ValueType 时 是否可以克隆对象 而无需编写特定于类型的克隆代码 一些代码供参考 List
  • 如何从 statsmodels 中检索模型估计值?

    从这样的数据集 import pandas as pd import numpy as np import statsmodels api as sm A dataframe with two variables np random see
  • 如何使我的代码诊断语法节点操作对关闭的文件起作用?

    我正在使用 Roslyn 在 VS2015 预览版中 构建一组代码诊断 理想情况下 我希望它们产生的任何错误都充当持久错误 就像我违反了正常的语言规则一样 有很多选择 但我很难让其中任何一个都能持续工作 我已经成功实现了一个基本的语法节点操
  • WP7 XNA游戏:如何适应不同手机分辨率?

    我创建了一款针对 800 x 480 分辨率的游戏 但对其适应其他 WP7 分辨率很感兴趣 另外 我听说游戏可以通过 Mono 和 ExEn 移植到 iPhone 和 Android 从而开放大量其他屏幕分辨率 处理这个问题的正确方法是什么