Hi all, I've been trying to rotate and move forward a tank in a game I'm
developing but something strange happens.
When the tank is rotating and moving it tends to move to the up-left corner
and I don't know why.
Anyone knows what's happen?
Thank you all!
Here is the code:
def do_actions(self):
all_keys = pygame.key.get_pressed()
if all_keys[K_w]:
self.dir = +1
self.tank_move()
elif all_keys[K_s]:
self.dir = -1
self.tank_move()
if all_keys[K_a]:
self.rot_dir = +1
self.tank_rotate()
elif all_keys[K_d]:
self.rot_dir = -1
self.tank_rotate()
def tank_move(self):
dx = sin(self.angle * pi/180) * self.dir * self.speed
dy = cos(self.angle *pi/180) * self.dir * self.speed
add_pos = (self.dir * self.speed * dx, self.dir * self.speed * dy)
self.rect.centerx += dx
self.rect.centery += dy
def tank_rotate (self):
self.angle = self.angle + self.vel_rot * self.rot_dir
aux_center = self.rect.center
self.image = pygame.transform.rotate(self.copy, self.angle)
self.rect = self.image.get_rect()
self.rect.center = aux_center
self.rot_dir = 0