public void AddExperience(int amount)
{
exp += amount;
CheckLevelUp();
}
public void CheckLevelUp()
{
if (exp >= TO_Level_UP)
{
if (selectedUpgrades == null) { selectedUpgrades = new List<UpgradeDate>(); }
selectedUpgrades.Clear();
selectedUpgrades.AddRange(GetUpgrades(3));
upgradePanel.OpenPanel(selectedUpgrades);
exp -= TO_Level_UP;
level += 1;
}
slider.UpdateExPerienceSlider(exp, TO_Level_UP);
slider.Settext(level, TO_Level_UP);
}
์ด ์ฝ๋์์ ๋ง์ฝ ๊ฒฝํ์น๊ฐ ๊ฐ์๊ธฐ 10000์ฉ ๋ค์ด์ค๋ฉด 20๋ ์์ 30๋ ๋๋๋ฐ ์ด๋ ๋ ๋ฒจ์
์ฐฝ์ด 1๋ฒ๋ฐ์ ์คํ์ด ์๋จ ์ด๊ฑฐ ๊ณ ์น๋ ค๋ฉด ์ด์บํด์ผ๋จ?
while (exp >= TO_Level_UP)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย if (selectedUpgrades == null) { selectedUpgrades = new List<UpgradeDate>(); }
ย ย ย ย ย ย ย ย selectedUpgrades.Clear();
ย ย ย ย ย ย ย ย selectedUpgrades.AddRange(GetUpgrades(3));
ย ย ย ย ย ย ย ย upgradePanel.OpenPanel(selectedUpgrades);
ย ย ย ย ย ย ย ย exp -= TO_Level_UP;
ย ย ย ย ย ย ย ย level += 1;
ย ย ย ย ย ย ย ย ย
ย ย ย ย ย ย ย ย if(exp < TO_Level_UP)
ย ย ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย ย break;
ย ย ย ย ย ย ย ย }
ย ย ย ย ย ย }
์์ผ๋ฌธ ๋๋ ค ๋ชฉํ๊ฒธ์น๋ณด๋ค ํ์ฌ๊ฒธ์น๊ฐ ๋ง์์ง
ํ๋ฌ (์ ๊ทธ๋ ์ด๋์ฐฝ) ์คํ์ด ํ๋ฒ๋ฐ์ ์๋จ ใ ใ
๊ทธ๋ผ ์ ๊ธฐ ์ดํ๋ฌธ ์์ ๊ฒธ์นํ์ธํ๊ณ ํธ์ถํ๋ฒ๋ ํ๋์์ผ๋กํ๋ฉด๋์ง
๋ ๋ฒจ ์ฌ๋ ค์ฃผ๋๋ผ์ธ ๋ค์๋ค๊ฐ ์๋๋จธ์๊ธฐ ์ ๊ฑฐ์๋ค 0๋ฃ๊ณ ํธ์ถ ใฑ
์ ๋ฆฐ์ด๋ผ ์ ์ดํด ๋ชปํ๊ฒ ์ด ใ ใ ๊ธธ๊ฒ ์จ์ค์ ์์๊น?
์๋๊ตฌ๋ ํ๋ฌ ๋ซ์๋๋ฃ์ด์ผํ ๋ฏ
ํ๋ฌ์์ ๋ฅ๋ ฅ์น ์ ํํ๋๊ฑฐ์ง? ๋ฅ๋ ฅ์น ์ ํํ๊ณ ํ๋ฌ ๊บผ์ง๋ AddExperience(0)์คํํด์ฃผ๋ฉด ๋์ง์์?
isExpOver booltype ์ ์ธํ๊ณ , overExp inttype์ ์ธํด์ curExp(ํ์ฌ exp)๊ฐ purExp(๋ชฉํexp)๋ณด๋ค ํฌ๋ฉด overExp = curExp - overExp; curExp = overExp๋ก while๋๋ฆฌ๋ฉด ๋ ๊ฒ ๊ฐ์์
์ค์ ํด๊ฒฐํ๋ค
๊ทธ๋ฅ ๋จ์ํ๊ฒ bool ํ ํ๋ ๋ ๋ง๋ค๊ณ ํ๋ฌ์ด ์ผ์ง๋ฉด while([๊ธฐ์กด์] && [๋จ์๋ถ]a) ์ด๋ ๊ฒ ํด์ ๊บผ์ง๋ฉด ๋ค์ a = true ์ผ์ง๋ฉด ๋ค์ a=falseํ๋ฉด ๋ฌ๋ค