当前位置: 首页 > 知识库问答 >
问题:

处理三维速度不随分辨率缩放

汲时铭
2023-03-14

我目前正在尝试用分辨率来制作我的简单游戏比例。我注意到,当我改变分辨率时,并不是一切都正常。例如,从1280x720到1920x1080的转换,跳跃距离会略有变化。我注意到的主要问题是,当我以一定的速度发射炮弹时。在较低的分辨率下,它在屏幕上的传播速度似乎要快得多,我不明白为什么,因为它应该随着窗口的大小缩小。以下是发射炮弹的代码片段:

m = new Box(l.pos.x+Width/32*direction2, l.pos.y-Height/288, Width/64, Height/72, true, 4);
              m.body.setGravityScale(0f);
              boxes.add(m);
              m.body.setLinearVelocity(new Vec2(Width*direction2, 0));

在这个场景中,m是我正在创建的一个盒子。在新盒子中(产卵x坐标、产卵y坐标、盒子宽度、盒子高度、盒子可移动性、盒子类型)l.pos.x和l.pos.y是我发射盒子的位置。Height和Width变量是当前窗口的大小(以像素为单位),该窗口将在空绘制()中更新,根据字符所面对的方向,方向2为1或-1。

共有1个答案

纪晨
2023-03-14

在没有看到更多代码的情况下,很难判断其余代码是如何影响模拟的。

理想情况下,您希望在维度上保持物理相关属性独立于处理草图维度,但保持比例,这样您就可以简单地放大相同大小世界的渲染。如果您有鼠标交互,坐标也会缩放,但除了位置,其余的物理特性应该保持不变。

根据我在代码中收集到的信息,如果草图的宽度宽度,你应该将其与线速度分离:

m.body.setLinearVelocity(new Vec2(Width*direction2, 0));

应使用一个相对于草图尺寸保持恒定的值。

 类似资料:
  • 我有一个java的列表。awt。图像,每个分辨率为300 DPI。我想打印它们,当我开始打印这些图像时(使用javax.PrintService API),只打印一些图像的一部分,因为Java的打印/3D类默认使用72DPI(相对于我的图像的300 DPI)。但是,当我使用72 DPI的图像(与Java默认值具有相同的分辨率)时,所有图像都可以很好地打印(打印整个图像时,而不仅仅是其中的一部分)。

  • 好的,这里有一个奇怪的问题,我有问题(用gcc btw编译) 下面是用于命令提示的Mandelbrot分形生成器的源代码。我以前做过这项工作,我想加快自己的测试速度,看看我能以多快的速度生成命令提示符中实际生成Mandelbrot分形所需的代码。我经常这样做是为了给自己找点乐子 不管怎样,我遇到了一个新问题,我不太明白问题是什么。当分形呈现时,无论我设置了多少次迭代或什么转义值,它都将始终显示为椭

  • 问题内容: 我在VirtualBox中使用LinuxMint 17.3 Cinnamon,本机使用1920 * 1080分辨率,Hi- DPI选项已打开。主机为Windows 10,分辨率为3840 * 2160。 尽管在LinuxMint中启用了Hi-DPI选项,但在缩放方面,某些应用程序看起来很适合舒适的工作,但是python-tk GUI(python2)尚未更改-字体很小,Cinnamon

  • 功能介绍 获取百度移动统计平台的全部屏幕分辨率列表 接口 https://openapi.baidu.com/rest/2.0/mtj/svc/config/getScreenList?access_token={ACCESS_TOKEN} 请求参数 参数名 类型 描述 样例 access_token string 用户登入后获取的token 1.a6b7dbd428f731035f771b8d

  • 我完全不熟悉任何类型的编码,并试图弄清楚selenium Webdriver是如何工作的。我从一位在线教师那里找到了一些视频,但是当我发现使用C#似乎无法找到下面异常的解决方案时,我尝试了从CssSelector到Xpath的不同选择器类型,但是无法找出到底哪里出错了。提前感谢。 “OpenQA.Selenium”类型的未处理异常。WebDriver.dll中发生InvalidSelectorEx