Изображение вращается в направлении, противоположном телу пимункаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Изображение вращается в направлении, противоположном телу пимунка

Сообщение Anonymous »


Я пытаюсь создать простую файтинг-игру, в которой вашим персонажем будет рыба. Я относительно новичок в pymunk и практически не имею опыта вращения спрайтов.

это мой код:
__docformat__ = "reStructuredText" импортировать случайный импорт математики импортировать pygame импортировать пимунка импортировать pymunk.pygame_util из импорта pymunk Vec2d защита основной(): pygame.init() экран = pygame.display.set_mode((1067, 600)) часы = pygame.time.Clock() работает = Истина прямой = 0 ### Физика пространство = pymunk.Space() пространство.гравитация = (0,0, 900,0) draw_options = pymunk.pygame_util.DrawOptions (экран) рыба = pygame.image.load('fish.png') ### стены и земля static_lines = [ pymunk.Segment(space.static_body, (0, 550), (1067, 550), 10), pymunk.Segment(space.static_body, (0, 0), (0, 550), 10), pymunk.Segment(space.static_body, (1067, 0), (1067, 550), 10) ] для строки в static_lines: линия.эластичность = 0,7 линия.группа = 1 линия.трение = 1000 space.add(*static_lines) fp = [(7, -10), (-7, -10), (-30, -7),(-40, 0), (-30, 7), (-7, 10), (7, 10), (40, 0)] масса = 100 момент = pymunk.moment_for_poly(масса, fp) playerbody = pymunk.Body(масса, момент) playerbody.position = 533, 400 playershape = pymunk.Poly(playerbody, fp) space.add(тело игрока, форма игрока) во время бега: для события в pygame.event.get(): если event.type == pygame.QUIT: работает = Ложь elif event.type == pygame.KEYDOWN и event.key == pygame.K_ESCAPE: работает = Ложь elif event.type == pygame.KEYDOWN и event.key == pygame.K_a: прямой -= 1 elif event.type == pygame.KEYDOWN и event.key == pygame.K_d: прямой += 1 elif event.type == pygame.KEYUP и event.key == pygame.K_a: прямой = 0 elif event.type == pygame.KEYUP и event.key == pygame.K_d: прямой = 0 elif event.type == pygame.KEYDOWN и event.key == pygame.K_SPACE: playerbody.apply_impulse_at_world_point( (0,-40000), (playerbody.position[0], playerbody.position[1])) ) если прямой > 1: прямой = 1 если прямой < -1: прямой = -1 если прямой == 1: playerbody.apply_force_at_local_point((200000, 0), (0, 0)) playerbody.apply_force_at_local_point((0, -2900), (-30, 0)) если прямой == -1: playerbody.apply_force_at_local_point((-200000, 0), (0, 0)) playerbody.apply_force_at_local_point((0, -2900), (30, 0)) ### Очисти экран screen.fill(pygame.Color("белый")) ### Рисуем что-нибудь space.debug_draw(draw_options) ### Обновить физику дт = 1,0/60,0/5,0 для x в диапазоне (5): пространство.шаг(дт) angular_grades = math.grades(playerbody.angle) Rotad_logo_img = pygame.transform.rotate(рыба, угол_градусов) смещение = Vec2d(*rotated_logo_img.get_size()) / 2 #playershape = playershape - offset
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»