Beispiel #1
0
def saveState():

    bak = Surface((50, 15))
    bak.blit(display.screen, (0, 0), Rect(0, size[1] - 13, 50, 15))
    display.clear((0, 0, 0), Rect(0, size[1] - 13, 50, 15))
    display.draw(
        Font('freesansbold.ttf', 10).render('saving...', 1, (255, 255, 255)),
        Rect(1, size[1] - 14, 47, 13))
    display.update()

    print ' Saving...'

    saveDict = {}

    if 'gameOver' not in game.sm.flags:

        for k, v in sv.__dict__.iteritems():
            if k in sv.saveIncludes:
                saveDict[k] = v

        for name, obj in game.saveRegister:
            data = obj.save()
            if data != None: saveDict[name] = data

        with open(game.saveFile, 'wb') as saveFile:
            saveFile.write(zlib.compress(pickle.dumps(saveDict, 2)))

    display.draw(bak, (0, size[1] - 13))
    display.update()
Beispiel #2
0
def addRemoveTick():

    toClear = None

    for event in pygameEventGet():

        if event.type == KEYDOWN:

            if event.key == K_ESCAPE:
                game.sm.switch('menu')

            elif event.key == K_SPACE:
                game.sm.switch('grow-shrink')
                sv.lastPlayState = 'grow-shrink'
                game.fbLabel.string = game.fbLabel.string.replace(
                    'add/remove', 'grow/shrink')

            elif event.key == K_c:
                display.clear()
                sv.circles.empty()

        elif event.type == MOUSEBUTTONDOWN:

            tx, ty = event.pos
            game.fbLabel.text(str(tx) + ', ' + str(ty) + ' add/remove')

            if event.button == 1:

                sv.mb1Down = True
                thisCircle = circle(tx, ty, sv.circles)
                thisCircle.radius = randint(radiusMin, radiusMax / 2)
                thisCircle.redraw()

            elif event.button == 3:

                for c in reversed(list(sv.circles.sprites())):
                    if c.rect.collidepoint(tx, ty):
                        toClear = c
                        break

        elif event.type == MOUSEBUTTONUP:

            if event.button == 1:
                sv.mb1Down = False
                game.currCircle = None

            elif event.button == 3:
                sv.mb3Down = False
                game.currCircle = None

    game.ui.clear(display.screen, clear_callback)
    sv.circles.clear(display.screen, clear_callback)

    sv.circles.remove(toClear)

    postPlayTick()
Beispiel #3
0
def newGameLoadEnter():

    display.clear()
    clearGrids()
Beispiel #4
0
def growShrinkTick():

    for event in pygameEventGet():

        if event.type == KEYDOWN:

            if event.key == K_ESCAPE:
                game.sm.switch('menu')

            elif event.key == K_SPACE:
                game.sm.switch('add-remove')
                sv.lastPlayState = 'add-remove'
                game.fbLabel.string = game.fbLabel.string.replace(
                    'grow/shrink', 'add/remove')

            elif event.key == K_c:
                display.clear()
                sv.circles.empty()

        elif event.type == MOUSEBUTTONDOWN:

            tx, ty = event.pos
            game.fbLabel.text(str(tx) + ', ' + str(ty) + ' grow/shrink')

            if event.button == 1:

                sv.mb1Down = True
                for c in reversed(list(sv.circles.sprites())):
                    if c.rect.collidepoint(tx, ty):
                        game.currCircle = c
                        break

            elif event.button == 3:

                sv.mb3Down = True
                for c in reversed(list(sv.circles.sprites())):
                    if c.rect.collidepoint(tx, ty):
                        game.currCircle = c
                        break

        elif event.type == MOUSEBUTTONUP:

            if event.button == 1:
                sv.mb1Down = False
                game.currCircle = None

            elif event.button == 3:
                sv.mb3Down = False
                game.currCircle = None

    if sv.mb1Down and game.currCircle != None:
        game.currCircle.radius = min(game.currCircle.radius + 1, radiusMax)

    if sv.mb3Down and game.currCircle != None:
        game.currCircle.radius = max(game.currCircle.radius - 1, radiusMin)

    game.ui.clear(display.screen, clear_callback)
    sv.circles.clear(display.screen, clear_callback)

    if game.currCircle != None:
        game.currCircle.redraw()

    postPlayTick()
Beispiel #5
0
def newGameLoadEnter():

    display.clear()