【问题标题】:Sprite collision AndEngine精灵碰撞与引擎
【发布时间】:2015-05-13 04:13:12
【问题描述】:

我想更新我的精灵的位置。但它正在向下移动然后稍微跳跃然后停止。它甚至不会向左或向右移动。我希望它根据倾斜向左、向右、向上和向下移动。 这是我的代码:-

Scene scene = new Scene();
        scene.setBackground(new Background(1.09804f, 0.6f, 3.0f));
        playerSprite = new AnimatedSprite(10, 10, 48, 64, pTextureRegion, getVertexBufferObjectManager());
        playerSprite.animate(300);

    PhysicsWorld physicsWorld = new PhysicsWorld(new Vector2( 0, SensorManager.GRAVITY_MOON), false);

    FixtureDef PLAYER_FIX = PhysicsFactory.createFixtureDef(10.0f, 0.5f, 0.0f);

    Body playerBody = PhysicsFactory.createBoxBody(physicsWorld, playerSprite, BodyType.DynamicBody, PLAYER_FIX);

    physicsWorld.registerPhysicsConnector(new PhysicsConnector(playerSprite, playerBody, true, false));

    scene.attachChild(playerSprite);

【问题讨论】:

  • 有人帮忙吗??????

标签: animation sprite andengine


【解决方案1】:

在你的

PhysicsWorld physicsWorld = new PhysicsWorld(new Vector2( 0, SensorManager.GRAVITY_MOON), false);

将 SensorManager.Gravity_Moon 更改为 .Sensor_Orientation,它会为所有对象产生恒定的重力下拉。我不确定您必须选择哪一个,但这是您的问题。如果我告诉你的那个不起作用,请尝试其他一些 .Sensor_xxx。

【讨论】:

  • 你不应该使用重力,而是传感器方向,但我猜你已经想通了
【解决方案2】:

public void onAccelerationChanged(AccelerationData pAccelerationData) { // TODO Aiuto-generated method stub Vector2 gravity = Vector2Pool.obtain(pAccelerationData.getX(), pAccelerationData.getY()); this.physicsWorld.setGravity(gravity);; Vector2Pool.recycle(gravity);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多