예제 #1
0
 def __init__(self):
     self._key_queue = []    #keys are (key, shift, ctrl, alt, x, y) x, y are only for mouse presses
     self._player = Player()
     self._done = False
예제 #2
0
class Angband(object):
    """The Angband class, this is the 'game', it controls everything and does everything."""
    def __init__(self):
        self._key_queue = []    #keys are (key, shift, ctrl, alt, x, y) x, y are only for mouse presses
        self._player = Player()
        self._done = False

    def add_key(self, key):
        self._key_queue.append(key)
    
    def get_key(self):
        if len(self._key_queue) == 0:
            return None
        key = self._key_queue[0]
        self._key_queue = self._key_queue[1:]
        return key
        
    def unget_key(self, key):
        self._key_queue = [key].append(self._key_queue)
        
    def process_world(self):
        """This is where everything happens"""
        key = self.get_key()
        if(key == None): return
        if(key[0] in MOVEMENT_KEYS):
            pxy = self._player.get_xy()
            if(key[0] in MOVE_UP):
                self._player.set_xy(pxy[0], pxy[1] - 1)
            elif(key[0] in MOVE_DOWN):
                self._player.set_xy(pxy[0], pxy[1] + 1)
            elif(key[0] in MOVE_LEFT):
                self._player.set_xy(pxy[0] - 1, pxy[1])
            elif(key[0] in MOVE_RIGHT):
                self._player.set_xy(pxy[0] + 1, pxy[1])
            elif(key[0] in MOVE_UP_AND_LEFT):
                self._player.set_xy(pxy[0] - 1, pxy[1] - 1)
            elif(key[0] in MOVE_UP_AND_RIGHT):
                self._player.set_xy(pxy[0] + 1, pxy[1] - 1)
            elif(key[0] in MOVE_DOWN_AND_LEFT):
                self._player.set_xy(pxy[0] - 1, pxy[1] + 1)
            elif(key[0] in MOVE_DOWN_AND_RIGHT):
                self._player.set_xy(pxy[0] + 1, pxy[1] + 1)
        if(key[0] == AKEY_ESCAPE):
            self.shutdown()
    
    def get_current_display(self):
        """Get the stuff that needs displaying"""
        pxy = self._player.get_xy()
        return ('@', pxy[0], pxy[1])

    def shutdown(self):
        """Do everything that needs to be done to shutdown the game"""
        self._done = True
        
    def running(self):
        return(self._done == False)