【问题标题】:Fullscreen mode in processing处理中的全屏模式
【发布时间】:2019-03-05 03:23:05
【问题描述】:

我正在 Processing 中制作一个小游戏。但我不知道如何在使用全屏的每种显示器类型上将坐标设置为相同。就像在大显示器中,坐标与小显示器不同。

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

谁能帮帮我?

【问题讨论】:

  • 请尝试更具体一些 - 显示代码 sn-ps 等。否则,将无法回答您的问题。

标签: height width processing fullscreen


【解决方案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); 
}

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

但是,现在您遇到了一个不同的问题:绘图可能会根据显示器的大小而被拉长。您需要修复纵横比。我建议使用谷歌搜索查看大量方法,但对于这个简单的示例,您可以取 widthheight 中的最小值并使用它:

void setup() {
  fullScreen();
}

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

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

无耻的自我推销:herehere 是有关使用 widthheight 变量缩放绘图的教程。

【讨论】:

  • 嗨凯文!我正在使用全屏,但在 1920x1080 中的像素比 1600x900 中的多,这会影响我的程序。我已经搜索了很多... TY
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-07
  • 2011-08-25
  • 1970-01-01
相关资源
最近更新 更多