我正在用 Java 构建一个地图应用程序,我有一个关于传递小对象的问题。假设我想将窗口显示为矩形的区域表示,并且我想查询该矩形内的哪些图块,以便知道要加载哪些图块。在 C++ 中,我会创建一个Rect
结构并包含一个tileInRect
方法。最直接的 Java 翻译是这样的:
class Rect {
float x, y, width, height;
public boolean tileInRect(Tile t) {
// yada yada
}
}
class MyProgram {
public void main(String[] args) {
while (windowIsOpen()) {
// event loop
// render map
Rect r = getVisibleRect();
for (Tile t : tiles) {
if (r.tileInRect(t)) {
// etc.
}
}
}
}
}
但这对我来说有点恶心,因为我大概每帧都会制作一个新的 Rect。有没有更好、更规范的方式来用 Java 表示这些轻量级对象?我真的不想写这样的辅助方法,tileInRect(Tile t, int rect_x, int rect_y, int ...
因为这似乎只是一个荒谬的参数传递量。谢谢!