school

thing1's amazing school repo
Log | Files | Refs | Submodules | README

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()