首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移动环境中的像素与感知

移动环境中的像素与感知
EN

Stack Overflow用户
提问于 2016-07-21 17:12:37
回答 1查看 35关注 0票数 1

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

我注意到,如果我使用像素制作对象,低分辨率设备可以比高分辨率手机更容易玩游戏。

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

我希望我的对象在每个设备上的大小完全相同,这可能吗?

更具体地说,我使用python-kivy,是否可以将对象定义为厘米/英尺等。

EN

回答 1

Stack Overflow用户

发布于 2016-07-21 21:00:45

您可以创建一个relative_size和relative_position方法。并使它们相对于窗口的宽度或高度。您可以从window类获取窗口的大小。请记住,仅使对象的大小(w,h)相对于宽度或高度中的一个。否则你的物体将被扭曲。

代码语言:javascript
复制
from kivy.uix.widget import Widget
from kivy.graphics import Canvas,InstructionGroup,Color,Ellipse
from kivy.core.window import Window
from kivy.app import App


class MyCanvas(Widget):

    def __init__(self,**kwargs):
        super(MyCanvas,self).__init__(**kwargs)
        #Window.size = (200,100)

        self.size = Window.size

        self.orientation = "vertical"

        self.ball = InstructionGroup()

        self.ball_size = self.relative_size(10,10)

        self.color = Color(0, 1, 1)
        self.ellipse = Ellipse(size=self.ball_size,pos=self.relative_position(100,50,self.ball_size))

        self.ball.add(self.color)
        self.ball.add(self.ellipse)

        self.canvas.add(self.ball)


    def relative_position(self,x,y,obj_size=(0,0)): # pass obj_size if you want the position to be the center of the object11
        x = ( self.width / 100.0 ) * x  - obj_size[0]/2.0
        y = ( self.height / 100.0 ) * y - obj_size[1]/2-.0
        return (x,y)


    def relative_size(self,w,h):
        return (self.width/float(w),self.width/float(h)) # only make it relative to your width or heigh
                                                         # or your object will be warped


class MyApp(App):
    def build(self):
        return MyCanvas()

if __name__ == "__main__":
    MyApp().run()

这里的relative_position方法现在将是一个百分比。所以你从0到100的两个方向都通过了。如果您想要其他东西,可以更改该方法中的100。尝试取消对#Window.size = (200,100)的注释并调整窗口大小,看看它是如何工作的。如果你的应用程序改变了大小,比如你的手机改变了方向,你也可以做一个事件。因为我没有这样做,所以这只适用于应用程序开始时的大小。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38499885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档