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
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) food_sprite = factory.from_color(sdl2.ext.Color(255, 255, 255), size = (32, 32)) weapon_sprite = factory.from_color(sdl2.ext.Color(175, 175, 175), size = (32, 32)) sprite = factory.from_surface(sdl2.ext.load_image(RESOURCES.get_path('player.png'))) # Create the worl and spriterenderer system world = sdl2.ext.World() spriterenderer = SoftwareRenderer(window) movement = MovementSystem(0, 0, 800, 600) collision = CollisionSystem(0, 0, 800, 600) # Add all systems to the world world.add_system(collision) world.add_system(movement) world.add_system(spriterenderer) # Test map generation grid = mapGen.buildMap(4) grid.build(world, factory) # Pick random location for player playerTile = random.choice(grid.tiles) player = Player(world, sprite, playerTile.sprite.position[0], playerTile.sprite.position[1]) player_speed = 1 gridSystem = GridSystem(960, 640, player) world.add_system(gridSystem) # Test items food = Item(world, food_sprite, 500, 500, DataTypes.CONSUMABLE, "Sandwich") weapon = Item(world, weapon_sprite, 300, 300, DataTypes.UNPATHABLE, "Axe") # Colliders for said items collision.colliders.append(food) collision.colliders.append(weapon) collision.player = player # Main event loop running = True 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 # Movement if event.type == sdl2.SDL_KEYDOWN: d = None if event.key.keysym.sym == sdl2.SDLK_UP: d = Direction.NORTH elif event.key.keysym.sym == sdl2.SDLK_DOWN: d = Direction.SOUTH elif event.key.keysym.sym == sdl2.SDLK_LEFT: d = Direction.EAST elif event.key.keysym.sym == sdl2.SDLK_RIGHT: d = Direction.WEST if d != None: player.walk(grid, d) sdl2.SDL_Delay(10) world.process() return 0