我试图在我的android whack-a-mole游戏中创建一个MVC模式。从模型传递数据通过控制器查看
我通过内部类的线程在模型中生成摩尔位置,并且最终要将它传递给视图,以便它会为它生成一个精灵。
如何为我的视图创建一种方式,以不断从我的模型中接收生成的痣位置?
我编辑了下面的代码来捕捉它们背后的要领。
MODEL:
public class GameModel{
public GameModel(){
spawner = new MoleSpawner();
spawner.start();
}
.
.
.
private class MoleSpawner extends Thread{
private int location;
public void run() {
location = new Random().nextInt(20);
try{
sleep (1000);
} catch (InterruptedException ex){
ex.printStackTrace();
}
}
}
}
VIEW:
public GameView{
.
.
.
public void createMoleSprite(int newlocation){
//create sprites here
//newlocation should come from the MODEL
//this method must be triggered everytime the MODEL creates a new location
}
}
我会尽量诚实和乐于助人 - 第一次尝试MVC时,你将无法正确地遵循它。我知道我没有。所以,不要太在意MVC - 专注于使其工作。一旦你开始工作,你会注意到你怎么可能更多的MVC;但不要让“我不遵循MVC”的想法成为代码中的阻止块。 – Shark
@鲨鱼,非常真实!我从MVC开始经历过很多次,将一些模型代码放在控制器中,一些放在模型中,一些放在视图中,一旦我把所有东西都移到正确的位置加工。 –