2014-04-28 2 views
0

나는 몬스터와 싸우는 간단한 RPG 게임을 만듭니다. 공격이 생성되는 방법은 공격 통계로 설정된 최대 값으로 난수를 생성하는 것입니다. 공격 스탯은 클래스의 시작 부분에서 0으로 선언되지만 나중에 플레이어가 어떤 클래스를 선택 하느냐에 따라 나중에 세 숫자 (10,15 또는 20) 중 하나로 설정됩니다. 그럼 난 선수 공격 발생이 줄을 사용 :자바에서 임의의 정수를 만드는 변수를 사용하여

charDamage = rand.nextInt(charAttackTotal) + 10; 

을하지만 난 그것을 실행할 때 그것은 나에게 N (charAttackTotal)는 양수 여야합니다 없다는 오류를 제공합니다.

static int charAttackBase = 0; this is what is set to 10,15, or20 

static int charAttackMod = 0; this is set by what weapons the player has 

static int charAttackTotal = charAttackBase + charAttackMod - 10; 

하지만 난 빈 클래스에 넣고 때 잘 작동 :

이 내가 charAttackTotal을 얻는 방법이다. 이러한 변수를 함수 (메서드) 외부에서 선언 한 다음 메서드 내에서 사용하거나 무엇 때문에 오류가 발생합니까? 당신이 heres는 그것을 링크를보고 싶은 경우에 나는 페이스트 빈에 모든 코드를 넣어 가지고 :

당신의 모든 변수가

비록 시작 부분에 선언, 페이스트 빈 보는 경우 오류가 라인 (124)에

http://pastebin.com/RBMScyss 단순히 당신이 charAttackBase 또는 charAttackMod을 변경할 때마다 자동으로 업데이트되도록 charAttackTotal가 발생하지 않습니다

static int charAttackTotal = charAttackBase + charAttackMod; 

를 선언
+1

0 + 0-10 <0 그리고 긍정적이어야합니다. – BitNinja

답변

2

. 다른 변수를 변경할 때마다 charAttackTotal을 명시 적으로 업데이트해야합니다.

또 다른 방법은 필요할 때마다 charAttackTotal을 계산하는 것입니다 (아마도 함수를 사용하는 것).

+0

감사합니다! 함수를 사용하여 계산을 수행 한 다음 charAttackTotal 대신 무작위로 함수를 사용 했으므로 이제 작동합니다! – grademacher

관련 문제