加速度計の値を測定し、それらの値に基づいてキャラクターの位置を操作するゲームに取り組んでいます。私はX軸でのみ作業しています。メイン アクティビティで加速度計マネージャーを開始しましたが、これらの値を別のクラスで使用する必要があります。明らかに、これらの値は常に変化しています。これらの値を GameView クラスに渡すにはどうすればよいですか?
質問する
198 次
3 に答える
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
}
全て記憶ですので誤字脱字はご容赦ください。
于 2013-02-10T22:31:40.830 に答える
0
センサーリスナーを使用したことがある場合は、そのロジックを GameView クラスに移動することを考えるかもしれません。ただし、コードを見ないと完全にはわかりません。サンプルはありますか?
于 2013-02-10T22:16:27.753 に答える
0
それらをアクティビティの静的メンバーとして保存するか、変更があるたびに GameView クラスに渡すことができます (新しい値)
于 2013-02-10T22:04:23.513 に答える