私はプログラミングとPythonだけでなくPygameも使い慣れています。それで、私はまだ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()
私は何とかY_POSがspeed >= 0
ながら、whileループで更新し続けるが、私はそれを実装するかどうかはわかりません作るために持っていることを知っています。