반응형
큰 숫자를 간략하게 표현하기 위해 지수형태로 바꿀 필요가 생겼다
대강 1000이 넘으면 1.00e3으로 표현되게 만들생각이다
MA_text.text = "You have " + MA.ToString("F0") + " matters (MA)";
먼저 이부분을 바꿔보는데
조건문으로 MA가 1000 이상일때와 아닐때로 나누어주었다
if (MA < 1000)
{
MA_text.text = "You have " + MA.ToString("F0") + " matters (MA)";
}
else
{
var exponent = (Math.Truncate(Math.Log10(Math.Abs(MA))));
MA_text.text = "You have " + (MA / Math.Pow(10, exponent)).ToString("F2") + "e" + exponent + " matters (MA)";
}
1000 이하일때는 기존과 같고
그게 넘으면 exponent를 계산하여 축소시키는 방식
숫자가 작을때는 정수로 나오고 1000을 넘으니 지수적표현으로 바뀌는 모습이 보인다
제대로 작동하는듯 ㅎ
근데 바로 위에 99s 라는 글자가 거슬린다
1m 39s 같은 형태가 더 자연스러울듯
뭐 비슷한 방식으로 1d 6h 30m 22s 같은 모양으로 나올수있게 만들었다
if (timeleft < 60)
{
Time_text.text = "You stay here for " + timeleft.ToString("F0") + "s";
}
else if (timeleft >=60 && timeleft < 3600)
{
Time_text.text = "You stay here for " + Math.Truncate(timeleft/60).ToString("F0") + "m " + (timeleft % 60).ToString("F0") + "s";
}
else if (timeleft >=3600 && timeleft < 86400)
{
Time_text.text = "You stay here for " + Math.Truncate(timeleft/3600).ToString("F0") + "h " + (Math.Truncate(timeleft / 60) % 60).ToString("F0") + "m " + (timeleft % 60).ToString("F0") + "s";
}
else
{
Time_text.text = "You stay here for " + Math.Truncate(timeleft/86400).ToString("F0") + "d " + (Math.Truncate(timeleft/3600) % 24).ToString("F0") + "h " + (Math.Truncate(timeleft / 60) % 60).ToString("F0") + "m " + (timeleft % 60).ToString("F0") + "s";
}
실험삼아 100000초를 입력하고 실행해보니
1d 3h 46m 정도로 표현되는데
계산해보니 맞는듯하다
이후에는 나머지들 양식 복붙해서 수정해주는 작업인데...
전부 일일히 바꾸려니 노가다 하는 기분이었다
전부다 수정하고나서
테스트해보니 큰 문제는 없는듯하다
반응형
'개발 > Newbie Creator' 카테고리의 다른 글
방치게임 개발하기 #6 - 버튼꾸미기 2 (0) | 2024.12.15 |
---|---|
방치게임 개발하기 #5 - 버튼 꾸미기 (1) | 2024.12.13 |
방치게임 개발하기 #3 - 2~4차원 구현 (0) | 2024.12.09 |
방치게임 개발하기 #2 - 1차원 구현 (0) | 2024.12.07 |
방치게임 개발하기 #1 - 첫 삽 (1) | 2024.12.05 |