import pygame from pygame.sprite import Sprite from pygame.locals import (RLEACCEL,K_UP,K_DOWN,K_LEFT,K_RIGHT,K_ESCAPE,KEYDOWN,QUIT) pygame.init() clock = pygame.time.Clock() screen_width = 800 screen_height = 600 screen = pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption('My game') class Player: def __init__ (self): self.x = 200 self.y = 200 self.width = 50 self.height = 100 self.speed = 3 def move(self, dx=0, dy=0): self.x += dx * self.speed if self.x - self.width/2 < 0: self.x = self.width/2 if self.x + self.width/2 > screen_width: self.x = screen_width - self.width/2 self.y += dy * self.speed if self.y - self.height/2 < 0: self.y = self.height/2 if self.y + self.height/2 > screen_height: self.y = screen_height - self.height/2 def draw(self): left_upper_x = self.x - self.width/2 left_upper_y = self.y - self.height/2 pygame.draw.rect(screen,(0, 0, 255), (round(left_upper_x),round(left_upper_y),self.width,self.height)) # 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() # class Player(pygame.sprite.Sprite): # def __init__(self): # super(Player, self).__init__() # self.surf = pygame.transform.scale( # pygame.image.load("rat.png").convert(),(50, 36)) # self.surf.set_colorkey((0, 0, 0), RLEACCEL) # self.rect = self.surf.get_rect() done = False player = Player() #all_sprites = pygame.sprite.Group() #all_sprites.add(player) while not done: for event in pygame.event.get(): if event.type == pygame.QUIT: done = True pressed_keys = pygame.key.get_pressed() if pressed_keys[pygame.K_LEFT]: player.move(dx=-1) elif pressed_keys[pygame.K_RIGHT]: player.move(dx=+1) if pressed_keys[pygame.K_UP]: player.move(dy=-1) elif pressed_keys[pygame.K_DOWN]: player.move(dy=+1) screen.fill((0, 0, 0)) pygame.display.flip() clock.tick(60) pygame.quit()