【发布时间】:2020-09-30 01:23:57
【问题描述】:
所以,正如问题所说,我需要根据屏幕大小调整画布大小。然而,事实并非如此。我还需要按比例更新鼠标坐标。似乎我犯了一个致命的错误,即从一开始就没有考虑屏幕尺寸,因为这是我的第一个合适的游戏。我是根据我的 1080p 屏幕制作的游戏。诸如定位东西和检查鼠标坐标之类的东西都是基于 1920x1080 的画布。请帮忙!
Github 链接:
- 主游戏,可以运行,但大小取决于您的屏幕:https://proqbr.github.io/powerdown/
- 所有文件(只有15MB,以防您想通过下载查看):https://github.com/proqbr/powerdown
- sketch.js(关于这个的几乎主要文件):https://github.com/proqbr/powerdown/blob/master/sketch.js
主要是在sketch.js 中,在第260-263 行 上是function setup() 中的一些createCanvas 行,未注释的是createCanvas(1920,1080);,因为这是我正在使用的。 第 302-314 行 是一堆 camera.zoom 行,未注释的一个是 camera.zoom = 1;,因为在我的屏幕上,主菜单不需要缩放。
第 352 行以后是一些关于知道玩家点击位置的代码,问题是这样的。我确实知道如何使用windowWidth 和windowHeight 使画布的内容在所有屏幕上看起来都正确调整大小,但是导致问题的是不正确的鼠标坐标。如果有人可以提供帮助,那就太好了。
如果你的游戏有问题,这里有一个快速的第二个视频游戏菜单是如何工作的,尽管它很简单:https://youtu.be/eZZw5CmOXEE
【问题讨论】:
-
恐怕没有简单的解决方法......您必须重构代码以在调整大小时按比例更新
-
@HelderSepulveda 好吧,看起来就是这样......但我很确定,如果我喜欢将鼠标坐标乘以某个值,它会工作得很好,但我想不出类似的东西。如果你能说出那样的话,那将是很大的帮助。就像乘以 windowWidth/1920 或类似的东西,但我就是想不通
-
鼠标坐标只是冰山一角,硬编码的值到处都是:github.com/proqbr/powerdown/blob/master/sketch.js#L268-L275
-
@HelderSepulveda 实际上许多值会保持原样,所以如果我能处理鼠标坐标就足够了。我也测试了主游戏,除了一些文本对齐之外它工作得很好,这可能会以类似于鼠标坐标的方式得到修复。
-
发布您的答案,以便其他人可以找到它
标签: javascript canvas resize p5.js mouse-coordinates