[英]Swing timer not working
我正在为一个班级创建一个街机游戏。 游戏是专栏。 我正在尝试使所有自由浮动块每秒下降一次。 我的使它们掉落的代码有效,但是计时器不起作用。 这是我代码的相关部分。
前两个出现在我用来管理内部逻辑的BlockManager对象中
public void play(){
t = new Timer(1000, this);
t.start();
}
public void actionPerformed(ActionEvent e) {
for(int v = 0;v < this.x; v++){
if(v > this.x || v < 0){
break;
}
for(int b = 0;b < this.y ;b++){
this.gameScreen.get(v).get(b).setActive(true);
}
}
for(int i = 0;i < this.x; i++){
if(i > this.x || i < 0){
break;
}
for(int j = 0;j < this.y ;j++){
if(this.gameScreen.get(i).get(j).getActive() == true){
if(j + 1 < this.y){
if(this.gameScreen.get(i).get(j+1).toString().equals(".")){
Collections.swap(this.gameScreen.get(i), j, j+1);
this.gameScreen.get(i).get(j+1).setActive(false);
}
}
}
}
}
}
this is the main method that is another file.
public static void main(String[] args){
ColumnsUI Col = new ColumnsUI(9,9);
Col.game.nextBlock();
Col.gw.add(Col.show);
Col.game.play();
}
列UI对象是一种基于内部逻辑进行绘制的简单方法。 我怀疑这与计时器故障有关,因为它在我手动调用actionPerformed的内容时起作用。
谢谢你的帮助!
当某些事件发生时会调用actionPerfomed。 您应该为计时器创建一个单独的类。 就像在此代码中一样,Task类当然必须由您的代码替换,这会移动模块。
Timer timer = new Timer();
// Start in 1 second and then all 5 seconds forever repatedly
timer.schedule( new Task(), 1000, 5000 );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.