Source code for pytmx.util_pyglet

# -*- coding: utf-8 -*-
"""
Copyright (C) 2012-2017, Leif Theden <leif.theden@gmail.com>

This file is part of pytmx.

pytmx is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

pytmx is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with pytmx.  If not, see <http://www.gnu.org/licenses/>.
"""
import logging

logger = logging.getLogger(__name__)

try:
    import pyglet
except ImportError:
    logger.error("cannot import pyglet (is it installed?)")
    raise

import pytmx


[docs]def pyglet_image_loader(filename, colorkey, **kwargs): """basic image loading with pyglet returns pyglet Images, not textures This is a basic proof-of-concept and is likely to fail in some situations. Missing: Transparency Tile Rotation This is slow as well. """ if colorkey: logger.debug("colorkey not implemented") image = pyglet.image.load(filename) def load_image(rect=None, flags=None): if rect: try: x, y, w, h = rect y = image.height - y - h tile = image.get_region(x, y, w, h) except: logger.error("cannot get region %s of image", rect) raise else: tile = image if flags: logger.error("tile flags are not implemented") return tile return load_image
[docs]def load_pyglet(filename, *args, **kwargs): kwargs["image_loader"] = pyglet_image_loader kwargs["invert_y"] = True return pytmx.TiledMap(filename, *args, **kwargs)