42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
import pygame
|
|
from settings import SCREEN_HEIGHT, SCREEN_WIDTH
|
|
from pygame.locals import (
|
|
K_UP,
|
|
K_DOWN,
|
|
K_LEFT,
|
|
K_RIGHT,
|
|
K_ESCAPE,
|
|
KEYDOWN,
|
|
QUIT,
|
|
)
|
|
|
|
|
|
# Define a Player object by extending pygame.sprite.Sprite
|
|
# The surface drawn on the screen is now an attribute of 'player'
|
|
class Player(pygame.sprite.Sprite):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.surf = pygame.Surface((75, 25))
|
|
self.surf.fill((0, 0, 0))
|
|
self.rect = self.surf.get_rect()
|
|
|
|
def update(self, pressed_keys):
|
|
if pressed_keys[K_UP]:
|
|
self.rect.move_ip(0, -5)
|
|
if pressed_keys[K_DOWN]:
|
|
self.rect.move_ip(0, 5)
|
|
if pressed_keys[K_LEFT]:
|
|
self.rect.move_ip(-5, 0)
|
|
if pressed_keys[K_RIGHT]:
|
|
self.rect.move_ip(5, 0)
|
|
|
|
# Keep player on the screen
|
|
if self.rect.left < 0:
|
|
self.rect.left = 0
|
|
if self.rect.right > SCREEN_WIDTH:
|
|
self.rect.right = SCREEN_WIDTH
|
|
if self.rect.top <= 0:
|
|
self.rect.top = 0
|
|
if self.rect.bottom >= SCREEN_HEIGHT:
|
|
self.rect.bottom = SCREEN_HEIGHT
|