我正在制作一个简单的RPG游戏,找出公式很难。到目前为止,我有这个:
import java.lang.Math.*;
import java.util.*;
import java.text.*;
public class expTable {
public static void main(String[] args) {
int myLevel = 6;
int myAttack = 6;
int myDefense = 1;
DecimalFormat df = new DecimalFormat("###,###,###");
int rawr = monsterFormula(myLevel, myAttack, myDefense);
System.out.println("At level " +myLevel+ " you hit for " + df.format(rawr) + " attack points!");
}
public static int monsterFormula(int e,int myAttack, int myDefense) {
int xTotal = 0;
for(int i=1; i<e; i++) {
xTotal += (int)Math.floor(i + myAttack * Math.pow(myDefense, (i / 42.0)));
}
return (int)Math.floor(xTotal/8.0);
}
}
但是...它似乎被制服了,因为在10级攻击10,你命中10。 你看到我能改进我的命中公式吗?
答案 0 :(得分:4)
首先,这会在game-dev上更好,因为这与编程无关。
但是没关系。
在我之后重复:游戏平衡很难,并且比编程需要更多的时间。
再次
游戏平衡很难,并且比编程需要更多时间。
好的,现在已经钻进了你的头脑,你可以使用几种工具。
你有三个主要组成部分来制作过度的东西。
平衡游戏的一种(便宜)方式是简单地扩大(或降低)玩家的健康状况。这是非常有效的,但是当你加入治疗时会失去它的力量(因为那时你必须以不同的方式扩大治疗效果。)
以下是我解决游戏平衡问题的方法。我知道一些我知道的事情对我来说是不变的。
然后向后工作以达到攻击力,伤害等的公式。
答案 1 :(得分:0)
我不知道你想要那个公式给你什么;这是非常特别的。
以下是我如何测试它:
package cruft;
import java.text.DecimalFormat;
public class Monster
{
public static void main(String[] args)
{
DecimalFormat df = new DecimalFormat("###,###,###");
int maxLevel = 10;
for (int level = 1; level <= maxLevel; ++level)
{
int maxAttack = 10;
for (int attack = 1; attack <= maxAttack; ++attack)
{
int maxDefense = 10;
for (int defense = 1; defense <= maxDefense; ++defense)
{
double points = monsterFormula(level, attack, defense);
System.out.printf("level: %2d attack: %2d defense: %2d points: %10.3f\n", level, attack, defense, points);
}
}
}
}
public static int monsterFormula(int level, int attack, int defense)
{
int xTotal = 0;
for (int i = 1; i < level; i++)
{
xTotal += (int) Math.floor(i + attack * Math.pow(defense, (i / 42.0)));
}
return (int) Math.floor(xTotal / 8.0);
}
}