game.py (2356B)
1 import pygame 2 3 4 class entity: 5 def __init__(self, x, y, img, radius, color): 6 self.rotation = 0 7 8 self.radius = radius 9 self.pos = pygame.Vector2(x, y) 10 self.hitbox = pygame.Rect(x, y, radius*2, radius*2) 11 self.color = color 12 self.hitbox.x = x 13 self.hitbox.y = y 14 15 self.sprite = pygame.image.load(img) 16 self.sprite = pygame.transform.scale(self.sprite, 17 (radius * 2, radius * 2)) 18 19 self.hitbox.x = self.pos.x - self.radius 20 self.hitbox.y = self.pos.y - self.radius 21 22 def move(self): 23 keys = pygame.key.get_pressed() 24 if keys[pygame.K_w]: 25 self.pos.y -= 300 * dt 26 if keys[pygame.K_s]: 27 self.pos.y += 300 * dt 28 if keys[pygame.K_a]: 29 self.pos.x -= 300 * dt 30 if keys[pygame.K_d]: 31 self.pos.x += 300 * dt 32 33 while self.pos.x > 1280: 34 self.pos.x = self.pos.x - 1 35 while self.pos.x < 0: 36 self.pos.x = self.pos.x + 1 37 while self.pos.y > 720: 38 self.pos.y = self.pos.y - 1 39 while self.pos.y < 0: 40 self.pos.y = self.pos.y + 1 41 self.hitbox.x = self.pos.x - self.radius 42 self.hitbox.y = self.pos.y - self.radius 43 44 def update(self, things, rot): 45 pass 46 def draw(self, debug): 47 screen.blit(self.sprite, self.pos) 48 if debug == 1: 49 pygame.draw.rect(screen, self.color, self.hitbox) 50 51 def __collide(self, things): 52 for i in things: 53 if self.hitbox.colliderect(i.hitbox): 54 return i 55 56 57 pygame.init() 58 screen = pygame.display.set_mode((1280, 720)) 59 clock = pygame.time.Clock() 60 running = True 61 dt = 0 62 63 bg = pygame.image.load("./bg.png") 64 bg = pygame.transform.scale(bg, (1280, 720)) 65 66 player = entity(screen.get_width() / 2, screen.get_height() / 2, 67 "./player.png", 40, "red") 68 69 enemys = [] 70 for i in range(3): 71 enemys.append(entity(100, 100, "./player.png", 40, "blue")) 72 73 while running: 74 for event in pygame.event.get(): 75 if event.type == pygame.QUIT: 76 running = False 77 78 screen.blit(bg, (0, 0)) 79 80 player.update(enemys, 1) 81 82 player.move() 83 84 player.draw(1) 85 for i in enemys: 86 i.draw(0) 87 88 pygame.display.flip() 89 90 dt = clock.tick(30) / 1000 91 92 pygame.quit()