Python 我们如何让我们的玩家在游戏中跳跃
我想让玩家跳跃大约4 Y,但无法做到。Python 我们如何让我们的玩家在游戏中跳跃,python,pygame,Python,Pygame,我想让玩家跳跃大约4 Y,但无法做到。 请告诉我怎么做,如果告诉任何函数,请告诉我它是什么以及如何做的,因为我是pygame新手。您可以在地板上使用类似的变量。如果它在地板上(使用碰撞),那么它允许程序开始跳跃(使用另一个变量,如y\u speed。我通常让玩家这样跳跃: y\u速度=0 在地板上=错误 #主回路 如果在地下: 如果pygame.key.get_按下()[K_空格]: y_速度=-40#如果按下空格,则开始跳跃 #设置为使用的值,但应根据帧速率移动 如果y#U速度>-40#速度
请告诉我怎么做,如果告诉任何函数,请告诉我它是什么以及如何做的,因为我是pygame新手。您可以在地板上使用类似
的变量。如果它在地板上(使用碰撞),那么它允许程序开始跳跃(使用另一个变量,如y\u speed
。我通常让玩家这样跳跃:
y\u速度=0
在地板上=错误
#主回路
如果在地下:
如果pygame.key.get_按下()[K_空格]:
y_速度=-40#如果按下空格,则开始跳跃
#设置为使用的值,但应根据帧速率移动
如果y#U速度>-40#速度限制
y_速度+=1#改变速度,使抛物线形状下降
player.y+=y_速度
另外,你可以让玩家像这样跳跃,这也可以做同样的工作。当空格被按下时,你必须让它“断开”所以,连续的空格键不会增加y坐标。你还需要确保一旦达到某个高度,y坐标就会减少,而且我非常确定pygame的大部分教程都涵盖了跳跃机制。你到目前为止做了哪些尝试?请参阅不要放垃圾,添加更多细节或重新措辞。小心,您导入pygame两次:import pygame
和从pygame导入*
同时,当您向上跳时,y
值会减小,但在您的代码中,当按下空格时,玩家会向下跳。链接问题的答案使用二次公式:y-=(Jumpcount**2)*0.5*Neg
。因此我认为它是平滑的。请注意,计算每个帧的位置就足够了。在任何情况下,图形中的直线都不代表链接答案中生成的曲线。
import pygame
import sys
from pygame import *
from pygame.locals import RESIZABLE
pygame.init()
WINDOW_SIZE = (800, 600)
screen = pygame.display.set_mode(WINDOW_SIZE, RESIZABLE, 32)
player_img = pygame.image.load('ClipartKey_738895_adobespark.png')
player_X = 130
player_Y = 500
player_change_X=0
def player():
screen.blit(player_img, (player_X, player_Y))
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
sys.exit()
if event.type == KEYDOWN:
if event.key == K_RIGHT:
player_change_X = 0.3
if event.key == K_LEFT:
player_change_X = -0.3
if event.key == K_SPACE:
player_Y += 40
elif event.type == KEYUP:
if event.key == K_RIGHT:
player_change_X = 0
if event.key == K_LEFT:
player_change_X = 0
screen.fill((0, 200, 255))
player()
player_X += player_change_X
pygame.display.update()