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()

关于它可能是什么的任何想法?

4

1 回答 1

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))
于 2013-05-09T03:52:55.277 回答