Changeset 287

Show
Ignore:
Timestamp:
05/25/2012 01:51:01 PM (2 years ago)
Author:
andefodahl
Message:

Got hover capability for infobox

Location:
traintris
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • traintris/eventmanager.py

    r279 r287  
    2828        self.species = species 
    2929        self.index = index 
     30         
     31class InfoRequest(Event): 
     32    def __init__(self, name): 
     33        self.name = name 
    3034 
    3135class SeasonChangeEvent(Event): 
  • traintris/gameboard.py

    r279 r287  
    7979        return self.height 
    8080 
     81    def sendInfo(self, name): 
     82        index = self.web.lookup(name) 
     83        name = self.foodweb[index][0][0] 
     84        rang = self.foodweb[index][0][1] 
     85        description = self.comments[name + "Info"] 
     86        diet = self.comments[name + "Food"] 
     87        predators =  self.comments[name + "Predators"] 
     88         
     89        ev = InfoBoxEvent(name, description, diet, rang, predators) 
     90        self.evManager.Post(ev) 
     91         
     92         
    8193    #------------------------------------------------------------------ 
    8294    # This method is called when the type of organism being placed changes 
     
    91103        self.selectRange = self.foodweb[index][0][2] 
    92104        self.foodneeded = self.foodweb[index][0][1] 
    93          
    94         name = self.foodweb[index][0][0] 
    95         rang = self.selectRange 
    96         description = self.comments[name + "Info"] 
    97         diet = self.comments[name + "Food"] 
    98         predators =  self.comments[name + "Predators"] 
    99          
    100         ev = InfoBoxEvent(name, description, diet, rang, predators) 
    101         self.evManager.Post(ev) 
    102          
    103105 
    104106    #------------------------------------------------------------------ 
     
    438440            self.determineType( event.species) 
    439441            self.selectSpecies= event.species 
    440                  
     442         
     443        if isinstance(event, InfoRequest): 
     444            self.sendInfo(event.name) 
     445             
    441446        if isinstance(event, ChangeTutorial): 
    442447            self.tutorial = not(self.tutorial) 
  • traintris/gameboardview.py

    r286 r287  
    114114        self.drawCategoryButtons() 
    115115        self.drawMenuButtons() 
    116          
    117         self.hover = 0 
    118          
     116                 
    119117        pygame.display.update() 
    120118 
     
    125123        self.graphics.drawObjectsAndMobs(self.level[1], self.spriteTileSet, [], 
    126124                           self.screen, 0) 
    127         if hasattr(self, 'infoname') and self.hover: 
     125        if hasattr(self, 'infoname'): 
    128126            self.graphics.drawInfoBox(self.infoname, self.infodescription, self.infodiet, self.inforange, self.infopredators, self.black) 
    129127        else: 
     
    451449            self.x = event.x 
    452450            self.y = event.y 
    453             self.hover = 0 
     451            hovercounter = 0 
    454452            for button in self.buttonList: 
    455453                if button.mode != CONSTANTS.DEPRESSED: 
     
    457455                    and self.y > button.pos[1] and self.y < button.pos[1]+button.size[1]: 
    458456                        if button.type == CONSTANTS.ORGANISM: 
    459                             self.hover = 1 
     457                            ev = InfoRequest(button.text) 
     458                            self.evManager.Post(ev) 
     459                        hovercounter += 1 
    460460                        button.mode = CONSTANTS.HOVER 
    461461                    else: 
    462462                        button.mode = CONSTANTS.NEUTRAL 
     463            if hovercounter == 0: 
     464                self.infoname = None 
     465                self.infodescription = None 
     466                self.infodiet = None 
     467                self.inforange = None 
     468                self.infopredators = None 
     469                button.mode = CONSTANTS.NEUTRAL 
     470                         
    463471            self.draw() 
    464472            pygame.display.update() 
     
    471479                    if self.x > button.pos[0] and self.x < button.pos[0]+button.size[0] \ 
    472480                    and self.y > button.pos[1] and self.y < button.pos[1]+button.size[1]: 
    473                         self.hover = 0 
    474481                        button.mode = CONSTANTS.DEPRESSED 
    475482            if event.type == 'up': 
     
    501508                                    self.selectedOrganismIndex = i 
    502509                                    ev = CharacterSelectRequest( self.selectedOrganism, animalList[i][1]) 
    503                                      
    504510                                    self.lastButtonClicked = None 
    505511                                    self.removeOrganismBar() 
    506512                                    self.evManager.Post(ev) 
    507                         self.hover = 1 
    508513                        button.mode = CONSTANTS.HOVER 
    509514            self.draw()