def __init__(self):
     self.view = sf.View(sf.Rect((0, 0), (500, 500)))
     self.view.viewport = (sf.Rect((0.474, 0.2685), (0.26, 0.463)))
     self.settings = sf.ContextSettings()
     self.settings.antialiasing_level = 8
     self.window = sf.RenderWindow(sf.VideoMode(1920, 1080),
                                   "IFS Flame Fractal Generator",
                                   sf.Style.DEFAULT, self.settings)
     self.window.framerate_limit = 60
     self.general = ifs_general()
     self.cpu_ifs = ifs_cpu(self.general)
     self.gpu_ifs = ifs_gpu(self.general)
     self.gui = ui()
Beispiel #2
0
    def load_json(self):
        data = None
        self._loaded = False

        with open(os.path.join(self._path, self._filename)) as data_file:
            data = json.load(data_file)

        if data != None:
            tilesx = data["width"]
            tilesy = data["height"]

            tsx = int(data["tilewidth"])
            tsy = int(data["tileheight"])

            self.tile_size = sf.Vector2(tsx, tsy)

            self._collisions = [[-1 for x in range(tilesx)] for y in range(tilesy)]

            #self.batch = pyglet.graphics.Batch()

            self.borders = sf.Rect((0, 0), (tilesx*self.tile_size.x, tilesy*self.tile_size.y))
            self.tile_borders = sf.Rect((0, 0), (tilesx, tilesy))

            tilesets_arr = data["tilesets"]

            if len(tilesets_arr) <= 0:
                return False

            tileset_data = tilesets_arr[0]
            data_tw = int(tileset_data["tilewidth"])
            data_th = int(tileset_data["tileheight"])

            data_iw = int(tileset_data["imagewidth"])
            data_ih = int(tileset_data["imageheight"])

            data_ttx = data_iw//data_tw
            data_tty = data_ih//data_th

            fixpath = os.path.join(self._path, os.path.normpath(tileset_data["image"]))

            self._texture = sf.Texture.from_file(fixpath) if self._use_texture == None else self._use_texture

            for layer in data["layers"]:
                layerprops = layer.get("properties", {})

                if layer["type"] == "tilelayer":
                    self._load_tile_layer(layer, tilesx, tilesy, tsx, tsy, layerprops)
                elif layer["type"] == "objectgroup":
                    self._load_object_layer(layer, tsx, tsy, layerprops)

        return True
    def loop(self):
        while (self.window.is_open):

            #INPUT
            pynk.lib.nk_input_begin(self.gui.ctx)
            for event in self.window.events:
                if (event.type == sf.Event.CLOSED):
                    self.window.close()
                elif (event.type == sf.Event.RESIZED):
                    self.winH = event.items()._mapping.event.height
                    self.window.view = sf.View(
                        sf.Rect(
                            (0, 0),
                            (event.items()._mapping.event.width, self.winH)))
                self.gui.eventsToGui(event)
            pynk.lib.nk_input_end(self.gui.ctx)

            #draw
            self.gui.gui_loop(self.winH, self.window, self.cpu_ifs,
                              self.gpu_ifs, self.general)
            self.window.clear()
            self.gui.draw(self.window)
            if self.cpu_ifs.screen != None:
                defaultView = self.window.view
                self.window.view = self.view
                self.window.draw(self.cpu_ifs.screen)
                self.window.view = defaultView
            self.window.display()
Beispiel #4
0
 def new_game_setup(self, game):
     """ Must call this when running a new game!
     """
     self.level_tilemap = TileMap(game.level.tiles)
     self.tilegrid = sf.Sprite(self.textures[pz.SQUARE])
     self.tilegrid.texture_rectangle = sf.Rect(
         (0, 0), (game.level.size.x * pz.TILE_SIZE,
                  game.level.size.y * pz.TILE_SIZE))
     self.tilegrid.color = sf.Color(255, 255, 255, 50)
Beispiel #5
0
 def reset_viewport(self, position: Union[sf.Vector2, Tuple[float, float]],
                    size: Union[sf.Vector2, Tuple[float, float]]):
     if type(position) in [sf.Vector2, tuple
                           ] and type(size) in [sf.Vector2, tuple]:
         self.viewport = sf.Rect(position, size)
         self.vp_base_pos = to_Vector2(position)
         self.vp_base_size = to_Vector2(size)
     else:
         raise TypeError(
             "position and size arguments of Camera.reset_viewport() should be a sf.Vector or tuple."
         )
Beispiel #6
0
 def new_viewport(x):
     return sf.Rect(
         (viewport_x + x.vp_base_pos.x * (1 - 2 * viewport_x),
          viewport_y + x.vp_base_pos.y * (1 - 2 * viewport_y)),
         (viewport_w * x.vp_base_size.x, viewport_h * x.vp_base_size.y))