Mercurial > fife-parpg
diff demos/rpg/scripts/scene.py @ 512:6ddb1eb9dfa6
Added the Scene which loads the town map. It is no longer a black screen demo.
Changed the keys to be more common. Screenshot is now the print screen key. The console is now the backtick key. Screenshots are now date/time stamped as well.
Removed the scripts/common directory as I have removed the dependency on the EventListenerBase class.
author | prock@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Fri, 21 May 2010 17:31:08 +0000 |
parents | |
children | edf5c0cf52f3 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/demos/rpg/scripts/scene.py Fri May 21 17:31:08 2010 +0000 @@ -0,0 +1,60 @@ +#!/usr/bin/env python + +# -*- coding: utf-8 -*- + +# #################################################################### +# Copyright (C) 2005-2010 by the FIFE team +# http://www.fifengine.net +# This file is part of FIFE. +# +# FIFE 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 2.1 of the License, or (at your option) any later version. +# +# This library 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 this library; if not, write to the +# Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# #################################################################### +# This is the rio de hola client for FIFE. + +import sys, os, re, math, random, shutil + +from fife import fife +from fife.extensions.loaders import loadMapFile + +class Scene(object): + def __init__(self, gamecontroller): + self._gamecontroller = gamecontroller + + self._map = None + self._cameras = {} + + def createScene(self, mapfilename): + if not self._map: + self._map = loadMapFile(mapfilename, self._gamecontroller.engine) + else: + self.destroyScene() + + for cam in self._map.getCameras(): + self._cameras[cam.getId()] = cam + + self._cameras[self._gamecontroller.settings.get("RPG", "DefaultCameraName", "camera1")].setZoom(1.0) + + def destroyScene(self): + self._cameras.clear() + + if self._map: + self._gamecontroller.engine.getModel().deleteMap(self._map) + + self._map = None + + def updateScene(self): + pass +