2014-11-14 13 views
0

그래서 저는 RPG 게임을 디자인하고 있습니다. 전투 시스템이 작동하지 않습니다. 저는 꽤 새로 입지만 대부분 제가 여기있는 것을 잘 알고 있습니다. 전투 시스템을 실행할 때마다 'eHp'및 'hp'변수가 업데이트되지 않습니다.변수가 업데이트되지 않습니다

hit = rand() % atk + 1 + (rand() % 3 + 1); 
      diff = hit - OppD; 
      if (diff > 0) 
       eHp = eHp - diff; 
      if (eHp <= 0) 
       break; 
      OppHit = rand() % OppA + 1; 
      OppDif = OppHit - def; 
      hp = hp - OppDif; 
      if (hp <= 0) 
       break; 

이것은 while 루프 내의 switch 문 안에 있습니다. Health 지점에 대한 표시는 switch 문 앞에 while 루프에 있습니다. switch 문은 플레이어가 사용하기로 결정한 공격을 결정하는 데 사용됩니다. 더 많은 코드가 필요한 경우. 얼마를 볼 필요가 있는지 말하면 업데이트 할 것입니다. 감사합니다.

+4

변수 값 (atk, hit, OppD ...)이 정상적이라면 디버거를 검사 했습니까? if 조건이 충족되고 코드가 실행되고 설명 할 수없는 것이 있으면 조건이 사실이거나 잘못된 뺄셈 결과 등으로 실행되지 않는 if-condition과 같은)? – deviantfan

+0

@deviantfan 아니오 디버거 사용법을 배운 적이 전혀 없었습니다. – ShadowWesley77

+0

디버거 사용 방법에 대해 다른 사람이 가르쳐 주었던 것도 아니었지만 그 자체가 매우 중요하므로 가능한 빨리 배우십시오. 구글과 그냥 몇 가지 프로그램을 시도. – deviantfan

답변

0

코드 블록을이 코드 블록으로 변경하고 결과가 아직 출력되지 않았다면 질문에 출력을 붙여 넣으십시오.

hit = rand() % atk + 1 + (rand() % 3 + 1); 
diff = hit - OppD; 

std::cout << "hit: " << hit << "\ndiff:" << diff << "\neHP: " << eHp << std::endl; 

if (diff > 0) eHp = eHp - diff; 
if (eHp <= 0) break; 

OppHit = rand() % OppA + 1; 
OppDif = OppHit - def; 

std::cout << "OppHit: " << OppHit << "\nOppDif: " << OppDif << "\nhp: " << hp << std::endl; 

hp = hp - OppDif; 

if (hp <= 0) break; 
+0

이 코드 블록으로 변경해도 아무 것도 변경되지 않았습니다. CUT 문을 실행하지 않습니다 – ShadowWesley77

+0

@ ShadowWesley77 나는 그것이 여러개의 출력을 주었으면합니다. –

+0

@ Johnathan Mee 아니요, 이미 내게 더 이상 출력을주지 못했습니다 – ShadowWesley77

0

switch 문 조건은 char 데이터 형식이지만 문자 데이터 형식은 대문자입니다.

+0

이 질문에 대한 답을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남기십시오. 자신의 게시물에 언제나 댓글을 달 수 있으며 충분한 [평판] (http://stackoverflow.com/help/whats-reputation)을 갖게되면 [모든 게시물에 댓글을 달 수] 있어야합니다 (http://stackoverflow.com/help/privileges/comment). – dove

+0

@ dove 그러나 나는 내 문제를 알아 냈다. 이 질문을 삭제할 수있는 방법이 있습니까? – ShadowWesley77

+0

@ ShadowWesley77 "share | edit | close | delete | flag"질문의 맨 아래에 "delete"를 클릭하십시오. –