我目前在业余时间制作一个游戏来改进我的 Java,但我在做我想做的事情之一时遇到了麻烦。我做了这个游戏,所以我可以把一个项目放到某个位置。在此示例中,它是某个位置的塔。当这个塔被放置在这个位置并且我点击塔时,我希望它输出一条消息。但是我尝试了很多方法来做到这一点,我还没有找到解决方案。我为此提供的代码是:
public static void click(int X, int Y){
System.out.println("X. " + X + " Y. " + Y);
if(Screen.room.block[X][Y].airID == Value.tower){
System.out.println("Tower clicked");
}
}
当塔被放置在一个位置时,我使用的代码是:
if(holdsItem){
for(int y=0; y<Screen.room.block.length; y++){
for(int x=0; x<Screen.room.block[0].length; x++){
if(Screen.room.block[y][x].contains(Screen.mse)){
if(Screen.room.block[y][x].groundID != Value.ground && Screen.room.block[y][x].airID == Value.tower){
Screen.room.block[y][x].airID = heldID;
}
}
}
}
}
当我通过以下方式放下塔时:
System.out.println(Screen.room.block[y][x]);
我明白了
Block[x=243,y=260,width=52,height=52]
这工作正常,塔已放置。然后我想使用放置塔的位置,然后如果按下该位置,则消息将打印在控制台中。然而这并没有发生。谁能帮我解决这个问题。
我使用鼠标侦听器,它是:
public void mouseClicked(MouseEvent e) {
e.getX();
e.getY();
Block.click(e.getX(), e.getY());
}
当我点击一个位置时,我得到:
System.out.println("X. " + X + " Y. " + Y);
X. 257 Y. 298
如果这有帮助。