我对 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;