【发布时间】:2017-04-30 12:34:53
【问题描述】:
我是编程新手,不熟悉 Python 和 Pygame。因此,我还不习惯 Pygame 中的精灵。我正在尝试制作一个游戏,只要按下空格键就会跳块 - 类似于马里奥。
我的代码不能按预期工作,因为每当按下空格键时,块就会逐渐向上移动(我添加了一个重力组件),而不是“跳跃”。
import pygame
pygame.init()
game_display = pygame.display.set_mode((800, 800))
# fixed variables at the start
x_pos = 400
y_pos = 400
current_speed = 15
def jump_coords(y_position, speed):
if speed >= 0:
#to move up, reduce the y-coordinate
y_position -= speed
return y_position
game_exit = False
# main loop
while not game_exit:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
y_pos = jump_coords(y_pos, current_speed)
# 1 represents gravity value
current_speed -= 1
rect_one = pygame.Rect(x_pos, y_pos, 10, 10)
pygame.draw.rect(game_display, (255, 0, 0), rect_one)
pygame.display.update()
我知道我必须在speed >= 0 期间以某种方式使 y_pos 在 while 循环中不断更新,但我不知道如何实现它。
【问题讨论】:
标签: python python-2.7 pygame