Changeset 199


Ignore:
Timestamp:
05/23/12 14:10:57 (3 years ago)
Author:
andefodahl
Message:

BUTTONS COMPLETE

Location:
traintris
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • traintris/constants.py

    r196 r199  
    143143        self.NEUTRAL, self.HOVER, self.DEPRESSED = range(3)
    144144        self.buttonModes = ["neutral", "hover", "depressed"]
    145         self.menuButtonImages = []
    146         self.categoryButtonImages = []
    147         self.organismButtonImages = []
    148145       
    149146class gameNumbers:
     
    194191        self.numbers = numbers
    195192
     193GRAPHICS = GraphicsConstants()
  • traintris/controllers.py

    r194 r199  
    3737                    ev = QuitEvent()
    3838                   
     39                if event.type == pygame.MOUSEMOTION:
     40                    pos = event.pos
     41                    self.evManager.Post(MouseMoveEvent(pos[0], pos[1]))
     42                   
     43                if event.type == pygame.MOUSEBUTTONUP:
     44                    pos = event.pos
     45                    self.evManager.Post(MouseClickEvent(pos[0], pos[1], 'up'))
     46                   
    3947                if event.type == pygame.MOUSEBUTTONDOWN:
    4048
    4149                    # Get linear transform for board coordinates
    4250                    pos = pygame.mouse.get_pos()
     51                    self.evManager.Post(MouseClickEvent(pos[0], pos[1], 'down'))
    4352                    x_coord = pos[0] - self.numbers["mousex"]
    4453                    y_coord = self.numbers["mousey"] - pos[1]
     
    117126            event = TickEvent()
    118127            self.evManager.Post(event)
     128        pygame.quit()
     129        sys.exit()
    119130
    120131##            runner = unittest.TextTestRunner()
  • traintris/eventmanager.py

    r193 r199  
    4343        self.row = row
    4444        self.permission = permission
     45       
     46class MouseClickEvent(Event):
     47    def __init__(self, x, y, type):
     48        self.name = 'Mouse Click Event'
     49        self.x = x
     50        self.y = y
     51        self.type = type
    4552
    46 class CursorMoveEvent(Event):
    47     def __init__(self, row, column):
    48         self.name = 'Cursor Placement Event'
    49         self.column = column
    50         self.row = row
     53class MouseMoveEvent(Event):
     54    def __init__(self, x, y):
     55        self.name = 'Mouse Placement Event'
     56        self.x = x
     57        self.y = y
    5158
    5259class Message(Event):
  • traintris/gameboardview.py

    r198 r199  
    2727################################################################################################             
    2828
    29        
    30 #------------------------------------------------------------------
    31 # Short message to output at the end of the game
    32 def exitFunc():
    33     pass
    34 
    3529
    3630
     
    6963       
    7064        self.selectedOrganism = None
     65        self.lastButtonClicked = None
     66        self.lastButtonUsed = None
     67        self.buttonList = []
    7168   
    7269        # filename
     
    119116                        "To skip the tutorial press SKIP, " +
    120117                        "to continue hit NEXT", True, True)
     118       
     119        self.addButton("hi", "testbutton", (100,100), (100,100))
    121120       
    122121        self.draw()
     
    202201        self.highLighter()
    203202        self.panelDraw()
     203        for button in self.buttonList:
     204            self.graphics.drawButton(button.images, button.mode, button.pos)
    204205        if self.message:
    205206            self.drawMessageBoard(self.message)
    206207        pygame.display.update()
    207208       
     209    def addButton(self, text, imageName, size, pos):
     210        self.buttonList.append(Button(text, imageName, size, pos))
     211       
     212    def removeButton(self, imageName):
     213        for button in self.buttonList:
     214            if button.imageName == imageName:
     215                self.buttonList.remove(button)
    208216
    209217    def addOrganism(self):
     
    462470
    463471    #------------------------------------------------------------------
    464     # Method used to interact and reciev input from the event manager
     472    # Method used to interact and recieve input from the event manager
    465473    def Notify(self, event):
    466474        if isinstance(event, CharacterPlaceEvent) and (not self.tutorial):
     
    475483                pygame.display.update()
    476484
    477         if isinstance(event, CursorMoveEvent) and \
    478         (not self.tutorial) and False:
    479             self.x = event.row
    480             self.y = event.column
     485        if isinstance(event, MouseMoveEvent) and (not self.tutorial):
     486            self.x = event.x
     487            self.y = event.y
     488            for button in self.buttonList:
     489                if button.mode != GRAPHICS.DEPRESSED:
     490                    if self.x > button.pos[0] and self.x < button.pos[0]+button.size[0] \
     491                    and self.y > button.pos[1] and self.y < button.pos[1]+button.size[1]:
     492                        button.mode = GRAPHICS.HOVER
     493                    else:
     494                        button.mode = GRAPHICS.NEUTRAL
    481495            self.draw()
    482             self.message = ("", "", "", False, False)
    483496            pygame.display.update()
    484 
     497           
     498        if isinstance(event, MouseClickEvent):
     499            self.x = event.x
     500            self.y = event.y
     501            if event.type == 'down':
     502                for button in self.buttonList:
     503                    if self.x > button.pos[0] and self.x < button.pos[0]+button.size[0] \
     504                    and self.y > button.pos[1] and self.y < button.pos[1]+button.size[1]:
     505                        self.lastButtonClicked = button
     506                        button.mode = GRAPHICS.DEPRESSED
     507            if event.type == 'up':
     508                for button in self.buttonList:
     509                    button.mode = GRAPHICS.NEUTRAL
     510                    if self.x > button.pos[0] and self.x < button.pos[0]+button.size[0] \
     511                    and self.y > button.pos[1] and self.y < button.pos[1]+button.size[1]:
     512                        if button == self.lastButtonClicked:
     513                            self.lastButtonUsed = button
     514                        button.mode = GRAPHICS.HOVER
     515            self.draw()
     516                       
     517                       
    485518        if isinstance(event, CharacterSelectRequest):
    486519            mouse = pygame.mouse.get_pos()
     
    526559                        self.evManager.Post(QuitEvent())
    527560                        end = false
    528                        
    529         if isinstance(event, QuitEvent):
    530             exitFunc()
    531561
    532562        if isinstance(event, Refresh):
     
    552582class Button:
    553583    def __init__(self, text, imageName, size, pos):
    554         self.mode = GraphicsConstants.NEUTRAL
     584        self.mode = GRAPHICS.NEUTRAL
     585        self.pos = pos
     586        self.imageName = imageName
     587        self.size = size
    555588        imageList = []
    556         for mode in GraphicsConstants.buttonModes:
    557             imageList += imageName + "_" + mode
    558         self.images = imageList
    559        
    560        
     589        for mode in GRAPHICS.buttonModes:
     590            imageList.append(imageName + "_" + mode + ".jpg")
     591        self.images = imageList       
     592       
  • traintris/graphics.py

    r198 r199  
    11import pygame
     2from constants import GRAPHICS
    23import os.path
    34
     
    158159    def drawButton(self, images, mode, pos):
    159160   
    160         if mode == GraphicsConstants.NEUTRAL:
    161             image = images[GraphicsConstants.NEUTRAL]
    162         elif mode == GraphicsConstants.HOVER:
    163             image = images[GraphicsConstants.HOVER]
     161        if mode == GRAPHICS.NEUTRAL:
     162            image = images[GRAPHICS.NEUTRAL]
     163        elif mode == GRAPHICS.HOVER:
     164            image = images[GRAPHICS.HOVER]
    164165        else:
    165             image = images[GraphicsConstants.DEPRESSED]
     166            image = images[GRAPHICS.DEPRESSED]
    166167               
    167         self.drawImage(image, (x,y))
     168        self.drawImage(image, pos)
    168169
    169170    #-------------------------------------------------------------------------------------------------
    170171    # draws an image based on an identifying string and a pos
    171172    def drawImage(self, imageName, pos):
    172         globalVars.screen.blit(self.loadImage(imageName), pos)
     173        self.screen.blit(self.loadImage(imageName), pos)
    173174
    174175    #-------------------------------------------------------------------------------------------------
    175176    # loads an image either from a file or from the image dictionary
    176177    def loadImage(self, imageName):
    177         imageName = path.join('gfx\objects', imageName)
     178        filename = os.path.join('gfx\objects', imageName)
    178179        if not (imageName in self.imageDict):
    179180            try:
     
    184185            except pygame.error:
    185186                self.imageDict[imageName] = pygame.image.load(
    186                     "images\error.jpg")
     187                    "gfx\objects\error.jpg")
    187188        return self.imageDict[imageName]
    188189
Note: See TracChangeset for help on using the changeset viewer.