Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pygame as pg
- class Ennemy(pg.sprite.Sprite):
- def __init__(self, x, y, e):
- self.e = e
- pg.sprite.Sprite.__init__(self, g.bullets)
- self.rect = pg.Rect((x, y, 4, 30))
- class Bullet(pg.sprite.Sprite):
- def __init__(self, x, y, d, e, g):
- self.e = e
- pg.sprite.Sprite.__init__(self, g.bullets)
- self.rect = pg.Rect((x, y, 4, 30))
- def update(self):
- self.rect.y -= 3
- for ennemie in self.e:
- if self.rect.colliderect(ennemie.rect):
- pass
- class Spaceship(pg.sprite.Sprite):
- def __init__(self, x, y, g):
- self.ticks = 0
- self.g = g
- pg.sprite.Sprite.__init__(self, g.spaceships)
- self.rect = pg.Rect((x, y, 30, 30))
- def events(self):
- key = pg.key.get_pressed()
- if key[pg.K_LEFT]:
- self.rect.x -= 4
- if key[pg.K_RIGHT]:
- self.rect.x += 4
- def shoot(self):
- Bullet(self.rect.x + 13, self.rect.y, 3, self.g.ennemies, self.g)
- def update(self):
- self.ticks += 1
- if self.ticks % 15 == 0:
- self.shoot()
- self.ticks = 0
- class Game:
- def __init__(self):
- pg.init()
- self.screen = pg.display.set_mode((400, 600))
- self.spaceships = pg.sprite.Group()
- self.bullets = pg.sprite.Group()
- self.ennemies = pg.sprite.Group()
- Spaceship(200, 500, self)
- print(self.spaceships)
- def draw(self):
- self.screen.fill((255, 255, 255))
- for spaceship in self.spaceships:
- pg.draw.rect(self.screen, (0, 0, 0), (spaceship.rect.x, spaceship.rect.y, 30, 30))
- for bullet in self.bullets:
- pg.draw.rect(self.screen, (0, 0, 0), (bullet.rect.x, bullet.rect.y, 4, 20))
- pg.display.update()
- def events(self):
- for event in pg.event.get():
- if event.type == pg.QUIT:
- quit()
- for spaceship in self.spaceships:
- spaceship.events()
- def update(self):
- for spaceship in self.spaceships:
- spaceship.update()
- for bullet in self.bullets:
- bullet.update()
- def loop(self):
- clock = pg.time.Clock()
- while True:
- clock.tick(60)
- self.events()
- self.update()
- self.draw()
- Game().loop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement