示例#1
0
 def __init__(self, parentState, text, pos, size=32, fixed=True):
     StaticImage.__init__(self, None, None, parentState, fixed)
     self.labelText = pygame.font.Font(os.path.join("data", "fonts", "PD-tarzeau_-_Atari_Small.ttf"), size)
     self.text = text
     self.image = self.labelText.render(text, False, pygame.Color(0, 0, 0))
     self.rect = self.image.get_rect()
     self.rect.topleft = pos
示例#2
0
 def __init__(self, parentState, text, pos, size=32, fixed=True):
     StaticImage.__init__(self, None, None, parentState, fixed)
     self.labelText = pygame.font.Font(
         os.path.join("data", "fonts", "PD-tarzeau_-_Atari_Small.ttf"),
         size)
     self.text = text
     self.image = self.labelText.render(text, False, pygame.Color(0, 0, 0))
     self.rect = self.image.get_rect()
     self.rect.topleft = pos
示例#3
0
    def __init__(self, menu, sprites=[]):
        MenuState.__init__(self, menu, sprites)
        self.sprites = [self.fileNameLabel, self.miniMap]
        self.buttons = []

        self.panel = StaticImage(loadImage("devmenu.png", 2), (10, 10))
        self.addSprite(self.panel)

        self.snapToGridButton = SnapToGridButton(self)
        self.addButton(self.snapToGridButton)

        self.removeButton = RemoveSensorButton(self)
        self.addButton(self.removeButton)

        self.gridButtonSelectionBox = None
        self.removeButtonSelectionBox = None

        self.addingMode = True
        self.removingMode = False

        self.curGrabbedSens = None

        self.curStart = None
        self.gridX = 40
        self.gridY = 40
        self.snapToGrid = False
        self.whereEntWasGrabbed = None
示例#4
0
    def __init__(self, menu, sprites=[]):
        MenuState.__init__(self, menu, sprites)
        self.sprites = [self.fileNameLabel, self.miniMap]
        self.buttons = []

        self.panel = StaticImage(loadImage("tageditorbackground.png", 2),
                                 (10, 10))
        self.addSprite(self.panel)
        self.plusTagButton = AddTagButton(self)
        self.addButton(self.plusTagButton)
        self.subTagButton = SubTagButton(self)
        self.addButton(self.subTagButton)
        self.sensorButton = SensorButton(self)
        self.addButton(self.sensorButton)

        self.curEnt = None

        self.keyboardEnabled = True
        #self.currentString = ""
        self.deleteLastChar = False
        #self.oldString = ""

        self.curTag = None
        self.tagButtons = []

        self.carryMeOverButtons = [
            self.plusTagButton, self.subTagButton, self.sensorButton
        ]
        self.carryMeOverSprites = [self.panel, self.fileNameLabel
                                   ] + self.carryMeOverButtons

        self.sensorMode = False
        self.sensorButtonSelectionBox = None
示例#5
0
    def __init__(self, menu, sprites=[]):
        MenuState.__init__(self, menu, sprites)
        self.sprites = [self.fileNameLabel, self.miniMap]
        self.buttons = []

        self.panel = StaticImage(loadImage("devmenu.png", 2), (10, 10))
        self.addSprite(self.panel)

        self.addBoundButton = AddBoundaryButton(self)
        self.addButton(self.addBoundButton)

        self.removeBoundButton = RemoveBoundaryButton(self)
        self.addButton(self.removeBoundButton)

        self.snapToGridButton = SnapToGridButton(self)
        self.addButton(self.snapToGridButton)

        self.buttonSelectionBox = SelectionBox(self.addBoundButton.rect, self)
        self.addSprite(self.buttonSelectionBox)

        self.gridButtonSelectionBox = None

        self.addingMode = True
        self.removingMode = False

        self.curStart = None
        tmpGrdRect = self.menu.playState.floor.tileSet.getTiles(
        )[0].image.get_rect()
        self.gridX, self.gridY = tmpGrdRect.w, tmpGrdRect.h
        self.snapToGrid = False
示例#6
0
    def __init__(self, menu, buttonType, sprites=[]):
        self.panelImage = loadImage("filebrowserbackground.png", 2)
        self.panel = StaticImage(self.panelImage, (10, 10))
        sprites.append(self.panel)
        self.backButton = ScrollBackButtonFiles(self)
        sprites.append(self.backButton)
        self.nextButton = ScrollNextButtonFiles(self)
        sprites.append(self.nextButton)
        MenuState.__init__(self, menu, sprites, miniMap=False)
        self.keyboardEnabled = True
        self.currentString = ""
        self.forceUpdate = False
        self.deleteLastChar = False
        self.oldString = ""
        self.boundingArea = pygame.Rect(26, 26, 670, 496)
        #self.addButton( FileButton( self, self.currentString, ( 40, 30 ) ) )

        self.startButtonIndex = 0
        self.pageLength = 0
        self.fileButtons = []

        self.buttonType = buttonType
        self.generateFileButtons()

        self.userFont = pygame.font.Font(
            os.path.join("data", "fonts", "PD-tarzeau_-_Atari_Small.ttf"), 24)
        #Carry these sprites over each update.
        self.carryMeOverSprites = [self.fileNameLabel]
        self.carryMeOverButtons = []
示例#7
0
    def __init__(self, menu, sprites=[]):
        MenuState.__init__(self, menu, sprites)

        self.entNum = 0
        self.sprites = [self.fileNameLabel, self.miniMap]
        self.buttons = []

        self.panel = StaticImage(loadImage("devmenu.png", 2), (10, 10))
        self.addSprite(self.panel)

        self.scrollNextButton = ScrollNextButton(self)
        self.addButton(self.scrollNextButton)

        self.scrollBackButton = ScrollBackButton(self)
        self.addButton(self.scrollBackButton)

        self.snapToGridButton = SnapToGridButtonEnt(self)
        self.addButton(self.snapToGridButton)

        self.gridFillButton = GridFillButtonEnt(self)
        self.addButton(self.gridFillButton)

        self.curEntNum = 0
        self.xPos = 0
        self.yPos = 0
        self.tallest = 0
        self.processedEnts = []

        self.pages = {0: []}
        self.curPage = 0
        self.maxPage = 0
        self.generateButtons()

        self.snapToGrid = False
        self.gridButtonSelectionBox = None

        self.gridFill = False
        self.gridFillButtonSelectionBox = None
        self.gridFillStart = None

        self.selectedButton = self.buttons[self.entNum + 4]
        self.entSelectionBox = SelectionBox(self.selectedButton.rect, self)
        self.addSprite(self.entSelectionBox)

        self.curGrabbedEnt = None
        self.lastMouseSpot = (0, 0)
        self.whereEntWasGrabbed = None
示例#8
0
 def __init__( self, image, pos, parentState=None, fixed=False ):
     StaticImage.__init__( self, image, pos, parentState, fixed )
示例#9
0
 def __init__( self, rect, parentState ):
     StaticImage.__init__( self, None, None, parentState )
     self.image = pygame.Surface( ( rect.w, rect.h ) ).convert_alpha()
     self.image.fill( self.empty )
     self.rect = rect.copy().move( -parentState.x, -parentState.y )
     pygame.draw.rect( self.image, self.red, self.rect.move( -(self.rect.left), -(self.rect.top) ), 2 )
示例#10
0
    def __init__( self, menu, sprites=[] ):
        MenuState.__init__( self, menu, sprites )

        self.buttons = []
        self.sprites = [self.fileNameLabel, self.miniMap]

        self.panel = StaticImage( loadImage( "devmenu.png", 2 ), ( 10, 10 ) )
        self.addSprite( self.panel )

        self.undoButton = UndoButton( self )
        self.addButton( self.undoButton )

        self.redoButton = RedoButton( self )
        self.addButton( self.redoButton )

        self.scrollNextButton = ScrollNextButtonTiles( self )
        self.addButton( self.scrollNextButton )

        self.scrollBackButton = ScrollBackButtonTiles( self )
        self.addButton( self.scrollBackButton )

        self.removeFloorButton = RemoveFloorButton( self )
        self.addButton( self.removeFloorButton )

        self.addFloorButton = AddFloorButton( self )
        self.addButton( self.addFloorButton )

        self.editFloorButton = EditFloorButton( self )
        self.addButton( self.editFloorButton )

        self.topLeftLayerClamp = TopLeftLayerClamp( self )
        self.bottomRightLayerClamp = BottomRightLayerClamp( self )

        self.snapToGridButton = SnapToGridButtonFloor( self )
        self.addButton( self.snapToGridButton )

        self.hardBlitButton = HardBlitButton( self )
        self.addButton( self.hardBlitButton )
        
        #A local copy to prevent excessive look ups.
        self.floor = self.menu.playState.floor

        self.currentFloorLayer = 0

        self.currentLayerIsGrabbed = False
        self.grabPoint = None

        self.snapToGrid = False
        self.gridButtonSelectionBox = None

        self.hardBlit = False
        self.hardBlitSelectionBox = None

        self.currentlyGrabbedClamp = None

        #Edit modes are zero for tiles, 1 for creating/editing layers, 2 for select/edit, and 3 for removing
        self.editMode = 0

        self.tileNum = 0
        self.tileFillRect = None

        self.xPos = 0
        self.yPos = 0
        self.tallest = 0
        self.pages = {0:[]}
        self.curPage = 0
        self.processedTiles = []
        self.generateButtons()

        #For the tile placing functionality.
        self.startOfBlock = None

        self.tileSelectionBox = SelectionBox( self.pages[self.curPage][0].rect, self )
        self.addSprite( self.tileSelectionBox )
        self.curSelectedButton = self.pages[self.curPage][0]

        self.gridX, self.gridY = self.curSelectedButton.rect.w, self.curSelectedButton.rect.h
        self.setClamps()
示例#11
0
 def __init__(self, image, pos, parentState=None, fixed=False):
     StaticImage.__init__(self, image, pos, parentState, fixed)
示例#12
0
class DefaultMenuState( MenuState ):
    """The DefaultMenuState is the class for the default MenuState.\n""" \
    """Shocking, I know."""
    floorEditButton = FloorEditButton()

    entityEditButton = EntityEditButton()

    saveMapButton = SaveMapButton()

    loadMapButton = LoadMapButton()

    tagEditButton = TagEditButton()

    boundEditButton = BoundaryEditButton()

    physicsVisButton = PhysicsVisButton()

    sensorEditButton = SensorEditButton()

    connectToButton = ConnectToButton()

    hostButton = HostButton()

    pauseStartButton = PauseStartButton()

    panel = StaticImage( loadImage("devmenu.png", 2), (10, 10) )

    def __init__( self, menu, sprites=[panel, floorEditButton, entityEditButton, saveMapButton, loadMapButton, tagEditButton, boundEditButton, physicsVisButton, sensorEditButton, connectToButton, hostButton, pauseStartButton] ):
        MenuState.__init__( self, menu, sprites )
        self.limitLabel = Label( self, "Pan Limits:", ( 24, 204 ), 16, False )
        self.limitX1 = LimitField( self, prefix = "Left: ", text="", pos=( 24, 224 ) )
        self.limitX2 = LimitField( self, prefix = "Right: ", text="", pos=( 24, 240 ) )
        self.limitY1 = LimitField( self, prefix = "Top: ", text="", pos=( 24, 256 ) )
        self.limitY2 = LimitField( self, prefix = "Bottom: ", text="", pos=( 24, 272 ) )
        self.keyboardEnabled = True
        self.addSprite( self.limitLabel )
        self.addButton( self.limitX1 )
        self.addButton( self.limitX2 )
        self.addButton( self.limitY1 )
        self.addButton( self.limitY2 )
        self.field = None

    def update( self, dt, click, clickKey, curMousePos=None ):
        MenuState.update( self, dt, click, clickKey, curMousePos )
        inputText = self.getKeyboardInput()
        if self.field is not None:
            oldText = self.field.text
            if self.deleteLastChar:
                self.field.text =  self.field.text[:-1]
                self.deleteLastChar = False
            self.field.text += inputText
            if self.field.text != oldText:
                self.field.createText()

        #Force a text reset on all the LimitFields not selected.
        playState = self.menu.playState
        if playState.limitX1 is not None and self.field != self.limitX1:
            newStr = str(playState.limitX1)
            if newStr != self.limitX1.text:
                self.limitX1.text = newStr
                self.limitX1.createText()
                
        if playState.limitX2 is not None and self.field != self.limitX2:
            newStr = str(playState.limitX2)
            if newStr != self.limitX2.text:
                self.limitX2.text = newStr
                self.limitX2.createText()

        if playState.limitY1 is not None and self.field != self.limitY1:
            newStr = str(playState.limitY1)
            if newStr != self.limitY1.text:
                self.limitY1.text = newStr
                self.limitY1.createText()

        if playState.limitY2 is not None and self.field != self.limitY2:
            newStr = str(playState.limitY2)
            if newStr != self.limitY2.text:
                self.limitY2.text = newStr
                self.limitY2.createText()