Загрузка...

Помощь с PyGame

Тема в разделе Python создана пользователем koody_inactive2903838 27 мар 2020. 216 просмотров

  1. koody_inactive2903838
    koody_inactive2903838 Автор темы 27 мар 2020 23 6 янв 2020
    Персонаж не прыгает по нажатию на пробел!! Помогите пожалуйста)

    Код
    import pygame

    # Инициализация игры
    pygame.init()

    # Дисплей игры
    display_width = 800
    display_height = 600
    display = pygame.display.set_mode((display_width, display_height))

    # Персонаж
    user_width = 60
    user_height = 100
    usr_x = display_width // 3
    usr_y = display_height - user_height - 100

    # Анимациа прыжка
    make_jump = False

    # Имя игры
    pygame.display.set_caption('Armenian Dino')

    # Иконка игры
    icon = pygame.image.load('dino-icon.png')
    pygame.display.set_icon(icon)


    # Цикл игры
    def run_game():
    global make_jump
    game = True

    while game:
    for event in pygame.event.get():
    if event.type == pygame.QUIT:
    pygame.quit()
    quit()
    keys = pygame.key.get_pressed()
    if keys[pygame.K_SPACE]:
    make_jump = True
    if make_jump:
    jump()


    # Обновление цикла игры
    clock = pygame.time.Clock()

    # Цвет дисплея
    display.fill((255, 255, 255))
    # Рисование персонажа
    pygame.draw.rect(display, (247, 240, 22), (usr_x, usr_y, user_width, user_height))
    pygame.display.update()
    clock.tick(60)


    # Функция jump()
    def jump():
    global usr_y, jump_counter, make_jump
    if jump_counter >= -30:
    usr_y -= jump_counter
    jump_counter -= 1
    else:
    jump_counter = 30
    make_jump = False


    # Счетчик прыжков
    jump_counter = 30

    run_game()
     
  2. Tmpvar
    Tmpvar 27 мар 2020 сосу оила 27 29 июл 2019
    koody_inactive2903838, Если у тебя изначально имеется булево значение False (make_jump = False), то зачем ты в функции (def jump) используешь тоже самое? Надо поменять саму функцию прыжка
     
  3. Kyber_Zero
    Kyber_Zero 30 мар 2020 Dead Inside 5 21 янв 2018
    Не код, а помойка. Либо пиши все под одну функцию либо исползуй их по-минимуму иначе ничего не понятно что\где\за что отвечает.
    --- Сообщение объединено с предыдущим 30 мар 2020
    + у тебя игра не идет ибо нет апдейта в цикле игры, возможно в этом проблема
     
    1. koody_inactive2903838 Автор темы
      Kyber_Zero, Братик ну не надо же так на чела гнать который при том новичок в этом деле. Ну и за ответ спасибо!
    2. Kyber_Zero
      koody_inactive2903838, Я понимаю что новичек и тд, но код реально тяжело разобрать)
    3. koody_inactive2903838 Автор темы
      Kyber_Zero, Так может скажешь как надо все писать чтобы было приятно для глаз?
Загрузка...
Top