我是Pygame的初学者。我开始制作一个关于跳跃恐龙的游戏。我创建的角色在单次触发按下向上箭头键后不会返回到确切的平台。它的土地略高于平台,其土地完全后,2,3向上箭头按下
我是一个完全的初学者
import pygame
pygame.init()
win = pygame.display.set_mode((500, 500))
x = 20
y = 400
width = 30
height = 45
vel = 10
black = (0,0,0)
x1 = 20
y1 = 30
white = (255,255,255)
run = True
while run:
pygame.time.delay(20)
win.fill(black)
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>=20:
x -= vel
if keys[pygame.K_RIGHT]and x<=450:
x += vel
if keys[pygame.K_UP] and y>=20:
y -= vel
if keys[pygame.K_DOWN] and y<=390:
y += vel
#gravity
else:
if not keys[pygame.K_UP] and y <= 400:
y += 30
pygame.draw.rect(win, (255, 0, 0), (x, y, width, height))
pygame.draw.line(win,white,[0,472],[472,472],2)
pygame.display.update()
pygame.display.flip()
pygame.quit()
你的重力应用程序坏了。有很多方法可以解决这个问题,我在这里的选择是始终应用重力,但限制y,这样它就永远不会超过角色离地平面的高度
详细说明你的方法的实际错误:你的跳跃会产生向上运动,增加
vel
。这只是gravity
的一小部分。因此,将角色向上推(例如,40像素),然后向下拉30像素,将使您离地10像素。只有当你设法精确地提高gravity
的倍数时,你才会后退我的解决方案总是会失败,但会将角色的位置限制在地面上
相关问题 更多 >
编程相关推荐