我想为一个游戏(传奇联盟)创建一个模拟器(主要用于测试)。
游戏基础:
您有一个具有以下统计数据的英雄:
- 健康点
- 攻击伤害
- 攻击速度
- 盔甲
- 护甲穿透
- 移动速度
英雄可以拥有4种技能(每个级别上只有一个技能点)(大多数情况下它们是手动激活的,具有冷却时间,伤害,攻击力/攻击伤害比例和技能等级)+被动技能
您可以杀死具有相同属性的敌方英雄或中立怪物:
- 健康点
- 攻击伤害
- 攻击速度
- 盔甲
我想做的是:
创建一个工具来测试特定物品或特定属性的增加是否会加快您的杀伤力/速度。
地图:http : //evtron.com/Evtron-Alpha/wp-content/uploads/2011/02/Summoners-Rift.jpg
统计示例:
- 马力:420
- 广告:55
- AttackSpeed:0.613(攻击/秒->每1 / 0.613秒的攻击)
- 护甲穿透力:25
角色将以1 /攻击速度自动攻击敌人,并造成攻击伤害(有一个计算伤害的公式,但是我猜这个阶段并不重要),一旦他们死了,就以移动速度移动到下一个敌人(您可以在地图上看到营地,黄色的头骨)
我在考虑算法:
我想如果我只是从i = 0到i = 30000(计算毫秒)做一个for,那么我就可以检查敌人的hp和我的hp,以及每个ms都非常糟糕(相当的cpu重,我想给它放一些随机数,所以我应该能够总结出1k次迭代,这是不可能的)
其次,我认为我应该做一个从i = 1到30的取值,并每秒检查一次,并检查最后一秒发生了什么,但是一些中性怪物在一个大营地(最多4个怪物),并且这样,代码变得越来越复杂。
我将为每个玩家/怪物创建线程,一旦它们完成,将在死亡时进行查找,并降低玩家的生命值。
我的问题是,这是正确的方法吗?
TLDR:我想创建一个工具来对游戏进行分析(迭代1k并计算平均值),该统计数据的增加将使角色杀死更快的中立怪物。
我更喜欢java,但是atm却使我陷入了困境。
@Karoly S:是的,我不好,.com-> .eu
我一直在努力:
我正在检查每个对象的剩余时间(玩家技能,自动攻击,增益),并始终选择最短的时间,并存储last_time,并将时间与时间相加,在下一轮中,我用(time-上次)
如果对象的剩余时间为0,它将执行所需的任何操作。
我不知道这是否有效,但这是我能做的最好的事情。