Двойной прыжок спрайта Pygame

Итак, я относительно новичок в pygame и начал отходить от базового руководства. Я хочу, чтобы спрайт мог совершать двойной прыжок, и я попытался добавить переменную и т. Д., Чтобы я мог изменить его на тройной прыжок, если они в конечном итоге получат усиление или что-то в этом роде, и я могу легко это изменить, но я столкнувшийся с трудностями. P.S: Некоторые комментарии могут не иметь смысла, поскольку некоторый код был удален, но они все еще полезны для меня.

x = 200 y = 450 width = 64 height = 66 vel = 5 screenwidth = 500 isjump = True #whether our character is jumping or not jumpcount = 10 maxjump = 2 #double jump maxjumpcount = 0 #we must keep track of direction, are they moving and how many steps for frames left = False right = False walkcount = 0 def redrawGameWindow(): global walkcount window.blit(background,(0,0)) #loads bg at 0,0 if walkcount +1 >= 15: #15 as we have 5 sprites, which will be displayed 3 times per second walkcount = 0 if left: window.blit(walkleft[walkcount//3],(x,y))#excludes remainders walkcount+=1 elif right: window.blit(walkright[walkcount//3],(x,y)) walkcount+=1 elif isjump: window.blit(jumpp,(x,y)) walkcount+=1 else: window.blit(char,(x,y)) pygame.display.update() #now to write main loop which checks for collisions, mouse events etc run = True while run: #as soon as we exit this, the game ends #main loop, gonna check for collision clock.tick(15) #frame rate, how many pics per second, games r just a ton of pictures running very quickly #now we check for events for event in pygame.event.get(): #gets a list of all events that happened print(event) #can go through these events& check if they’ve happened if event.type == pygame.QUIT: #if we try to exit the window run = False through the use of events. If a key has been pressed, we change the x & y of our shape #if we want it to continuely move, we need to get a list keys = pygame.key.get_pressed() #if these are pressed or held down, execute whatever is under these. if keys[pygame.K_LEFT] and x > vel-vel: #if pressed we move our character by the velocity in whatever direction via grid which works from the TOP LEFT of screen #0,0 is top left #vel-vel to equal 0, makes border better x -= vel left = True right = False elif keys[pygame.K_RIGHT] and x < screenwidth — width: #as the square co ord is top left of it x+= vel right = True left = False else: right = False left = False walkcount = 0 #JUMP CODE if not(isjump): # still lets them move left and right if keys[pygame.K_SPACE]: isjump = True #quadratic function for jump right = False left = False walkcount = 0 maxjumpcount+=1 if maxjumpcount > 2: isjump = False else: while jumpcount >= -10 and maxjumpcount < 2: #moving slower, then faster, hang, then go down pygame.time.delay(12) y -= (jumpcount*abs(jumpcount)) / 2#1.35? #squared, 10 ^2, /2, jumpcount = jump height jumpcount -= 1 else: #jump has concluded if it reaches here isjump = False jumpcount = 10 maxjumpcount = 0 #double jump resets once jump ends redrawGameWindow()

Извиняюсь за довольно жалкую попытку. Мы будем очень благодарны за любые другие предложения, так как мне еще так много предстоит узнать. Спасибо.

idownvotedbecau.se/unclearquestion — в чем именно проблема? Вы получаете сообщение об ошибке / исключении? Если не то, что происходит, а что вы хотите / ожидаете?   —  person Mattt720    schedule 05.02.2020

Код перехода, который я использовал, не совсем соответствовал моим намерениям. Я решил это, используя переменную, которая ограничивает пользователя тем, сколько раз он может нажимать пробел и прыгать, пока снова не коснется пола, и мне пришлось полностью заново выполнить функцию прыжка. Однако спасибо, я поработаю над своей ясностью в следующем посте.   —  person Mattt720    schedule 07.02.2020

Источник: ledsshop.ru

Стиль жизни - Здоровье!