0

私の単純な Android ゲームには、myBaseObject、myMissile という 2 つのクラスがあります。Mediaplayer でサウンドの myMissile クラスを追加したいと考えています。

public class myBaseObject {
    MediaPlayer shoot;
    Context context;

    // ...

    public void myShoot()
    {
        shoot = MediaPlayer.create(context, R.raw.laser_effect);
        shoot.setVolume(100,100);       
        shoot.start();
    }
}


// .......

public class myMissile extends myBaseObject {


    public Missile( Bitmap bitmap, float x, float y, double velocity,
        double direction) {

        //...

        myShoot();
    }

}

アクティビティ クラスでゲームを開始した後、mediaplayer で NullPointerException が表示され、ゲームがクラッシュします... どうすればこの問題を解決できますか? 私は非常に多くの方法を試しました..しかし、私は解決できませんでした..

これは私の LogCat 02-02 12:37:43.496: E/AndroidRuntime(15009): at com.mycorp.myapp.myMissile.(myMissile.java:41) です

02-02 12:37:43.496: E/AndroidRuntime (15009): com.mycorp.myapp.MissileHandler.update (MissileHandler.java:75) で

02-02 12:37:43.496: E/AndroidRuntime (15009): com.mycorp.myapp.GameEngine.update (GameEngine.java:159) で

02-02 12:37:43.496: E/AndroidRuntime (15009): com.mycorp.myapp.GameThread.run (GameThread.java:51) で

02-02 12:38:32.811: I/プロセス (15009): 信号を送信しています。PID: 15009 SIG: 9

4

1 に答える 1

0

あなたの質問によると、アクティビティのコンテキストを渡していないことは明らかです。そのため、nullpointer 例外が発生します。

beloeがあなたを助けることができるようにコードを変更してください

public class myBaseObject {
    MediaPlayer shoot;
    Context context;

     public void myShoot(Context ctx){
            this.context = ctx;
            shoot = MediaPlayer.create(context, R.raw.laser_effect);

            shoot.setVolume(100,100);

            shoot.start();

            }
}

public class myMissile extends myBaseObject {

//Context ctx
  public Missile( Bitmap bitmap, float x, float y, double velocity,
    double direction) {
.
.
.


   myShoot(this);

  }
于 2013-02-02T09:57:24.757 に答える