[์๋ฆฌ์ฆ] ๊ด๋ฌผ ์บ๊ธฐ ๊ฒ์ ๋ง๋๋ ์ค์ด๋ค. #1
ยท ๊ด๋ฌผ ์บ๊ธฐ ๊ฒ์ ๋ง๋๋ ์ค์ด๋ค. #1.๊ธฐํ ์๋
ํ์ธ์ฉ ์ถ์ 8๋ฒ ํ ์ฌ๋์
๋๋ค.
์ฐจ๊ธฐ์์ผ๋ก ๊ด๋ฌผ ์บ๊ธฐ ๊ฒ์์ ๋ง๋ค๊ณ ์์ต๋๋ค
์ด๋ฒ ๊ฒ์์ ๋ชฉํ๋ 1ํ์ ์ฌ๋ ธ๊ณ
๊ฒ์์ ์์ธ๋ถ๋ถ์ ๋งํด๋ณด๊ฒ ์ต๋๋ค.
๋จผ์ ํฐ์น๋ฅผ ํ๋ฉด ๊ด๋ฌผ์ด ์บ์ง๋ฉด์ ๊ด๋ฌผ ์ ๋ฆฌํ์ด ๋์ต๋๋ค.
์ ๊ฐ ์ถ๊ฐํ๊ณ ์ถ์ ์์๋ ๊ด๋ฌผ์ด ๋ถ์์ง๋๋ง๋ค ๋๋ค ์์, ๋๋ค ๊ฐํ์ ๋ฑ ๋๋ค ์ ๋ฆฌํ์ ์ฃผ๊ณ ์ถ์ต๋๋ค.
๊ณ ๋ก ์ค๋์ ์ด ๋ถ๋ถ์ ๋์์ธํ๊ณ ๊ธฐํํด๋ณด๊ฒ ์ต๋๋ค.
๋จผ์ ๊ด๋ฌผ์ด ๋ถ์์ง๋์ ๊ด๋ฌผ์ HP%๊ฐ N/8(๋ถ์์ง๋ ํ๋ ์์ด 8ํ๋ ์) ์ด๋ฏ๋ก
์ฒด๋ ฅ์ด 50์ธ ๊ด๋ฌผ์ 50/8=6.25 ์ด๊ณ 43.75, 37.5, 31.25, 25, 18.75, 12.5, 6.25, 0 ์ผ๋ ๋ถ์์ง๋ ์ ๋๋ฉ์ด์
์ด ์๋ ๋ฉ๋๋ค.
์ด ์์น ์ผ๋ ๋๋ค ์ ๋ฆฌํ์ ์ฃผ๋ ค๋ฉด
ํ์ฌ ๋์ HP = 43.75, 37.5, 31.25, 25, 18.75, 12.5, 6.25
์ผ๋๋ง ์ฃผ๊ฒ๋ ํด๋ณด๊ฒ ์ต๋๋ค.(0์ผ๋๋ ๊ด๋ฌผ ์ ๋ฆฌํ)
43.75 = 6.25(50/8) ร 7
.
.
.
.
6.25 = (50/8) x 1
์ด๋ฏ๋ก
nowHP = (50/8)ร(1~7) ์ผ๋์๋ง ์๋ํ๊ฒ ํ๋ฉด ๋ฉ๋๋ค
๋ฌธ์ ๋ (1.2.3.4.5.6.7)์ธ๋ฐ ์ด๋ฅผ ์ด๋ป๊ฒ ํ ์ง ๊ณ ๋ฏผํด๋ด
์๋ค
ํด๊ฒฐ์ฑ
์ nowHP๋ฅผ (50/8)x(1~7)๋ก ๋๋ด์๋ ์ ์๊ฐ ๋์จ๋ค๋ฉด ๋ฉ๋๋ค. ์ด๋ง์ ์ฆ์จ nowHP๊ฐ 43.75์ผ๋๋ 6.25๋ก ๋๋๋ค๋ฉด 7์ด ๋์ค๊ณ ๊ฐ์ด 6.25์ฉ ์ค์ด๋ ๋ค๋ฉด ๋ง์ง๋ง์ผ๋ก๋ 1์ด ๋์ฌ๊ฒ๋๋ค.
๊ฒฐ๊ตญ if์ ์กฐ๊ฑด์ {nowHP/(maxHP/8)} == 1~7
๋จผ์ {nowHP/(maxHP/8)}์ด ์ ์์ธ์ง ์๋์ง๊ฐ ์กฐ๊ฑด1
1~7์ด ์กฐ๊ฑด2 ์
๋๋ค.
์ ์์ธ์ง ์๋์ง๋ ๋๋จธ์ง๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
๊ณ ๋ก / ๋์ %๋ฅผ ์ฌ์ฉํด์
{nowHP%(maxHP/8)} == 0ย ์ด ์ฒซ๋ฒ์งธ ์กฐ๊ฑด1 ์
๋๋ค.
1<={nowHP/(maxHP/8)}<=7 ์ด ๋๋ฒ์งธ ์กฐ๊ฑด2 ์
๋๋ค.
On Update - if - (ํน์ ๋ก์ง)
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย and
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย equal1
{nowHP%(maxHP/8)} == 0
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย equal2
1<={nowHP/(maxHP/8)}<=7
๋ก ๋น์ฃผ์ผ ์คํฌ๋ฆฝํ
์ ํ๋ฉด ๋ฉ๋๋ค.
๊ฐ์ฌํฉ๋๋ค
- dc official App
๊ต์ฅํ๋ค.. ๊ฐ ์๋๋ผ ๊ต์ฅํ ์ธ๋ ์์ด ์ํ์์ ์ฌ์ฉํ๋ ๊ฒ ๊ฐ์๋ฐ .. ?
์ ํ์ค์์ฝํ๋ฉด (1~7)&&(์ ์) ์ด๋ค ๋ด๊ฐ ์ข ์ฅํฉํ๊ฒ ์ฐ๋ ๊ฒฝํฅ์ด ์์ด์ ์๋ ๋ถํฐ ํ์ด๊ณผ์ ์ผ๋ถ๋ก ๊ธธ๊ฒ ์ฐ๋ ์ฌ๋ ์ด์์ด์ ๊ทธ๋ฐ๊ฑฐ๊ฐ์ - dc App
์ ์์ธ์ง ์ฒดํฌํ์ผ๋ฉด ๊ทธ๋ฅ 0๋ณด๋ค ํฐ์ง๋ง ๋ณด๋ฉด ๋๋๊ฑฐ ์๋๋
0=<nowHP=<maxHP ์ด๋ฏ๋ก 0=<nowHP/(maxHP/8)=<8 ์ด๋ 0,1,2,3,4,5,6,7,8์ธ๋ฐ 0๋ณด๋ค ํฌ๋ค์ ์กฐ๊ฑด์๋ 1๋ถํฐ 8๊น์ง ํฌํจ๋๋ 8์ธ ์กฐ๊ฑด์ ๊ด๋ฌผ ์ ๋ฆฌํ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฏ๋ก ์ด์ค์ผ๋ก ๋ฒคํธ๊ฐ ๋ฐ์ํด์ ์๋ ๊ฑฐ๊ฐ์ต๋๋ค ์ ์๋ ์ฐจ๋ผ๋ฆฌ 8 ๋ฏธ๋ง์ผ๋ก ์กฐ๊ฑด์ ๋ฐ๊พธ๋ฉด ๋๊ฒ ๊ตฐ์ ์์ด๋์ด ๊ฐ์ฌํฉ๋๋ค. - dc App
์๋ ๊ทผ๋ฐ 8์ด๋ฉด ์ต๋ ์ฒด๋ ฅ์ด๋ผ๋ฉฐ ๋ง์๋ ๋ง๋ค ๋๋๊ฑฐ ์๋?
์ ์๋ชป ์ผ๋ค์ 8์ผ๋๊ฐ nowHP๋ maxHP๊ฐ ๊ฐ์ผ๋ ๊ธฐ๋ณธ์ํ ์ด๋ค์ 0์ผ๋๊ฐ ์ด์ค์ผ๋ก ๋ฐ์ํ๋ ๊ฒ์ด๋ ์ ์๋ ๋ง๋๋ก 0์ด๊ณผ์ด๋ฉด 8์ผ๋๊ฐ ์๊ธฐ๋ฏ๋ก 0์ด๊ณผ 8๋ฏธ๋ง ์ฆ 1์ด์ 7์ดํ๋ก ํ๋ฉด ๋ ๊ฑฐ๊ฐ์ต๋๋ค ๊ฐ์ฌํฉ๋๋ค - dc App
์ด๊ฒ ๋น์ต ๋ญ..
private const int RewardStepCount = 8; private float fullHealthPoint; private float healthPoint; private void Awake() { healthPoint = fullHealthPoint; }
public void TakeDamage(float damage) { var currentRewardStep = (int)(healthPoint / fullHealthPoint * RewardStepCount); healthPoint -= damage; var nextRewardStep = (int)(healthPoint / fullHealthPoint * RewardStepCount); var rewardCount = Math.Max(currentRewardStep - nextRewardStep, 0);
for (var i = 0; i < rewardCount; i++) { // TODO : give reward } }