我正在使用Slick2D进行游戏,并且有很多“ if”语句,而我想摆脱它。现在这是我的代码:

if((playerPositionX>570 && playerPositionX<835) && (playerPositionY>16 && playerPositionY<260)){
    g.setColor(Color.red);
    g.drawString("Ready to play? press enter!", 400,350);
}


一切都很好,但是我很喜欢8以及这些,显然坐标不同。
因此,我想知道是否可以使用switch和case方法来解决此问题。

最佳答案

您不能将带有范围的开关用作大小写。换句话说,是这样的:

 Switch(playerPosition)
     case 570-835:
     ....


不存在。您可以这样做:

int num;

if (playerPositionX>570 && playerPositionX<835){
    num = 0;
if (playerPositionX>836 && playerPositionX<1000){
    num = 1;


接着

 Switch(num){
     case 0:
     ...
     case 1:
     ...


但您仍然必须使用if语句。

08-27 09:00