2013-05-09 59 views
0

我正試圖通過引用角色來移動我的世界。它適用於度數爲零(玩家前進)但在其他地方混亂。當它是90度時,玩家向後而不是向前。我覺得我正處在正確的軌道上,而我只是搞砸了一些小事。openGL向前移動,旋轉角度爲0度,向後角度爲90度

這裏是我的goForward()函數

rad = angle * (pi/180) 
    world_loc = (world_loc[0] + speed * sin(rad), world_loc[1], world_loc[2] + speed* cos(rad)) 

方程那麼這就是我如何顯示我的世界

glPushMatrix() 
    glRotate(angle, 0,1,0) 
    glTranslatef(world_loc[0],world_loc[1],world_loc[2]) 
    for x in range(len(world)): 
     for y in range(len(world[0])): 
     for z in range(len(world[0][0])): 
      if(world[x][y][z] != None):    
       glPushMatrix() 
       glTranslatef(x*2,y*2,z*2) 
       glCallList(world[x][y][z]) 
       glPopMatrix() 
    glPopMatrix() 

它可能是什麼有什麼想法?

回答

0

公式不正確。這裏是正確的:

def moveForward(): 
    global angle, angle_speed, world_loc, maxSize 
    rad = (angle+90) * (pi/180) 
    world_loc = (world_loc[0] - speed * cos(rad), world_loc[1], world_loc[2] - speed * sin(rad))