Как мне заставить player_1 двигаться с ключами? - PullRequest
0 голосов
/ 27 июня 2019

Я хочу сделать игру Pong на Python. У меня уже есть окна и модели плееров.

Я пытался сделать это с

if keys[pygame.K_LEFT]:
    x -= speed
if keys[pygame.K_LEFT]:
    x += speed

это весь мой код:

import pygame
from pygame import *
import math
import random
clock = pygame.time.Clock()  # fps

pygame.init()  # start
title = pygame.display.set_caption("Pong")
width = 640
height = 480
screen = pygame.display.set_mode((width, height))   # screen
running = True
speed = 10
white = (255, 255, 255)
x = 120
y = 5
player_1 = pygame.draw.rect(screen, white, (240, 430, x, y))
player_2 = pygame.draw.rect(screen, white, (240, 40, x, y))
pong = pygame.draw.circle(screen, white, (300, 235), 4)
pygame.display.update()
fps = clock.tick(60)
keys = pygame.key.get_pressed()

if keys[pygame.K_LEFT]:
    x -= speed
if keys[pygame.K_LEFT]:
    x += speed


while 1:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            running = False


Я хотел заставить нижнего игрока двигаться с помощью клавиш со стрелками, но ничего не происходит вообще.

1 Ответ

0 голосов
/ 27 июня 2019

Поместите


keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
    x -= speed
if keys[pygame.K_LEFT]:
    x += speed

player_1 = pygame.draw.rect(screen, white, (240, 430, x, y))
player_2 = pygame.draw.rect(screen, white, (240, 40, x, y))
pong = pygame.draw.circle(screen, white, (300, 235), 4)
pygame.display.update()
fps = clock.tick(60)


в цикл while.

Также измените

if keys[pygame.K_LEFT]:
    x += speed

на

if keys[pygame.K_RIGHT]:
    x += speed
...