Java命中公式
我正在做一个简单的RPG游戏,找出公式很难。到目前为止,我有:Java命中公式,java,Java,我正在做一个简单的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 Deci
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);
}
}
import java.lang.Math.*;
导入java.util.*;
导入java.text.*;
公共类可扩展{
公共静态void main(字符串[]args){
int myLevel=6;
int-myAttack=6;
int=1;
DecimalFormat df=新的DecimalFormat(“#####,###,###,##”);
int rawr=怪物公式(我的等级,我的攻击,我的防御);
System.out.println(“在+myLevel+”级别,你为“+df.format(rawr)+”攻击点”而命中);
}
公共静态整数公式(整数e,整数myAttack,整数myDefense){
int-xTotal=0;
对于(inti=1;i首先,这在游戏开发中会更好,因为这与编程无关
但没关系
跟我重复一遍:游戏平衡很难,而且需要比编程更多的时间
再说一遍
游戏平衡很难,而且需要比编程更多的时间
好吧,既然它已经钻到你的脑袋里了,你确实有一些工具可以使用
你有三个主要的组成部分,以什么是压倒
攻击者扩大输出伤害的能力
防御者降低伤害的能力
防御者在战斗失败前所能承受的伤害
平衡游戏的一个(便宜的)方法是简单地增加(或减少)玩家的健康。这是非常有效的,但是当你加入治疗时,它会失去力量(因为你必须以不同的方式来调整治疗)
下面是我解决游戏平衡问题的方法。我接受一些我知道对我来说是不变的东西
X级的人应该在90%的时间里战胜X+2级(假设技能相同)
两名X级玩家之间的战斗平均持续90秒
与龙/老板搏斗至少需要3-4分钟
然后反向计算攻击强度、伤害等的公式。首先,这在游戏开发中会更好,因为这与编程无关
但没关系
跟我重复一遍:游戏平衡很难,而且需要比编程更多的时间
再说一遍
游戏平衡很难,而且需要比编程更多的时间
好吧,既然它已经钻到你的脑袋里了,你确实有一些工具可以使用
你有三个主要的组成部分,以什么是压倒
攻击者扩大输出伤害的能力
防御者降低伤害的能力
防御者在战斗失败前所能承受的伤害
平衡游戏的一个(便宜的)方法是简单地增加(或减少)玩家的健康。这是非常有效的,但是当你加入治疗时,它会失去力量(因为你必须以不同的方式来调整治疗)
下面是我解决游戏平衡问题的方法。我接受一些我知道对我来说是不变的东西
X级的人应该在90%的时间里战胜X+2级(假设技能相同)
两名X级玩家之间的战斗平均持续90秒
与龙/老板搏斗至少需要3-4分钟
然后倒转得出攻击力、伤害等的公式。我不知道你想要这个公式给你什么,这是非常特别的
下面是我如何测试它的:
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);
}
}
包装破损;
导入java.text.DecimalFormat;
公共级怪物
{
公共静态void main(字符串[]args)
{
DecimalFormat df=新的DecimalFormat(“#####,###,###,##”);
int maxLevel=10;
对于(int-level=1;level我不知道你想要这个公式给你什么,这是非常特别的
下面是我如何测试它的:
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);
}
}
包装破损;
导入java.text.DecimalFormat;
公共级怪物
{
公共静态void main(字符串[]args)
{
DecimalFormat df=新的DecimalFormat(“#####,###,###,##”);
int maxLevel=10;
对于(int level=1;等级提升?我不确定我是否理解你在说什么。你想在这里做什么?我讨厌看到像这样充满神奇数字的代码。这不是一个好迹象。同意@duffymo。你能给我们提供更多细节吗?每个等级的可接受命中值是多少等。你为什么对此不满意你把它太复杂了?例如,5级,你完成了。改进了吗?我不确定我是否理解你在说什么。你想在这里做什么?我讨厌看到像这样充满神奇数字的代码。这不是一个好迹象。同意@duffymo。你能给我们更多的细节吗?每个级别可以接受的命中值是多少等等。你为什么对此不满意?也许你把它复杂化了太多?例如,等级/5,你完成了。谢谢你的这篇信息性文章。一个问题:oyu所说的增加(或减少)一个玩家的健康是什么意思?好吧,不要用你造成的伤害“20分,30分”来考虑伤害以防御者的生命百分比来衡量。假设你希望怪物的平均战斗时间为20秒,每3秒命中一次。这大约是7次命中,所以你应该确保每次命中都是怪物生命值的14%。如果你发现命中率通常为20%,那么你只需给怪物更多的生命值。如果你发现命中率是我们通常情况下,你只给怪物少10%的生命值。谢谢你的这篇信息性文章。一个问题:oyu增加(或减少)一个玩家的生命值是什么意思?好吧,不要用“20点,30点”来考虑伤害以防御者的生命百分比来衡量。假设你希望怪物的平均战斗时间为20秒,每3秒命中一次。这大约是7次命中,所以你应该确保每次命中都是怪物生命值的14%。如果你发现命中率通常为20%,那么你只需给怪物更多的生命值。如果你发现命中率是我们艾尔