Как запретить игроку прыгать несколько раз подряд? ПигамеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как запретить игроку прыгать несколько раз подряд? Пигаме

Сообщение Anonymous »

Здравствуйте, я делаю платформу и настроил большинство вещей (движение и столкновение), но мне нужно сделать так, чтобы, когда мой игрок прыгает, ему приходилось ждать, пока он снова не упадет на землю, чтобы прыгнуть (я хочу удалить двойное прыжки)

Код: Выделить всё

#load images
bg_img = pygame.image.load('img/background1.jpg')
bg_img = pygame.transform.scale(bg_img, (1000,1000))
rect = bg_img.get_rect()
#class for player
class Player():
def __init__(self, x, y):
self.images_right = []
self.images_left = []
self.index = 0
self.counter = 0
for num in range(1,6):
img_right = pygame.image.load(f'img/guy{num}.png')
img_right = pygame.transform.scale(img_right, (40 , 80))
img_left = pygame.transform.flip(img_right,True,False) #flips right image on the x axis {true} and not y axis {false}
self.images_right.append(img_right)
self.images_left.append(img_left)
self.image = self.images_right[self.index]
self.rect = self.image.get_rect()
self.rect.x = x
self.rect.y = y
self.width = self.image.get_width()
self.height = self.image.get_height()
self.vel_y = 0
self.jumped = False
self.direction = 0

def update(self):
dx = 0
dy = 0
walk_cooldown = 5

#get keypresses
key = pygame.key.get_pressed()
if key[pygame.K_SPACE] and self.jumped == False:
self.vel_y = -15
self.jumped = True
if key[pygame.K_SPACE] == False:
self.jumped = False
if key[pygame.K_LEFT]:
dx -= 5
self.counter += 1
self.direction = -1
if key[pygame.K_RIGHT]:
dx += 5
self.counter += 1
self.direction = 1
if key[pygame.K_LEFT] == False and key[pygame.K_RIGHT] == False:
self.counter = 0
self.index = 0
if self.direction == 1:
self.image = self.images_right[self.index]
if self.direction == -1:
self.image = self.images_left[self.index]

#animation
if self.counter > walk_cooldown:
self.counter = 0
self.index += 1
if self.index >= len(self.images_right):
self.index = 0
if self.direction == 1:
self.image = self.images_right[self.index]
if self.direction == -1:
self.image = self.images_left[self.index]

#add gravity
self.vel_y += 1
if self.vel_y > 10:
self.vel_y = 10
dy += self.vel_y

#check for collision

for tile in world.tile_list:
#x direction collision
if tile[1].colliderect(self.rect.x + dx, self.rect.y, self.width, self.height):
dx=0

#y direction collision
if tile[1].colliderect(self.rect.x, self.rect.y + dy, self.width, self.height):
#check if below ground (jumping)
if self.vel_y = 0:
dy = tile[1].top - self.rect.bottom

#update player coordinates
self.rect.x += dx
self.rect.y += dy
выше приведен код, который, по моему мнению, важен для этого вопроса. Если вам нужен другой код, дайте мне знать.
Я относительно новичок, так что все поможет, спасибо !

Подробнее здесь: https://stackoverflow.com/questions/666 ... row-pygame
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Разрешить игроку прыгать только на земле Unity
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Разрешить игроку прыгать только на земле Unity
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Как заставить черепаху прыгать в игре?
    Anonymous » » в форуме Python
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Как заставить моего персонажа прыгать в 2D-играх с Java?
    Anonymous » » в форуме JAVA
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Как я могу сделать так, чтобы при нажатии кнопки прыжка он не продолжал прыгать еще дальше в воздух?
    Anonymous » » в форуме JAVA
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous

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