正在处理全屏模式

时间:2019-03-04 19:12:48

标签: height width processing fullscreen

我正在处理游戏。但是我不知道如何使用全屏在每种监视器类型上将坐标设置为相同。就像在大显示器中一样,坐标与小显示器不同。

我试图将中心平移到屏幕中间!

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

听起来您正在使用绝对坐标,如下所示:

void setup(){
  size(500, 500);
}

void draw(){
 ellipse(250, 250, 400, 400); 
}

此代码在屏幕中间绘制一个大圆圈。问题是,此代码根本不考虑窗口的大小。因此,如果将其全屏显示,圆圈将保持相同的大小和位置。

相反,您可以使用widthheight变量在窗口中设置绘图比例:

void setup(){
  size(500, 500);
}

void draw(){
 ellipse(width / 2, height / 2, width * .8, height * .8); 
}

现在,绘图将随窗口大小缩放。

但是,现在您遇到了另一个问题:根据显示器的尺寸,可以拉伸图形。您需要确定长宽比。我建议使用Googling来查看大量方法,但是对于这个简单的示例,您可以只使用widthheight中的最小值并使用:

void setup() {
  fullScreen();
}

void draw() {
  float minDimension = min(width, height);
  ellipse(width / 2, height / 2, minDimension * .8, minDimension * .8);
}

还有很多其他方法可以解决此问题。您还可以考虑使用大小始终相同的PGraphics,然后根据屏幕尺寸进行缩放。

无耻的自我促进:herehere是使用widthheight变量缩放图纸的教程。