2011-12-22 3 views
3

私はそこに質問があります。 どのように私は重力と適切に歩くことができる文字を作る、どのような機能を使用する必要がどのように私は灯具を定義するのですか?そして私はbox2d物理学の世界が必要ですか(私はタイルマップを使用しています)? できる場合は、andengineとmarioのような2次元サイドスクロールプラットフォーマーを行う方法を教えてください。Andengine 2dサイドローラーのようなマリオ

私は何をしようとしている私のコード:

// Character: 
    charactersprite = new Sprite(40, 0, this.character); 
    charactersprite.setScaleX(0.65f); 

    this.mScene.setOnSceneTouchListener(this); 

    // PHYSICS 
    final FixtureDef characterfictur = PhysicsFactory.createFixtureDef(0, 0f,0.5f); 


    this.mScene.registerUpdateHandler(this.mPhysicsWorld); 

    final Body body = PhysicsFactory.createBoxBody(this.mPhysicsWorld, charactersprite, BodyType.DynamicBody, characterfictur); 

    this.mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(charactersprite, body, true, false)); 
    mScene.attachChild(charactersprite); 

    createUnwalkableObjects(mTMXTiledMap); 
    final PhysicsHandler physicsHandler = new PhysicsHandler(charactersprite); 
    charactersprite.registerUpdateHandler(physicsHandler); 


    // HUD 
    HUD my = new HUD(); 
    Sprite forward = new Sprite(50, CAMERA_HEIGHT - 170, forwardr){ 
     @Override 
     public boolean onAreaTouched(TouchEvent pEvent, float pX, float pY){ 
      if(!pEvent.isActionUp()){ 
       charactersprite.getTextureRegion().setFlippedHorizontal(false); 

      body.setLinearVelocity(new Vector2(CHAR_MOVING_SPEED,body.getLinearVelocity().y)); // Don't look at there 
      //body.applyLinearImpulse(new Vector2(2,0), body.getPosition()); 

      }else{ 
       //body.applyLinearImpulse(new Vector2(0,0), body.getPosition()); 
       physicsHandler.setVelocity(0, 0); 
       body.setLinearVelocity(new Vector2(0,body.getLinearVelocity().y)); // Don't look at there 
      } 
      return false; 

         } 
    }; 

そして少し前方:

private void createUnwalkableObjects(TMXTiledMap map){ 
    // Loop through the object groups 

    for(final TMXObjectGroup group: map.getTMXObjectGroups()) { 

      //if(group.getTMXObjectGroupProperties().containsTMXProperty("Zeme", "true")){ 
        // This is our "wall" layer. Create the boxes from it 

        for(final TMXObject object : group.getTMXObjects()) { 

          final Rectangle rect = new Rectangle(object.getX(), object.getY(),object.getWidth(), object.getHeight()); 
          final FixtureDef boxFixtureDef = PhysicsFactory.createFixtureDef(0, 0,1f); 
          PhysicsFactory.createBoxBody(this.mPhysicsWorld, rect, BodyType.StaticBody, boxFixtureDef); 
          rect.setVisible(false); 
          mScene.attachChild(rect); 
        } 
      //} 
    } 

}

だから、それが正常に動作しませんでした。だから私は間違っているの?私を助けてください。 ありがとうございます!あなたが必要となります

+0

をあなたはおそらくGameDevサイト(gamedev.stackexchange.com) – ashes999

+0

上の任意の答えを、これを尋ねるべき?私を助けてください! –

答えて

4

もの:

  • BoundCamera(マップの境界を作るために)
  • 追跡エンティティ(プレイヤーなので、カメラがあなたのエンティティに従います)
  • 少し弾力性FixtureDef(防ぐために、プレイヤーが地上で突然停止する)
  • スタティックオブジェクト(壁など)のボックスボディを作成する
  • jump - simply use setLinearVelocity

上記のすべての「機能」には、その例があります。単純なチェックとエンジンの例です。このスレッドで

、私はこのようなゲームをコーディングする方法についていくつかのより多くのヒントを提供:CLICK

関連する問題