gpt4 book ai didi

java - 通过 Controller 将数据从模型传递到 View

转载 作者:行者123 更新时间:2023-12-01 15:08:04 25 4
gpt4 key购买 nike

我正在尝试在我的 Android 打地鼠游戏中创建 MVC 模式。

我通过内部类线程在模型中生成鼹鼠位置,并希望最终将其传递到 View ,以便它为其生成 Sprite 。

如何创建一种方法让我的 View 持续接收模型生成的痣位置?

我编辑了下面的代码以捕获它们背后的要点。

型号:

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();
}
}
}
}

查看:

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
}
}

最佳答案

实现此目的的方法之一是使用处理程序。

它可能更复杂,但我会给您一个简单的示例来说明如何实现它。

在游戏运行的 Activity 中,使用

获取其处理程序
Handler mHandler = new Handler();

然后,当您实例化模型时,将 mHandler 对象以及对您的 Activity 的引用传递给它。在您的模型中,每当您需要生成新的鼹鼠时,请执行

 mHandler.post(new Runnable() {

gameActivity.spawnNewMoleAt(location);


});

这可能会变得更加复杂,特别是如果您控制动态生成鼹鼠的速率,但您可以在此基础上进行构建。

您可以找到有关处理程序的很好的教程 HERE .

关于java - 通过 Controller 将数据从模型传递到 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12709488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com