我正在为Android设计我的第一个2-D游戏,在游戏中,每次执行循环时,iam都会使用一个简单的表达式将字符移动20个像素
x = x 20;
但是,当我在分辨率为320 * 480,屏幕尺寸为3英寸的手机上测试游戏时,我面临的问题是,角色移动速度似乎很快,但是在平板电脑上测试角色移动速度却很慢.
因此,我想知道如何移动字符,因此它在低端设备和高端设备上都将以相同的速度移动,请告诉我逻辑,如果用一些代码解释逻辑会更有用.
解决方法:
您的问题是您不断使用20作为移动速度.您需要生成相对于比例因子的移动速度.我不知道您如何以不同的方式处理纵横比,但是例如,我假设您使用的是信箱.
假设您使用的是信箱功能,则需要设置相对于所需分辨率的比例因子,在这种情况下为320px.因此,您应该执行以下 *** 作:
displayMetrics displayMetrics = new displayMetrics();getwindowManager().getDefaultdisplay().getMetrics(displayMetrics);int height = displayMetrics.heightPixels;double scaleFactor = height / 320.0; /*// 480.0 if you're in landscape */
然后,您可以进行以下动作:
x += 20 * scaleFactor; /*// 20 is your move speed, the scaleFactor will make sure it scales across device sizes
注意:
根据您处理水平和垂直刻度的方式,您可能需要同时考虑这两个因素,以确保整个设备的垂直和水平运动速度均一,但这应该是一个好的开始.
以上是内存溢出为你收集整理的android-如何在显示器上移动字符,使其在所有设备上都以相同的速度移动全部内容,希望文章能够帮你解决android-如何在显示器上移动字符,使其在所有设备上都以相同的速度移动所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)