beim horizontalen und verticalen verschieben klappt die kollisionsabfrage
nur wie mach ich das beim rotieren
woher weis ich in welche richtung ich freifahren muss
und ob eine drehung überhaupt möglich ist zb im TUNNEL kann ich nicht drehen !!
blocktilelist enthält alles was nicht befahrbar ist
Code: Alles auswählen
def move_vertical(self, moving_vertical):
self.rect.move_ip(0 ,moving_vertical*self.speed)
if self.rect.collidelist(blocked_tile_list) != -1:
self.rect.move_ip(0 ,(moving_vertical*-1)*self.speed)
self.rect = self.rect.clamp(PLAYRECT)
self.frame += 1
self.imind = self.frame/self.animcycle%2
self.image = self.images[self.imind]
def move_horizontal(self, moving_horizontal):
self.rect.move_ip(moving_horizontal*self.speed, 0)
if self.rect.collidelist(blocked_tile_list) != -1:
self.rect.move_ip((moving_horizontal*-1)*self.speed, 0)
self.rect = self.rect.clamp(PLAYRECT)
def rotate(self,rotate_left,rotate_right):
center = self.rect.center
if rotate_left == 2:
self.angle += 5
if rotate_right == 2:
self.angle -= 5
if self.angle == 360 or self.angle == 0:angle = 0
self.images[0] = pygame.transform.rotate(self.original_a,self.angle)
self.images[1] = pygame.transform.rotate(self.original_b,self.angle)
self.rect = self.images[0].get_rect()
self.rect.center = center