else if (pt_atk->magic == 3)
{
printf("回復魔法。。。。!\n");
printf("HPとMPが各々20%回復しました。\n");
pt_atk->hp += pt_atk->hp*0.2;
pt_atk->mp += pt_atk->mp*0.2;
printf("プレイヤー%dの現在魔力:%d\n", turn, pt_atk->mp);
printf("プレイヤー%dの現在体力:%d\n", turn, pt_atk->hp);
}
다소 어설프긴 해도 게임을 만들고 있습니다.
소스코드 중 몇줄을 긁어왔는데, 캐스팅을 하지않아 C4244오류가 몇십 줄 이상이 뜹니다.
일단 긁어온 코드의 의도는 뭐..회복 마법을 썼다! 면 시전자의 mp와hp가 20% 회복 하는걸 하고싶었던것이고요
따라서 시전자 구조체의 hp변수 에 포인터로 액세스 하여, 그 값을 토대로 20%만큼 더하는.. 생각을 했는데요
12 warning C4244: '=' : 'double' から 'int' への変換です。データが失われる可能性があります。
'double'형 으로부터 'int'형으로의 변환입니다. 데이터가 유실될 위험이 있습니다. 라고 하네요.
대충 소수점 이하 자리가 발생하였는데, 그 발생한 변수는 int 형으로 선언되었으니 소수점 이하 자리는 버려질것이다!(제가 이해한게 맞다면)
이라고 생각합니다.
따라서 어느 부분인가에 (int)라던지로 캐스팅을 해줘야하는것 같은데 어디에 어떻게 해줘야할지 잘 감을 못잡겠네요..
아니면 그냥 전부 다 float 형으로 선언해버리는것도 괜찮을까요? (소수점자리 발생하는 변수에 한해 전부다)
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.