So, I'm new to Pygame and I'm trying to make a program in which you can control a ball with the arrow keys. The problem is that when I press arrow keys, nothing happens but I don't get any error messages. Can someone help me please?
I tried to use rect.move_ip but nothing happened too. I don't know what to do.
Here is my code:
import pygame, pygame.font, pygame.event, pygame.draw, string
from pygame.locals import *
from pygame.draw import *
pygame.init()
#surface
surface = pygame.display.set_mode(size=(800, 600), flags=0, depth=0, display=0, vsync=0)
pygame.display.set_caption("Ball Game")
#class Player
class Player(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.speed = 10
self.x = 50
self.y = 60
self.player1 = pygame.draw.circle(surface, (255, 174, 0), (self.x, self.y), 30)
self.player2 = pygame.draw.circle(surface, (0,0,0), (self.x, self.y), 32, 2)
def move_right(self):
self.x += self.speed
def move_left(self):
self.x -= self.speed
def move_up(self):
self.y -= self.speed
def move_down(self):
self.y += self.speed
#class Game
class Game:
def __init__(self):
self.player = Player()
#background
surface.fill((255,0,0))
#loadgame
game = Game()
#main loop
running = True
while running:
pygame.display.flip()
for event in pygame.event.get():
#close game
if event.type == QUIT:
running = False
#detect if a player release a key
elif event.type == pygame.KEYDOWN:
#player controls
keys = pygame.key.get_pressed()
if keys[pygame.K_RIGHT]:
game.player.move_right()
if keys[pygame.K_LEFT]:
game.player.move_left()
if keys[pygame.K_UP]:
game.player.move_up()
if keys[pygame.K_DOWN]:
game.player.move_down()
pygame.draw.circle
pygame.display.flip()
pygame.quit()