Changeset 287


Ignore:
Timestamp:
05/25/12 13:51:01 (3 years ago)
Author:
andefodahl
Message:

Got hover capability for infobox

Location:
traintris
Files:
3 edited

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()
Note: See TracChangeset for help on using the changeset viewer.