Форум программистов, компьютерный форум, киберфорум
Python: PyGame
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
3 / 3 / 1
Регистрация: 22.08.2018
Сообщений: 18

Я написал код для игры на pygame, но игрок почему то прыгает полько один раз

27.09.2018, 20:53. Показов 3357. Ответов 2

Студворк — интернет-сервис помощи студентам
Почему он так делает? Вроде все правильно, а прыгает только один раз. Точнее, я нажимаю на пробел(клавиша для прыжка), игрок прыгает, приземляется, и больше никак не реагирует на нажатие на пробел. Но двигаться может.

Вот сам код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import pygame 
 
pygame.init()
 
win = pygame.display.set_mode((1280, 640))
 
pygame.display.set_caption("Игра")
 
walkLeft = [pygame.image.load('Walk (1) left.png'), pygame.image.load('Walk (2) left.png'), pygame.image.load('Walk (3) left.png'), pygame.image.load('Walk (4) left.png'), pygame.image.load('Walk (5) left.png'), pygame.image.load('Walk (6) left.png'), pygame.image.load('Walk (7) left.png'), pygame.image.load('Walk (8) left.png'), pygame.image.load('Walk (9) left.png'), pygame.image.load('Walk (10) left.png')]
walkRight = [pygame.image.load('Walk (1).png'), pygame.image.load('Walk (2).png'), pygame.image.load('Walk (3).png'), pygame.image.load('Walk (4).png'), pygame.image.load('Walk (5).png'), pygame.image.load('Walk (6).png'), pygame.image.load('Walk (7).png'), pygame.image.load('Walk (8).png'), pygame.image.load('Walk (9).png'), pygame.image.load('Walk (10).png'), ]
bg = pygame.image.load('bg.png')
playerStand = [pygame.image.load("Idle (1).png"), pygame.image.load("Idle (2).png"), pygame.image.load("Idle (3).png"), pygame.image.load("Idle (4).png"), pygame.image.load("Idle (5).png"), pygame.image.load("Idle (6).png"), pygame.image.load("Idle (7).png"), pygame.image.load("Idle (8).png"), pygame.image.load("Idle (9).png"), pygame.image.load("Idle (10).png"), ]
 
clock = pygame.time.Clock()
 
x = 50
y = 425
width = 542
height = 474
speed = 5
 
isJump = False
jumpCount = 10
 
left = False
right = False
animCount = 0
 
run = True
 
def drawWin():
    global animCount
    win.blit(bg, (0, 0))
    if animCount + 1 >= 30:
        animCount = 0
    if left:
        win.blit(walkLeft[animCount// 5], (x, y))
        animCount += 1
    if right:
        win.blit(walkRight[animCount // 5], (x, y))
        animCount += 1
    if not(left) and not(right):
        win.blit(playerStand[animCount // 5], (x, y))
        animCount += 1
    pygame.display.update()
    
while run:
    clock.tick(30)
 
    drawWin()
 
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
 
    keys = pygame.key.get_pressed ()
    if keys[pygame.K_LEFT] and x > 5:
        x -= speed
        left = True
        right = False
    elif keys[pygame.K_RIGHT] and x < 1280 - width - 5:
        x += speed
        left = False
        right = True
    else: 
        left = False
        right = False
    if not(isJump):
        if keys[pygame.K_UP] and y > 5:
            y -= speed
        if keys[pygame.K_DOWN] and y < 640 - height - 15:
            y += speed
        if keys[pygame.K_SPACE]:
            isJump = True
    else:
        if jumpCount >= -10:
            if jumpCount < 0:
                y += (jumpCount ** 2) / 2
            else:    
                y -= (jumpCount ** 2) / 2
            jumpCount -= 1
        else:
            isJump = False
            jumpCoun = 10
            
pygame.quit()
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.09.2018, 20:53
Ответы с готовыми решениями:

При зажатии кнопки игрок прыгает несколько раз
Здравствуйте подскажите пожалуйста, как сделать так чтобы при зажатии ui кнопки игрок прыгал только один раз, а не несколько. public...

При зажатии кнопки игрок прыгает несколько раз
Здравствуйте подскажите пожалуйста, как сделать так чтобы при зажатии ui кнопки игрок прыгал только один раз, а не несколько.public class...

python.pygame Если кто то разгадает загадку почему у меня персонаж сам прыгает буду очень благодарен
import pygame import random pygame.init() displ_x = 800 displ_y = 600 win = pygame.display.set_mode((displ_x, displ_y)) ...

2
 Аватар для ДИМОНИЧ
16 / 10 / 7
Регистрация: 15.04.2018
Сообщений: 34
Записей в блоге: 1
27.09.2018, 22:29
А можно и картинки в студию, а тои посмотреть на сие чудо не получается?)
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
27.09.2018, 22:58
Лучший ответ Сообщение было отмечено Артур26 как решение

Решение

Очепятка в 84 строке

Python
1
jumpCoun = 10
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.09.2018, 22:58
Помогаю со студенческими работами здесь

Почему приведенный код работает один раз?
path=&quot;База\\Шаблон.mdb&quot;; TMemoryStream * T=new TMemoryStream(); T-&gt;LoadFromFile(path.c_str());

Почему код запускается только один раз?
Всем привет. Кто знает почему этот код запускается только 1 раз? $(function() { $(&quot;#button1&quot;).click(function() { ...

Код на заполнение Word срабатывает только один раз. Почему?
Код на заполнение Word срабатывает только один первый раз. Потом нужно выйти-зайти в базу чтобы снова он сработал. Иначе возникает ошибка...

Почему данный код показывает сообщение о движении мышки, только один раз?
Почему данный код показывает сообщение о движении мышки, только один раз? #include &quot;mainwindow.h&quot; #include...

Один раз написал и обращайся, петли синтаксиса
Всем привет! Тренируюсь в написании программы выполняющей несколько функций, а именно: Генерирует пароль заданной пользователем длины,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru