分享
 
 
 

将GAPI游戏从纵向模式移植到方形屏幕

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

简介

在 Pocket PC 的早期版本中,Pocket PC 的标准纵向分辨率为 240 x 320。然而,假设一个应用程序会在特定的分辨率下运行的想法并不好,这样开发人员就会在写程序时将这个特定于屏幕的知识构建于应用程序中。许多旧式的应用程序通过滚动条来自动支持方形分辨率(例如,240 x 240),但是全屏的应用程序(如游戏)不支持这样做。游戏开发人员在开发全屏游戏时,如果游戏要在不同的屏幕上正确的表现和运行,他们需要在心里保持不同的分辨率。

本文描述了在将全屏游戏从纵向显示移植到方形屏幕显示时会遇到的常见问题和可能的解决方案。每种方案都需要进行权衡,其有效性也要依赖于游戏本身。

常见问题

用户在方形屏幕上玩全屏游戏时会遇到一些常见问题:

. 被裁剪的背景和物体

. 缩放的游戏进行方式

. 输入没有被缩放

下面这个游戏是这些问题的示例。游戏的目标是通过移动屏幕下端的横条击球来清除屏幕上方的砖块。如果球击中一块砖块,砖块就会被清除。

图 1 显示了游戏在纵向屏幕上的显示效果

图1. 在纵向屏幕上的砖块游戏

被裁剪的背景和物体

如果游戏的分辨率针对纵向屏幕进行硬编码,裁剪会在游戏的底部发生。裁剪使砖块游戏不可进行,因为用户看不见屏幕底部的横条,如图2所示。

图2. 裁剪的方形屏幕

这个问题的一种解决方案是将物体对屏幕进行相对定位。对于砖块游戏,可以让砖块相对于屏幕顶部进行定位,而横条相对于屏幕底部定位。在相对屏幕坐标中定位物体可以消除游戏对屏幕分辨率的依赖性。但是,这种方法会产生另外一个问题:缩放的游戏进行方式。

缩放的游戏进行方式

在本例中,上一部分我们描述了砖块游戏对物体采用相对定位。虽然相对定位解决了裁剪问题,但是游戏在方形屏幕设备上很难进行 ― 在砖块和横条之间没有足够的空间,如图 3 所示。

图3. 在方形屏幕缩放进行游戏

相对定位可能对一些游戏很好用;但是,在砖块游戏中,它大大的改变了游戏的进行方式。图中所示的游戏难度增大了,因为和在纵向设备上相比,用户需要快得多的反应才能控制横条击中球。某种意义上说,几乎不可能控制横条在屏幕上足够快地移动以击中球。

解决这个问题的一种方法是减少每关的砖块行数(例如,从 9 行减少到 5 行)。这样,游戏在方形屏幕上和纵向屏幕上就不一样了,尽管用户体验会愉快许多。

如果放任一些细节对您的游戏不是问题,那么另外一个方案是在屏幕范围内缩放整个游戏。砖块游戏的图形很简单,所以如果您垂直的缩放这个游戏,它的外观和在纵向设备上相似。

输入没有被缩放

屏幕尺寸同样影响用户可以在屏幕上使用的空间。要确定缩放所有图形的同时,也考虑到用户的输入。如果没有对输入和图片使用同样的方法进行缩放,结果是输入的坐标没有和图片对齐或者甚至完全偏离。

例如,假设砖块游戏的图形被缩放,但是输入坐标没有被缩放。如果游戏试图处理 y280 时对横条的定位,横条会无法在方形屏幕上移动,因为垂直分辨率是 240 像素。

同时为纵向模式和方形屏幕进行设计

您可以使用其它技术使游戏在纵向屏幕和方形屏幕都可以正常进行,技术成功的关键依赖于游戏本身。

位图缩放

您可以使用许多不同的方法进行缩放来得到同样的效果。最简单的情况下,您可以缩放每种物体以适应当前的屏幕。Tic-Tac-Toe download sample 示例根据屏幕尺寸缩放所有位图。在接近 tictactoe.h 的顶部位置,您能够看到:

#define DesignedWidth

240

#define DesignedHeight 240

你可以使用这些值(即游戏设计的屏幕尺寸)来根据设备屏幕尺寸缩放原始图形。在游戏载入位图时,ScalingImage类比较设备屏幕尺寸和开发人员设计游戏时使用的尺寸。如果设计分辨率和设备的实际分辨率匹配,就不需要缩放图形。

对于高精度的位图或者图片,缩放位图可能不是很好的方案,因为拉伸后的效果看起来不太好。这种情况下,您可以对于方形和纵向屏幕分别创建图片。

屏幕相对坐标

Tic-Tac-Toe 下载示例演示了如何在 TicTacToe::DrawBoard方法中使用屏幕相对坐标来绘制游戏棋盘。每一条直线在水平和垂直方向按 1/3 递增进行绘制,这样将屏幕按照 Tic-Tac-Toe 游戏的要求将屏幕分成了九格。使用屏幕相对坐标使得棋盘可以在任何分辨率下被绘制。

相对屏幕坐标也可以用于测试输入。使用和 Tic-Tac-Toe 棋盘一样的规则,可以精确的测试在游戏棋盘每一格的点击。

边框化 (Letterboxing)

如果在您垂直拉伸游戏后,游戏没有达到您想要的效果,您可以按比例将游戏按照方形屏幕的高度进行缩放并边框化。图 4 显示了砖块游戏进行边框化处理的外观。

图4. 砖块游戏按照方形屏幕缩放并边框化

边框化的优点是在失去图形细节的时候可以表达同样的游戏进行方式。如果将游戏边框化,可以使用边界的额外空间来显示游戏信息,或者进行美化来利用空间的优点。如果游戏是边界滚动 (side-scrolling) 的游戏,可以选择如之前所述那样来缩放游戏,也可以使用边界的空间来加宽游戏玩家可以看见的区域。

平移 (Panning)

如果缩放或者边框化对您的游戏不合适,平移可能是个办法。平移方案会尽可能多的在屏幕上显示游戏,并且在游戏画面比屏幕大的时候使用某种机制移动视图。使用滚动条来阅读文档是平移的一个简单的例子。您可以在浏览器的窗口中只显示文档的一部分,但如果您想看得更多,就可以使用滚动条来显示更多的文字。您也可以使用笔针 (stylus)、设备上的按钮和许多其它机制让用户可以平移。

如果决定启用平移,就不用缩放图片,也不需要显示边框化方式增加的额外空间。但是,平移会影响游戏进行方式。如果游戏要求用户垂直滚动才能看见球在哪里,那么砖块游戏会非常困难。平移对回合制游戏很适用,因为用户在画面上四处查看需要的额外时间不影响游戏的进行。

为方形屏幕进行设计

既然您已经知道了 Windows Mobile Second Edition 或更高版本的软件支持方形屏幕,您就可以将游戏设计为默认在方形屏幕进行,当用户在纵向屏幕上进行游戏时,可以使用屏幕底部的额外空间显示对游戏不是至关紧要的信息,比如分数。图 5 显示了如何为砖块游戏使用屏幕底部的空间。

图5. 左图显示了在方形屏幕中的砖块游戏;右图显示了在纵向屏幕的砖块游戏,它使用了额外的空间显示附加的游戏信息。

您也可以将游戏画面移动到屏幕的底部,然后在屏幕顶部显示附加的游戏信息。您可以决定最适合游戏的设计方式。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有