Я делал небольшую стрелялку и проверил, хорошо ли движется персонаж.
и есть свойство 'angle' объекта 'james' класса 'hero' для перемещения персонажа в любое место на определенном расстоянии.
, но, хотя очень очевидный код, меняющий угол, он идет на один угол, который я дал, когда создавал этот объект, и не выдает никакой ошибки
кажется, что одно из движений, связанных с кодом, не сработало правильно. каждая часть моего кода перемещает объекты
for event in pygame.event.get():
'''some other codes'''
elif event.type==KEYDOWN:
if not event.key in keys:
keys.append(event.key)
elif event.type==KEYUP:
keys.remove(event.key)
class moving_man():
def __init__(self,hp,speed,angle,
s_angle,rect,weapon): #체력 ,이동속도 ,움직이는 각도 ,사격 각도 ,크기및 위치 ,패턴 ,무기
self.hp=hp
self.speed=speed
self.rect=rect
self.angle=angle
self.s_angle=s_angle
self.weapon=weapon
def move(self): #움직이기
self.rect.centerx+=math.cos(self.angle)*self.speed
self.rect.centery-=math.sin(self.angle)*self.speed
'''some other codes'''
class hero(moving_man):
def __init__(self,hp,speed,angle,
s_angle,rect,weapon):
super().__init__(hp,speed,angle,
s_angle,rect,weapon)
def pattern(self):
if len(keys)==1:
if keys[0]==K_w:
self.angle=math.radians(90)
elif keys[0]==K_a:
self.angle=math.radians(180)
elif keys[0]==K_s:
self.angle=math.radians(270)
elif keys[0]==K_d:
self.angle=math.radians(0)
self.move()
elif len(keys)>=2:
if K_w and K_a in keys[:2]:
self.angle=math.radians(135)
elif K_a and K_s in keys[:2]:
self.angle=math.radians(225)
elif K_s and K_d in keys[:2]:
self.angle=math.radians(315)
elif K_d and K_w in keys[:2]:
self.angle=math.radians(45)
self.move()