2012-04-03 18 views
1

私は自分のゲームにLibGDXを使用しています。マウスのようにプレーヤーの「頭」を動かしたいと思います。 Minecraftのように。どうすればこれを達成できますか?私はちょうどレンダリングされているものをglRotateFするヨーとピッチ値でちょっとした作業をしましたが、右に曲がった後マウスはウィンドウの外に移動します(明らかに)。私はロボットクラスを使ってポインタの位置を画面の中央にリセットしようとしましたが、ナビゲーションはほとんど不可能です。マウスの操作方法は?

は、ここに私のプレーヤーのクラスです:

package com.amzoft.gdxracingtestgamething; 

import com.badlogic.gdx.Gdx; 
import com.badlogic.gdx.InputProcessor; 
import com.badlogic.gdx.graphics.GL11; 

public class Player implements InputProcessor{ 

    int pitch = 0; 
    int yaw = 0; 

    public Player() 
    { 

    } 

    public void render() 
    { 
     GL11 gl = Gdx.gl11; 
     gl.glRotatef(-yaw, 0, 1, 0); 
     gl.glRotatef(-pitch, 1, 0, 0); 
    } 

    /*....a ton of unused implemented methods*/ 

    int xBefore = 0; 
    int yBefore = 0; 

    @Override 
    public boolean touchMoved(int x, int y) 
    { 
     if(xBefore<x-3) 
     { 
      yaw += 1; 
     } 
     if(xBefore>x+3) 
     { 
      yaw -= 1; 
     } 
     if(yBefore<y-3) 
     { 
      pitch -= 1; 
     } 
     if(yBefore>y+3) 
     { 
      pitch += 1; 
     } 
     if(yaw > 90)yaw = 90; 
     if(yaw < -90)yaw = -90; 
     if(pitch > 90)pitch = 90; 
     if(pitch < -90)pitch = -90; 
     xBefore = x; 
     yBefore = y; 
     return true; 
    } 

    @Override 
    public boolean scrolled(int amount) 
    { 
     return false; 
    } 

} 

イムソリューションは非常に明白であれば申し訳ありませんが、私は3Dゲームの開発とLibGDXに非常に新しいです。

+0

誰でもこれを達成する方法を知っていますか?私はそれがおそらく私が理解していない三角法を含むことを知っている(まだ)... – Nik

答えて

1

三角法:) 私はgluLookAtを使って、カメラがヨーとピッチのサインコサインとネガティブコサインから計算された座標を見るようにしました。それはかなりうまくいく。

関連する問題