Entity 更改实体相交时的状态
我正在制作一个迷宫,玩家必须用鼠标导航,但当鼠标撞到墙上时,他们就输了。我想确保玩家将鼠标放在正确的开始位置,所以当鼠标与屏幕上的方形指示器相交时,我尝试切换到游戏状态 在我学习的教程中,他们做到了:Entity 更改实体相交时的状态,entity,state,lwjgl,intersection,Entity,State,Lwjgl,Intersection,我正在制作一个迷宫,玩家必须用鼠标导航,但当鼠标撞到墙上时,他们就输了。我想确保玩家将鼠标放在正确的开始位置,所以当鼠标与屏幕上的方形指示器相交时,我尝试切换到游戏状态 在我学习的教程中,他们做到了: public static class Point extends AbstractEntity { public Point(double x, double y, double width, double height) { super(x, y, width, he
public static class Point extends AbstractEntity {
public Point(double x, double y, double width, double height) {
super(x, y, width, height);
}
@Override
public void draw() {
glBegin(GL_POINTS);
glVertex2d(x, y);
}
@Override
public void update(int delta) {
// Blank
}
}
Point.setLocation(Mouse.getX(), 480 - Mouse.getY() - 1);
if(Maze1.intersects(Point)){
System.out.println("You would have lost");
}
我试着这样做:
case MAZE:
if(Maze1.intersects (Point) ){
state = State.GAMEOVER;
}
break;
我得到错误,“点不能解析为变量”。请提供帮助。调用Maze1.intersects时,看起来您传递的是实际的Point类,而不是该类的实例。这就是为什么会出现“无法将点解析为变量”错误的原因。您需要创建一个Point实例,在该实例上调用setLocation,然后将其传递到Maze1.intersects 为了让您的示例发挥作用,我要么删除Maze1.intersects上的参数,让它直接访问Point类,要么将Point更改为不再是静态的,声明Point的实例并将该实例传递到Maze1.intersect 将Point类声明为静态并不意味着您可以将该类传递给方法等,就像正则变量一样,因为它只是共享数据和行为的一种方式。另外,请记住,通过将点声明为静态,您是在说只有一个点
<>我可能会考虑删除静态关键字,并创建一个点分类“启动点”的实例。然后您可以将其传递到Maze1.intersects。然后,如果您需要确定玩家是否与迷宫中的其他“点”相交,那么您可以创建其他实例来表示这些点。很乐意提供帮助。这解决了问题吗?如果是,那么请标记为答案。