Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mobile 移动环境下的像素与百分比_Mobile_Size_Kivy_Screen Resolution - Fatal编程技术网

Mobile 移动环境下的像素与百分比

Mobile 移动环境下的像素与百分比,mobile,size,kivy,screen-resolution,Mobile,Size,Kivy,Screen Resolution,我目前正在为android环境构建类似fps的游戏 我注意到,若我使用像素低分辨率设备制作对象,那个么玩游戏就比玩高分辨率手机容易多了 如果我这次使用百分比来构建对象,则更大的设备将获得优势。比如平板电脑的尺寸比手机大,它们可以轻松拍摄我的物体 我希望我的对象在每台设备上都完全相同大小,有可能吗 更具体地说,我使用python kivy是否可以将对象定义为cm/ft等。您可以创建相对大小和相对位置方法。并使其相对于窗宽或窗高。 您可以从window类获得窗口的大小。 请记住,仅使对象的大小(w,

我目前正在为android环境构建类似fps的游戏

我注意到,若我使用像素低分辨率设备制作对象,那个么玩游戏就比玩高分辨率手机容易多了

如果我这次使用百分比来构建对象,则更大的设备将获得优势。比如平板电脑的尺寸比手机大,它们可以轻松拍摄我的物体

我希望我的对象在每台设备上都完全相同大小,有可能吗


更具体地说,我使用python kivy是否可以将对象定义为cm/ft等。

您可以创建相对大小和相对位置方法。并使其相对于窗宽或窗高。 您可以从window类获得窗口的大小。 请记住,仅使对象的大小(w,h)相对于宽度或高度中的一个。否则您的对象将被扭曲

来自kivy.uix.widget导入小部件
从kivy.graphics导入画布、指令组、颜色、椭圆
从kivy.core.window导入窗口
从kivy.app导入应用程序
类MyCanvas(小部件):
定义初始(自我,**kwargs):
超级(MyCanvas,self)。\uuuuuu初始化(**kwargs)
#Window.size=(200100)
self.size=Window.size
self.orientation=“垂直”
self.ball=指令组()
自球尺寸=自相对尺寸(10,10)
self.color=color(0,1,1)
自椭圆=椭圆(尺寸=自球尺寸,位置=自相对位置(100,50,自球尺寸))
self.ball.add(self.color)
self.ball.add(self.ellipse)
self.canvas.add(self.ball)
定义相对位置(self,x,y,obj_size=(0,0)):#如果希望位置成为对象的中心,则传递obj_size 11
x=(自宽/100.0)*x-对象大小[0]/2.0
y=(自身高度/100.0)*y-obj_尺寸[1]/2-.0
返回(x,y)
def相对_尺寸(自身、宽、高):
返回(self.width/float(w)、self.width/float(h))#仅使其与宽度或高度相关
#否则您的对象将被扭曲
类别MyApp(应用程序):
def生成(自):
返回MyCanvas()
如果名称=“\uuuuu main\uuuuuuuu”:
MyApp().run()
这里的相对位置法现在将是一种优势。所以你在两个方向上都从0-100通过。如果你想要其他东西,改变tht方法中的100。 尝试取消注释
#Window.size=(200100)
并使用窗口大小,看看它是如何工作的。 如果你的应用程序改变了大小,比如你的手机改变了方向,你也可以做一个活动。 由于我没有这样做,这只适用于应用程序开始时的大小