我正在处理游戏。但是我不知道如何使用全屏在每种监视器类型上将坐标设置为相同。就像在大显示器中一样,坐标与小显示器不同。
我试图将中心平移到屏幕中间!
有人可以帮助我吗?
答案 0 :(得分:1)
听起来您正在使用绝对坐标,如下所示:
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);
}
现在,绘图将随窗口大小缩放。
但是,现在您遇到了另一个问题:根据显示器的尺寸,可以拉伸图形。您需要确定长宽比。我建议使用Googling来查看大量方法,但是对于这个简单的示例,您可以只使用width
和height
中的最小值并使用:
void setup() {
fullScreen();
}
void draw() {
float minDimension = min(width, height);
ellipse(width / 2, height / 2, minDimension * .8, minDimension * .8);
}
还有很多其他方法可以解决此问题。您还可以考虑使用大小始终相同的PGraphics
,然后根据屏幕尺寸进行缩放。