导航:从零开始手写mmo游戏从框架到爆炸(零)—— 导航-CSDN博客
上一章(从零开始手写mmo游戏从框架到爆炸(二十)— 战斗系统一-CSDN博客)我们只是完成了基本的战斗,速度属性并没有真正的发生作用。现在我们加入速度属性。上一章我们说过,比如速度是1000的时候是每隔2秒钟攻击一次,但是服务器不能真的等两秒再计算攻击的结果,那么这个战斗的时长将会超过几分钟,用户也可能等这么久。那么这里要解决几个问题:
第一个就是速度和出手间隔的换算,我们使用一个比较简单的公式,就是
这样可以保证最短的出手时间是500,最长也不会超过5000。
第二个问题就是根据速度插入到队列的问题,首先我们看下对于LinkedList队列的插入demo
public class Main {
public static void main(String[] args) {
LinkedList<Integer> queue = new LinkedList<>(); // 创建一个空的队列
// 添加初始元素
for (int i = 1; i <= 5; i++) {
queue.addLast(i);
}
System.out.println("原始队列:" + queue);
int targetIndex = 2; // 目标索引为2(从0开始计算)
int elementToInsert = 99; // 要插入的元素值
ListIterator<Integer> iterator = queue.listIterator();
whil