我對Java很陌生,並且自學自己。我正在製作一個RPG遊戲,其中技能反映了一個「修改器」,根據您在該領域的整體技能獲得或失去修飾符。基於另一個變量的增量創建變量
例如,如果你的「實力」技能是在10,你獲得對任何+0修改,需要力量。如果它是12,你獲得+1修正,14是+2等等。
有一些方法,而無需創建一個巨大的表,列出所有的增量爲if
陳述我能做什麼?
我對Java很陌生,並且自學自己。我正在製作一個RPG遊戲,其中技能反映了一個「修改器」,根據您在該領域的整體技能獲得或失去修飾符。基於另一個變量的增量創建變量
例如,如果你的「實力」技能是在10,你獲得對任何+0修改,需要力量。如果它是12,你獲得+1修正,14是+2等等。
有一些方法,而無需創建一個巨大的表,列出所有的增量爲if
陳述我能做什麼?
這聽起來像你只是想一些公式來計算的改性劑。從你的問題的猜測,該公式將是沿着線的東西:
int modifier = Math.floor((skillLevel - 10)/2);
如果你想爲不同類型的技能不同的配方,那麼你可能會想一個Skill
類存儲在它的不同常數,用來計算公式。例如,如果強度計算方法同上,但情報必須在15,你開始獲得了修改之前,你可以這樣做:
public class Skill {
int baseLevel;
public Skill(int level) {
this.baseLevel = level;
}
public int getModifier(int skillLevel) {
return Math.floor((skillLevel - baseLevel)/2);
}
}
爲10的基準面和情報創建的Skill
實力實例Skill
的實例,其基數等級爲15.如果用於計算修飾符的公式更復雜,則可以相應地更改此類。
感謝您的快速響應!假設我想在10以下的每2箇中給-1個修飾符,那我該怎麼去做呢? – user3308442
該公式也適用於此,但它可能不會給你很多你想要的東西。由於'Math.floor'總是向下舍入,所以8或9的強度會得到-1的修飾符,而7或6的強度會得到-2的修飾符。如果你希望給9一個0修飾符,你需要爲小於基礎水平的技能水平編寫一個單獨的公式。 –
非常感謝! – user3308442
看Java Collections Framework 並選擇一個類來存儲您的表,指出什麼修飾符適用於給定的分數。您希望能夠首先加載數據,然後根據需要查找分數的答案。因此你可能想看看java.util.map的一些類。你;-)
這將取決於你的邏輯處理修飾符我會離開,學習鍛鍊。從你的例子中,可以認爲任何超過10的技能都會爲每2個技能點獲得1點修正。你應該澄清這一邏輯。 –
這正是我想要的!然而,我想不出一種方式(用我有限的知識)在代碼中說明。 – user3308442
歡迎使用堆棧溢出。使用前請參閱本網站上每個[tag](http://stackoverflow.com/tags)的定義。作爲一個面向程序員的網站,我們對「RPG」的使用意味着編程語言,而不是模糊的遊戲類。處理遊戲開發概念的問題通常屬於我們的姊妹網站http://gamedev.stackexchange.com/ – WarrenT