2015-02-06 72 views
0

我正在試圖建立一個無限的飛行模擬器在處理中。我想像第一人稱視角飛行一個球體(行星)像衛星一樣,並用箭頭鍵控制方向。我不知道如何在沒有萬向節鎖的情況下設置相機。圍繞3D球體加工的軌道

這正是我想做的事:

Moving on 3D Sphere

任何想法如何實現這一目標?

回答

0

好飛行模擬器應該比這個更難,因爲在視頻您鏈接似乎字符(等相機「下面的」吧)實際上並沒有運行,代表着地球球體只是繞着它自己的中心,所以相機不動我想,這只是球體定位和簡單旋轉

如果你想要一個「飛行模擬器」與固定的高度上方的行星,它似乎是最簡單的方法完成它

0

你是對的。我想讓球體旋轉。這是我到目前爲止:

float rotationX = 0; 
float rotationY = 0; 
float velocityX = 0; 
float velocityY = 0; 

boolean[] keys = new boolean[255]; 

void setup(){ 
    size(500, 500, P3D); 
} 

void draw() { 
    background(150); 

    if(keys[LEFT]) { 
    velocityY += 0.04; 
    } 
    if(keys[RIGHT]) { 
    velocityY -= 0.04; 
    } 
    if(keys[UP]) { 
    velocityX += 0.04; 
    } 
    if(keys[DOWN]) { 
    velocityX -= 0.04; 
    } 

    translate(width/2, height/2 + 160, 325); 
    rotateX(radians(-rotationX)); 
    rotateY(radians(-rotationY)); 
    sphere(150); 

    rotationX += velocityX; 
    rotationY += velocityY; 
    velocityX *= 0.95; 
    velocityY *= 0.95; 
} 

void keyPressed() { 
    keys[keyCode] = true; 
} 

void keyReleased() { 
    keys[keyCode] = false; 
} 

所以主要問題是,X Y Z軸與球旋轉。逛完我的領域和這個例子比較球的行爲:

collinhover.github.io/kaiopua/

在這個例子中的軸系始終固定。我不知道如何更好地解釋它。