我在Processing中做了一个小游戏。但我不知道如何使用全屏设置每个显示器类型的坐标相同。就像在大显示器中一样,坐标与较小的显示器不同。
我试图将中心翻译到屏幕中间!
谁能帮我?
听起来你正在使用绝对坐标,如下所示:
void setup(){
size(500, 500);
}
void draw(){
ellipse(250, 250, 400, 400);
}
此代码在屏幕中间绘制一个大圆圈。问题是,这段代码根本不考虑窗口的大小。因此,如果您将其设置为全屏,则圆圈保持相同的大小和位置。
相反,您可以使用width
和height
变量来使用窗口缩放绘图:
void setup(){
size(500, 500);
}
void draw(){
ellipse(width / 2, height / 2, width * .8, height * .8);
}
现在,绘图将根据窗口的大小进行缩放。
但是,现在您遇到了另一个问题:根据显示器的大小,绘图可能会延长。您需要修复宽高比。我建议谷歌搜索看到大量的方法,但对于这个简单的例子,你可以采取最小的width
和height
并使用:
void setup() {
fullScreen();
}
void draw() {
float minDimension = min(width, height);
ellipse(width / 2, height / 2, minDimension * .8, minDimension * .8);
}
还有很多其他方法可以解决这个问题。您还可以考虑使用始终大小相同的PGraphics
,然后根据屏幕大小进行缩放。