def main(): sdl2.ext.init() # Create the window window = sdl2.ext.Window("Foo", size=(960, 640)) window.show() # Create the spirte factory and the sprite for the player factory = sdl2.ext.SpriteFactory(sdl2.ext.SOFTWARE) # Create the worl and spriterenderer system world = sdl2.ext.World() spriterenderer = SoftwareRenderer(window) movement = MovementSystem(0, 0, 960, 640) playerMovement = PlayerMovementSystem() collision = CollisionSystem() battleSystem = BattleSystem() # Add all systems to the world world.add_system(playerMovement) world.add_system(collision) world.add_system(movement) world.add_system(spriterenderer) world.add_system(battleSystem) # Test map generation grid = mapGen.buildMap(world, factory, 4) grid.build(world, factory) enemyTile = random.choice(grid.tiles) enemy = Enemy(world, factory, enemyTile.position.x, enemyTile.position.y) # Pick random location for player playerTile = random.choice(grid.tiles) player = Player(world, factory, playerTile.position.x, playerTile.position.y) player_speed = 1 battleSystem.player = player playerMovement.player = player playerMovement.grid = grid gridSystem = GridSystem(960, 640, player) world.add_system(gridSystem) # Colliders for said items collision.player = player collision.grid = grid # Main event loop running = True key_down = False while(running): events = sdl2.ext.get_events() for event in events: # Hittin' dat X button doe if event.type == sdl2.SDL_QUIT: running = False break if event.type == sdl2.SDL_KEYUP: key_down = False # Movement if event.type == sdl2.SDL_KEYDOWN: d = None if(not key_down): if event.key.keysym.sym == sdl2.SDLK_UP: d = Direction.NORTH key_down = True elif event.key.keysym.sym == sdl2.SDLK_e: print("I'm attacking with", player.get_damage(), "!") key_down = True elif event.key.keysym.sym == sdl2.SDLK_f: print("Consuming") player.consume() print("Player health now at,", player.playerdata.health) elif event.key.keysym.sym == sdl2.SDLK_DOWN: d = Direction.SOUTH key_down = True elif event.key.keysym.sym == sdl2.SDLK_LEFT: d = Direction.EAST key_down = True elif event.key.keysym.sym == sdl2.SDLK_RIGHT: d = Direction.WEST key_down = True if d != None: collision.player_dir = d enemy.random_move(grid) playerMovement.walk(d) sdl2.SDL_Delay(10) world.process() return 0