【发布时间】:2015-04-05 23:55:41
【问题描述】:
我一直在尝试为 Bukkit 制作枪插件,并且正在尝试构建连发功能。我有一个包含延迟任务的 for 循环,在该延迟任务中是创建项目符号的代码等等。理论上,代码会添加一些项目符号,等待一个刻度,然后添加更多的项目符号,等待一个刻度,等等,直到 for 循环完成。
public void fire(final Player p, final Gun g) {
for(int i=0; i<shotsPerBurst; i++) {
Bukkit.getServer().getScheduler().scheduleAsyncDelayedTask(plugin, new Runnable() {
public void run() {
for(int i=0; i<bulletsPerShot; i++) {
Bullet b = new Bullet(p, g);
GunsV1.bullets.add(b);
}
}
}, 1L);
}
}
Eclipse 要求 Player p 和 Gun g 都是 final,我不知道为什么,当我尝试运行 fire(p, g) 时,什么也没有发生。如何设置我的代码,以便 for 循环在循环之间延迟 1 个滴答运行?
【问题讨论】: