0

我对 AndEngine 和 Android 开发很陌生。

所以这是我的问题:我遵循了本网站单元第 10 部分上的完整游戏教程:http: //www.matim-dev.com/full-game-tuto ... art-1.html 也许你们中的一些人知道。我们有一个 GameActivity 扩展了作为游戏主类的 BaseGameActivity,我们还有一个 GameScene 扩展了 BaseGameActivity。

现在,我想实现 AndEngine 示例中的 PhysicsJumpExample.java 中的代码,看看它是如何工作的。除了 Acceleration 部分外,一切正常,因为据我所知,我需要扩展 BaseGameActivity 来执行此操作: this.enableAccelerationSensor(this);

但是我如何让加速也能在 GameScene 中工作呢?我尝试了不同的方法,但没有任何效果:( Sprite 卡在屏幕上。

有人可以帮助/告诉我如何在那里实现吗?

编辑:

首先,我在 AndEngine 示例和教程的帮助下进行了一些编码。但是只有一项活动可以管理所有内容,所以不是很好。

[https://dl.dropboxusercontent.com/u/12628048/Activity.java][1]

这完全没问题!但后来我想把它放在一个更好的架构中。我在这一边找到了教程并一直遵循它直到第 10 章:http: //www.matim-dev.com/full-game-tutorial---part-1.html 现在我一直在处理加速度计:

  public class GameActivity extends BaseGameActivity implements IAccelerationListener
  {

    private Camera camera;

    public static GameActivity instance;

    public PhysicsWorld mPhysicsWorld;

    @Override
    public EngineOptions onCreateEngineOptions() 
    {
        camera = new Camera(0, 0, 768, 1280);
        EngineOptions engineOptions = new EngineOptions(true, 
                                                        ScreenOrientation.PORTRAIT_FIXED,
                                                        new RatioResolutionPolicy(768, 1280),                                                      
                                                        this.camera);

        engineOptions.getAudioOptions().setNeedsMusic(true).setNeedsSound(true);
        engineOptions.setWakeLockOptions(WakeLockOptions.SCREEN_ON);

        mPhysicsWorld = new PhysicsWorld(new Vector2(0, SensorManager.GRAVITY_EARTH), false); 

        return engineOptions;
    }
  }

我正在那里创建 PhysicsWorld 并在那里启用 Accelerometer。

我在我的 GameScene 方法中调用它createPhysics(),但不知何故,Object我创建的内容停留在屏幕上并且根本没有移动。

mPhysicsWorld = GameActivity.getSharedInstance().mPhysicsWorld;
4

0 回答 0