我正在开发一款游戏,包括测量加速度计值并根据这些值操纵角色的位置。我只使用X轴。我在我的主要活动中启动了我的加速度计管理器,但我需要在另一个类中使用这些值。显然,这些价值观在不断变化。我怎么能将这些值传递给我的GameView类?
答案 0 :(得分:0)
您可以将它们保存为活动的静态成员,或者每次更改时将它们传递给GameView类(新值)
答案 1 :(得分:0)
如果您使用过sensorlistener,您可能会考虑将该逻辑移动到GameView类。不过不看你的代码就不完全确定。你有样品吗?
答案 2 :(得分:0)
为什么不用Android方式呢? :)
当您实现触摸侦听器时,您可以执行以下设置:
myView.setOnTouchlistener(this):
这告诉视图在触摸时给你回电话。以下是如何做自己的事情:
定义一个接口并使用回调让该类知道值已更改。
public interface AccelerometerUpdateListener {
void onUpdate(int arg1, string arg2); ..<----add arguments you want to pass back
}
在您的活动中:
public class MainActivity extends Activity implements AccelerometerUpdateListener {
ArrayList<AccelerometerUpdateListener > listeners = new ArrayList<AccelerometerUpdateListener >();
...
@Override
public void onCreate(Bundle savedInstanceState)
{
...
myGameClass.setResponseReceivedistener(this);
...
}
public void setUpdateListener(AccelerometerUpdateListener listener){
if (!listeners.contains(listener){
listeners.add(listener);
}
}
public void removeUpdateListener(AccelerometerUpdateListener listener){
if (listeners.contains(listener){
listeners.remove(listener);
}
}
更新值时
for (AccelerometerUpdateListener listener:listeners){
listener.onUpdate(arg1, arg2);
}
在接收课程中:
public class MyGameClass implements AccelerometerUpdateListener {
...
@Override
public void onUpdate(int arg1, string arg2){
// do whatever you need to do
}
全部来自记忆所以请原谅错别字。