Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
from ppb import GameEngine, BaseScene
with GameEngine(BaseScene) as engine:
engine.run()
def simulate(self, time_delta):
self.rect.centery += -10
class Enemy(BaseGameObject):
image_path = "enemy.png"
def __init__(self, scene, x_position):
super().__init__(scene, (x_position, 0))
def simulate(self, time_delta):
self.rect.centery += 3
class Game(BaseScene):
def __init__(self, engine, background_color=(90, 55, 100), **kwargs):
super().__init__(engine=engine,
background_color=background_color,
**kwargs)
Player(self)
Bullet(self, (0, 0)).kill()
self.spawner = Spawner(self, file_spawner("spawn.csv"), Enemy)
def simulate(self, time_delta):
super().simulate(time_delta)
self.spawner.spawn(time_delta)
player = self.groups[Player.group]
bullets = self.groups[Bullet.group]
from math import hypot
from os import path
from ppb import BaseScene
from ppb import GameEngine
from ppb import Vector
from pygame import image
from pygame import mouse
from pygame.sprite import DirtySprite
class Game(BaseScene):
def __init__(self, engine, background_color=(0, 0, 0), **kwargs):
super().__init__(engine=engine,
background_color=background_color,
**kwargs)
Player(self, Vector(750, 750))
class Player(DirtySprite):
def __init__(self, scene, target=None):
super().__init__(scene.groups["player"])
self.image = image.load(path.join(path.dirname(__file__),
"player.png"))
self.rect = self.image.get_rect()
self.position = Vector(*self.rect.center)
self.scene = scene
from os import path
from ppb import BaseScene, GameEngine
from pygame import image
from pygame.sprite import DirtySprite
class Game(BaseScene):
def __init__(self, engine, background_color=(0, 0, 0), **kwargs):
super().__init__(engine=engine,
background_color=background_color,
**kwargs)
Player(self)
class Player(DirtySprite):
def __init__(self, scene):
super().__init__(scene.groups["player"])
self.image = image.load(path.join(path.dirname(__file__),
"player.png"))
self.rect = self.image.get_rect()
self.scene = scene
class Bullet(DirtySprite):
def __init__(self, scene, position):
super().__init__(scene.groups["bullets"])
b_image = image.load(path.join(path.dirname(__file__), "bullet.png"))
self.image = b_image
self.rect = self.image.get_rect()
self.rect.midbottom = position
self.scene = scene
def update(self, time_delta):
self.rect.centery += -10
self.dirty = True
class Game(BaseScene):
def __init__(self, engine, background_color=(0, 0, 0), **kwargs):
super().__init__(engine=engine,
background_color=background_color,
**kwargs)
Player(self)
Bullet(self, (0, 0)).kill()
class Player(DirtySprite):
def __init__(self, scene):
super().__init__(scene.groups["player"])
self.image = image.load(path.join(path.dirname(__file__),
"player.png"))
self.rect = self.image.get_rect()
self.scene = scene
class TargetABC(ABC):
@property
@abstractmethod
def position(self) -> Vector:
pass
@abstractmethod
def interact(self, player: 'Player'):
logging.getLogger(type(self).__name__).debug(f"{type(self).__name__} reached!")
# Scenes
class Game(BaseScene):
def __init__(self, engine, background_color=(0, 0, 0), **kwargs):
super().__init__(engine=engine,
background_color=background_color,
**kwargs)
chest = ClosedChest(self, Vector(750, 750))
player = Player(self, chest)
self.groups["terrain"].empty()
self.controller = Controller(player, self.groups["interact"])
def simulate(self, time_delta: float):
self.controller.respond()
super().simulate(time_delta)
class Enemy(DirtySprite):
def __init__(self, scene, x_position):
super().__init__(scene.groups["enemy"])
p_image = image.load(path.join(path.dirname(__file__), "enemy.png"))
self.image = p_image
self.rect = self.image.get_rect()
self.rect.bottom = 0
self.rect.centerx = x_position
self.scene = scene
def update(self, time_delta):
self.rect.centery += 3
self.dirty = True
class Game(BaseScene):
def __init__(self, engine, background_color=(0, 0, 0), **kwargs):
super().__init__(engine=engine,
background_color=background_color,
**kwargs)
Player(self)
Bullet(self, (0, 0)).kill()
Enemy(self, 200)
self.spawner = Spawner(self, simple_infinite_spawn(1.5, 200), Enemy)
def simulate(self, time_delta):
super().simulate(time_delta)
self.spawner.spawn(time_delta)
player = self.groups["player"]
bullets = self.groups["bullets"]
enemies = self.groups["enemy"]
groupcollide(player, enemies, True, True)
from os import path
from ppb import BaseScene, GameEngine
from pygame import image
from pygame.sprite import DirtySprite
class Player(DirtySprite):
def __init__(self, scene):
super().__init__(scene.groups["player"])
self.image = image.load(path.join(path.dirname(__file__),
"player.png"))
self.rect = self.image.get_rect()
self.scene = scene
class Game(BaseScene):
def __init__(self, engine, background_color=(90, 55, 100), **kwargs):
super().__init__(engine=engine,
background_color=background_color,
**kwargs)
Player(self)
from ppb import BaseScene
from pygame.sprite import groupcollide
import sprites as sprites
def simple_enemies(time_step, x_val):
time = time_step
while True:
yield time, x_val
time += time_step
class Game(BaseScene):
def __init__(self, engine, **kwargs):
super().__init__(engine=engine,
background_color=(45, 30, 55),
**kwargs)
self.play_area = engine.display.get_rect()
self.run_time = 0
self.spawn = simple_enemies(1.5, 200)
self.next_spawn, self.next_x = next(self.spawn)
_ = self.groups[sprites.Bullet.group] # force setting the key.
sprites.Player(self)
def simulate(self, time_delta):
self.run_time += time_delta
while self.next_spawn <= self.run_time:
sprites.Enemy(self, self.next_x)
self.next_spawn, self.next_x = next(self.spawn)
from ppb import GameEngine, BaseScene
class Game(BaseScene):
def __init__(self, engine, background_color=(0, 0, 0), **kwargs):
super().__init__(engine=engine,
background_color=background_color,
**kwargs)
def main():
with GameEngine(Game, resolution=(800, 800)) as engine:
engine.run()
if __name__ == "__main__":
main()