0

我在我的简单 android 游戏中有两个类:myBaseObject、myMissile... 我想用 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();
    }

}

使用活动类开始游戏后,我在媒体播放器上看到 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): at 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/Process(15009): 发送信号。PID:15009 SIG:9

4

1 回答 1

0

根据您的问题,很明显您没有传递您的活动上下文。这就是为什么它给你空指针异常。

修改您的代码,例如 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 回答