2013-04-19 3 views
-3

그래서 나는 다음과 같은 코드가 있습니다 :자바 - 클래스의 변수 식별자

이 레벨 클래스의 블록 사랑의 충돌이 있는지 내 문자 클래스에
public static String currentLevel = "Level_1_1"; 
public boolean isCollingWithBlock(Point pt1, Point pt2){ 
    for(int x=(int)(this.x/Tile.tileSize);x<(int)(this.x/Tile.tileSize + 3);x++){ 
     for(int y=(int) (this.y/Tile.tileSize);y<(int)(this.y/Tile.tileSize + 3);y++){ 
      if(x >= 0 && y >= 0 && x < Component.Level_1_1.block.length && y < Component.Level_1_1.block[0].length){ 

       // blocks 
       if(Component.Level_1_1.block[x][y].id != Tile.air && Component.Level_1_1.block[x][y].id != Tile.death && Component.Level_1_1.block[x][y].id != Tile.win){ 
        if(Component.Level_1_1.block[x][y].contains(pt1) || Component.Level_1_1.block[x][y].contains(pt2)){ 
         return true; 
        } 
       } 

       if(Component.Level_1_1.block[x][y].id == Tile.death){ 
        if(Component.Level_1_1.block[x][y].contains(pt1) || Component.Level_1_1.block[x][y].contains(pt2)){ 
         alive = false; 
         deathText = true; 
         return true; 
        } 
       } 

       if(Component.Level_1_1.block[x][y].id == Tile.win){ 
        if(Component.Level_1_1.block[x][y].contains(pt1) || Component.Level_1_1.block[x][y].contains(pt2)){ 
         win = true; 
         return true; 
        } 
       } 
      } 
     } 
    } 
    return false; 
} 

(이 경우 수준에 1_1)

:

Component.Level_1_1 

변수가 될 :

그래서 난 단지 해달라고 한 수준을 원하는 ofcause, 정말 내가 원하는 더 후 1 개 수준을 원하는

나의 현재 레벨은 다음과 같은 방식으로 설명 : 문자 클래스에서

public static String currentLevel = "Level_1_1"; 

. 다음을 시도했습니다.

Component.(currentLevel) 

그러나 작동하지 않았습니다. 다음 작업을하려면 어떻게해야합니까?

편집 : OK 일부 didnt한다 내가 .. 내가 뭘 원하는 isCollingWithBlock에, Component.Level_1_1.block에게 변수를 만들기 위해 어떻게 원하는 것을 이해합니다. 메신저에 다음과 같은 레벨이 있기 때문에 : Component.Level_1_2.block, Component.Level_1_3.block etc. 이것은 my : public static String currentLevel = "Level_1_1";에 의해 결정되어야합니다.

+1

문자 클래스의 코드는 어디에 있습니까? – NINCOMPOOP

+0

나는 당신이 무엇을 요구하고 있는지 이해하지 못합니다. – djechlin

+7

정적 변수가있는 클래스 Level_1_1, Level_1_2 등이 있다면 기본적으로 디자인 결함이있는 것 같습니다. 인스턴스를 * 나타내는 * 객체 지향적 인 방식으로 생각하십시오. –

답변

1

Jon Skeet이 의견으로 말했듯이 레벨별로 수업을 진행하지 않아야합니다. 대신 레벨을 나타내는 단일 클래스 Level을 사용하고 레벨별로 하나의 클래스 인스턴스를 작성하십시오.

+0

흠 ... 어떻게 그럴 수 있니? – user1953489

+0

@ user1953489 클래스의 인스턴스를 만드는 방법을 모르십니까? – WilQu

+0

@WilQu 오브젝트 구조에 대한 몇 가지 예제를 제공한다면 그는 우리가 무엇을 의미하는지 알 수 있습니다 ... – gaborsch