Example #1
0
    def genGameOverOverlay(self, data):
        """Generates the objects neccessary for the game over screen"""
        self.gameOverStuffSurfs = []
        self.gameOverStuffRects = []

        surf, rect = ui.genText('GAME OVER', (0, 0), data.yellow, ui.MEGAFONT)
        rect.midbottom = (data.WINDOWWIDTH / 2, data.WINDOWHEIGHT / 2 - 20)
        self.gameOverStuffSurfs.append(surf)
        self.gameOverStuffRects.append(rect)

        surf, rect = ui.genText('score   %s' % (self.lastEndScore), (0, 0),
                                data.white, ui.BASICFONT)
        rect.bottomright = (data.WINDOWWIDTH / 2 - 10, data.WINDOWHEIGHT / 2)
        self.gameOverStuffSurfs.append(surf)
        self.gameOverStuffRects.append(rect)

        surf, rect = ui.genText('high score   %s' % (self.highScore), (0, 0),
                                data.white, ui.BASICFONT)
        rect.bottomleft = (data.WINDOWWIDTH / 2 + 10, data.WINDOWHEIGHT / 2)
        self.gameOverStuffSurfs.append(surf)
        self.gameOverStuffRects.append(rect)

        surf, rect = ui.genText('press any key to continue', (0, 0),
                                data.lightgrey, ui.BASICFONT)
        rect.midbottom = (data.WINDOWWIDTH / 2 + 10,
                          data.WINDOWHEIGHT / 2 + 50)
        self.gameOverStuffSurfs.append(surf)
        self.gameOverStuffRects.append(rect)
Example #2
0
    def update(self, data, dt):
        data.gameSurf.fill(data.grey)
        data.screen.fill(data.grey)

        data.spotlights.update(data)
        data.buildings.update(data)

        data.particleSpawners.update(data)
        data.particles.update(data)

        if not self.gameOver:
            data.AAguns.update(data)
        data.bullets.update(data)

        if time.time() - self.lastBomberTime > self.timeTillNewBomber or len(
                data.bombers) == 0:
            Bomber(data, random.randint(0, 1), random.randint(50, 250))
            self.timeTillNewBomber = random.uniform(self.minBomberInterval,
                                                    self.maxBomberInterval)
            self.lastBomberTime = time.time()

            if self.minBomberInterval > self.lowestEverBomberSpawnInterval:
                self.minBomberInterval -= self.learningCurve
                self.maxBomberInterval -= self.learningCurve
        data.bombers.update(data)
        data.bombs.update(data)

        data.screen.blit(
            data.gameSurf,
            (data.screenShakeOffset[0], data.screenShakeOffset[1]))
        data.updateScreenshake()

        # DISPLAY SCORE
        if not self.gameOver:
            if data.score != self.lastScore:
                self.scoreSurf, self.scoreRect = ui.genText(
                    'SCORE   %s' % (data.score), (0, 0), data.white,
                    ui.BASICFONT)
                self.scoreRect.topright = (data.WINDOWWIDTH - 10, 10)

            data.screen.blit(self.scoreSurf, self.scoreRect)
            self.lastScore = data.score

        if not self.gameOver:
            self.checkForGameOver(data)

        if self.gameOver:
            self.showGameOverOverlay(data)

            if len(
                    data.input.unpressedKeys
            ) > 0:  # start a new game if a or mouse button key is pressed
                self.gameOver = False
                self.newGame(data)
Example #3
0
	def genGameOverOverlay(self, data):
		"""Generates the objects neccessary for the game over screen"""
		self.gameOverStuffSurfs = []
		self.gameOverStuffRects = []

		surf, rect = ui.genText('GAME OVER', (0, 0), data.yellow, ui.MEGAFONT)
		rect.midbottom = (data.WINDOWWIDTH / 2, data.WINDOWHEIGHT / 2 - 20)
		self.gameOverStuffSurfs.append(surf)
		self.gameOverStuffRects.append(rect)

		surf, rect = ui.genText('score   %s' %(self.lastEndScore), (0, 0), data.white, ui.BASICFONT)
		rect.bottomright = (data.WINDOWWIDTH / 2 - 10, data.WINDOWHEIGHT / 2)
		self.gameOverStuffSurfs.append(surf)
		self.gameOverStuffRects.append(rect)

		surf, rect = ui.genText('high score   %s' %(self.highScore), (0, 0), data.white, ui.BASICFONT)
		rect.bottomleft = (data.WINDOWWIDTH / 2 + 10, data.WINDOWHEIGHT / 2)
		self.gameOverStuffSurfs.append(surf)
		self.gameOverStuffRects.append(rect)

		surf, rect = ui.genText('press any key to continue', (0, 0), data.lightgrey, ui.BASICFONT)
		rect.midbottom = (data.WINDOWWIDTH / 2 + 10, data.WINDOWHEIGHT / 2 + 50)
		self.gameOverStuffSurfs.append(surf)
		self.gameOverStuffRects.append(rect)
Example #4
0
	def __init__(self):
		self.coderImg = pygame.image.load('assets/ui/credits/coder.png').convert_alpha()
		self.coderRect = self.coderImg.get_rect()
		self.coderRect.midbottom = (my.HALFWINDOWWIDTH, 0)

		self.thanksSurf, self.thanksRect = ui.genText('With thanks to Mekire', (0, 0), my.WHITE, ui.BIGFONT)
		self.thanksRect.midtop = (my.HALFWINDOWWIDTH, my.WINDOWHEIGHT)

		self.backButton = ui.Button('Back', 0, (0, 0), 1, 1)
		self.backButton.rect.midtop = (my.HALFWINDOWWIDTH, my.WINDOWHEIGHT)

		self.soundsButton = ui.Button('Sounds courtesy of all these lovely people', 0, (0, 0), 1, 1)
		self.soundsButton.rect.midtop = (my.HALFWINDOWWIDTH, my.WINDOWHEIGHT)

		self.animateOut = False
Example #5
0
	def __init__(self):
		self.logoImg = pygame.image.load('assets/aedificus title and dude.png').convert_alpha()
		self.logoRect = self.logoImg.get_rect()
		self.logoRect.midtop = (my.HALFWINDOWWIDTH, -773)

		self.versionSurf, self.versionRect = ui.genText('Aedificus ' + str(my.VERSIONNUMBER), (0, 0), my.WHITE, ui.BIGFONT)
		self.versionRect.bottomright = (my.WINDOWWIDTH - ui.GAP, my.WINDOWHEIGHT + 20)

		self.playButton = ui.Button(' Play ', 0, (0, 0), 1, 2)
		self.playButton.rect.midtop = (my.HALFWINDOWWIDTH, my.WINDOWHEIGHT)

		self.quitButton = ui.Button(' Quit ', 0, (my.HALFWINDOWWIDTH - 100, my.WINDOWHEIGHT), 1, 1)
		self.creditsButton = ui.Button('Credits', 0, (0, my.WINDOWHEIGHT), 1, 1)
		self.creditsButton.rect.right = my.HALFWINDOWWIDTH + 100

		self.animateOut = False
Example #6
0
	def update(self, data, dt):
		data.gameSurf.fill(data.grey)
		data.screen.fill(data.grey)

		data.spotlights.update(data)
		data.buildings.update(data)
		
		data.particleSpawners.update(data)
		data.particles.update(data)

		if not self.gameOver:
			data.AAguns.update(data)
		data.bullets.update(data)

		if time.time() - self.lastBomberTime > self.timeTillNewBomber or len(data.bombers) == 0:
			Bomber(data, random.randint(0, 1), random.randint(50, 250))
			self.timeTillNewBomber = random.uniform(self.minBomberInterval, self.maxBomberInterval)
			self.lastBomberTime = time.time()

			if self.minBomberInterval > self.lowestEverBomberSpawnInterval:
				self.minBomberInterval -= self.learningCurve
				self.maxBomberInterval -= self.learningCurve
		data.bombers.update(data)
		data.bombs.update(data)

		data.screen.blit(data.gameSurf, (data.screenShakeOffset[0], data.screenShakeOffset[1]))
		data.updateScreenshake()

		# DISPLAY SCORE
		if not self.gameOver:
			if data.score != self.lastScore:
				self.scoreSurf, self.scoreRect = ui.genText('SCORE   %s' %(data.score), (0, 0), data.white, ui.BASICFONT)
				self.scoreRect.topright = (data.WINDOWWIDTH - 10, 10)

			data.screen.blit(self.scoreSurf, self.scoreRect)
			self.lastScore = data.score

		if not self.gameOver:
			self.checkForGameOver(data)

		if self.gameOver:
			self.showGameOverOverlay(data)

			if len(data.input.unpressedKeys) > 0:# start a new game if a or mouse button key is pressed
				self.gameOver = False
				self.newGame(data)
Example #7
0
pygame.init()
pygame.display.set_caption('Lotto')

my.screen.fill(my.BLUE)
pygame.display.update()

GAP = 5

IMGNAMES = ['cellBg', 'ball', 'ballHighlight', 'bgImg']
IMG = {}
for name in IMGNAMES:
	IMG[name] = pygame.image.load('assets/%s.png' %(name)).convert_alpha()

my.BALLIMG = []
for num in range(1, my.NUMBALLS + 1):
	textSurf, textRect = ui.genText(str(num), (0,0), my.BLACK, ui.FRANCOIS)
	textRect.center = my.HALFCELLSIZE
	ball = IMG['ball'].copy()
	ball.blit(textSurf, textRect)
	my.BALLIMG.append(ball)


class Control:
	def __init__(self):
		self.main()


	def main(self):
		my.input = input.Input()
		self.runGame()
	
Example #8
0
    def __init__(self, data):
        self.surfs = []
        self.rects = []

        surf, rect = ui.genText('Londons Burning!', (0, 0), data.yellow,
                                ui.MEGAFONT)
        rect.midbottom = (data.WINDOWWIDTH / 2, data.WINDOWHEIGHT / 2 - 50)
        self.surfs.append(surf)
        self.rects.append(rect)

        texts = [
            'Defend  London  from  death  from  above!',
            'Click  to  shoot  the  bombs  out  of  the  air',
            'You  cant  directly  shoot  the  bombers',
            'Shoot  the  big  bombs  to  ricochet  them  back',
            'and  blow  up  the  bombers!', 'Press  any  key  to  continue'
        ]

        y = self.rects[0].bottom + 50
        for text in texts:
            surf, rect = ui.genText(text, (0, 0), data.lightgrey, ui.BASICFONT)

            if text == 'Press  any  key  to  continue':
                surf, rect = ui.genText(text, (0, 0), data.white, ui.BASICFONT)

            rect.midbottom = (data.WINDOWWIDTH / 2, y)
            self.surfs.append(surf)
            self.rects.append(rect)
            y += rect.height + 20

        textSurf1, textRect1 = ui.genText('music by eric skiff', (0, 0),
                                          data.lightgrey, ui.BASICFONT)
        textRect1.bottomright = (data.WINDOWWIDTH - 10, data.WINDOWHEIGHT - 10)
        self.surfs.append(textSurf1)
        self.rects.append(textRect1)
        self.musicCreditsRect = textRect1

        textSurf2, textRect2 = ui.genText('created by adam binks', (0, 0),
                                          data.yellow, ui.BASICFONT)
        textRect2.bottomright = (data.WINDOWWIDTH - 10, textRect1.top - 5)
        self.surfs.append(textSurf2)
        self.rects.append(textRect2)

        logoSurf = data.loadImage('assets/ui/jellyberg.png')
        logoRect = logoSurf.get_rect(bottomright=(data.WINDOWWIDTH - 10,
                                                  textRect2.top - 5))
        self.surfs.append(logoSurf)
        self.rects.append(logoRect)
        self.jellybergCreditsRects = [textRect2, logoRect]

        bombImg = data.loadImage('assets/enemies/superBomb.png', 14)
        bombRect = bombImg.get_rect(midbottom=(data.WINDOWWIDTH / 2,
                                               self.rects[0].top - 50))
        self.surfs.append(bombImg)
        self.rects.append(bombRect)

        self.musicSurf = {}
        self.musicSurf[1] = data.loadImage('assets/ui/musicON.png')
        self.musicSurf[0] = data.loadImage('assets/ui/musicOFF.png')
        self.musicRect = self.musicSurf[0].get_rect(
            topright=(data.WINDOWWIDTH - 10, 10))
        self.musicMuted = False

        self.sfxSurf = {}
        self.sfxSurf[1] = data.loadImage('assets/ui/sfxON.png')
        self.sfxSurf[0] = data.loadImage('assets/ui/sfxOFF.png')
        self.sfxRect = self.sfxSurf[0].get_rect(topright=(self.musicRect.left -
                                                          5, 10))
Example #9
0
	def __init__(self, data):
		self.surfs = []
		self.rects = []

		surf, rect = ui.genText('Londons Burning!', (0, 0), data.yellow, ui.MEGAFONT)
		rect.midbottom = (data.WINDOWWIDTH / 2, data.WINDOWHEIGHT / 2 - 50)
		self.surfs.append(surf)
		self.rects.append(rect)

		texts = ['Defend  London  from  death  from  above!',
				 'Click  to  shoot  the  bombs  out  of  the  air',
				 'You  cant  directly  shoot  the  bombers',
				 'Shoot  the  big  bombs  to  ricochet  them  back',
				 'and  blow  up  the  bombers!',
				 'Press  any  key  to  continue']

		y = self.rects[0].bottom + 50
		for text in texts:
			surf, rect = ui.genText(text, (0, 0), data.lightgrey, ui.BASICFONT)

			if text == 'Press  any  key  to  continue':
				surf, rect = ui.genText(text, (0, 0), data.white, ui.BASICFONT)

			rect.midbottom = (data.WINDOWWIDTH / 2, y)
			self.surfs.append(surf)
			self.rects.append(rect)
			y += rect.height + 20


		textSurf1, textRect1 = ui.genText('music by eric skiff', (0, 0), data.lightgrey, ui.BASICFONT)
		textRect1.bottomright = (data.WINDOWWIDTH - 10, data.WINDOWHEIGHT - 10)
		self.surfs.append(textSurf1)
		self.rects.append(textRect1)
		self.musicCreditsRect = textRect1

		textSurf2, textRect2 = ui.genText('created by adam binks', (0, 0), data.yellow, ui.BASICFONT)
		textRect2.bottomright = (data.WINDOWWIDTH - 10, textRect1.top - 5)
		self.surfs.append(textSurf2)
		self.rects.append(textRect2)

		logoSurf = data.loadImage('assets/ui/jellyberg.png')
		logoRect = logoSurf.get_rect(bottomright = (data.WINDOWWIDTH - 10, textRect2.top - 5))
		self.surfs.append(logoSurf)
		self.rects.append(logoRect)
		self.jellybergCreditsRects = [textRect2, logoRect]

		bombImg = data.loadImage('assets/enemies/superBomb.png', 14)
		bombRect = bombImg.get_rect(midbottom = (data.WINDOWWIDTH / 2, self.rects[0].top - 50))
		self.surfs.append(bombImg)
		self.rects.append(bombRect)


		self.musicSurf = {}
		self.musicSurf[1] = data.loadImage('assets/ui/musicON.png')
		self.musicSurf[0] = data.loadImage('assets/ui/musicOFF.png')
		self.musicRect = self.musicSurf[0].get_rect(topright = (data.WINDOWWIDTH - 10, 10))
		self.musicMuted = False

		self.sfxSurf = {}
		self.sfxSurf[1] = data.loadImage('assets/ui/sfxON.png')
		self.sfxSurf[0] = data.loadImage('assets/ui/sfxOFF.png')
		self.sfxRect = self.sfxSurf[0].get_rect(topright =  (self.musicRect.left - 5, 10))
Example #10
0
	def update(self):
		my.input.get()
		my.screen.fill(my.PASTELBLUE)

		for slider in self.sliders:
			if self.sliderAlpha < 255:
				slider.surf.set_alpha(self.sliderAlpha)
				if not self.animateOut:
					self.sliderAlpha += 15

			value = slider.update()
			if slider.label == 'Number of mountains':
				my.NUMMOUNTAINS = value
			elif slider.label == 'Number of rivers':
				my.NUMRIVERS = value
			elif slider.label == 'Tree density':
				my.TREEFREQUENCY = 200 - value

		self.embarkButton.simulate(my.input)
		if self.embarkButton.isClicked:
			self.animateOut = 'play'
			self.loadingSurf, self.loadingRect = ui.genText('GENERATING WORLD', (0,0), my.WHITE, ui.MEGAFONT)
			self.loadingRect.center = (my.HALFWINDOWWIDTH, my.HALFWINDOWHEIGHT)

		self.backButton.simulate(my.input)
		if self.backButton.isClicked:
			self.animateOut = 'main'

		my.screen.blit(self.logoImg, self.logoRect)


		# ANIMATE
		if self.animateOut: # animate out
			animateDone = True
			if self.backButton.rect.y < my.WINDOWHEIGHT - 1:
				animateDone = False
				self.backButton.rect.y += (my.WINDOWHEIGHT + 50 - self.backButton.rect.y) * 0.1
				self.embarkButton.rect.y = self.backButton.rect.y
			if self.logoRect.y > -160:
				animateDone = False
				self.logoRect.y -= math.fabs(-180 - self.logoRect.y) * 0.1
			if self.animateOut == 'play':
				my.screen.fill(my.DARKBLUE, pygame.Rect(self.loadingRect.x - 20, self.loadingRect.y - 20, 
														self.loadingRect.width + 40, self.loadingRect.height + 40))
				my.screen.blit(self.loadingSurf, self.loadingRect)
			if self.sliderAlpha > 0:
				self.sliderAlpha -= 15

		else: # animate in
			if self.backButton.rect.y > my.HALFWINDOWWIDTH - 100:
				self.backButton.rect.y -= math.fabs(my.WINDOWHEIGHT * 0.75 - self.backButton.rect.y) * 0.1
				self.embarkButton.rect.y = self.backButton.rect.y

			if self.logoRect.y < 30:
				self.logoRect.y += math.fabs(30 - self.logoRect.y) * 0.1

		if self.animateOut and animateDone:
			if self.animateOut == 'play':
				my.gameRunning = True

				my.transition = 'begin'
				my.lastSurf = my.screen.copy().convert()
				return 'play'
			return 'main'
	def update(self, deltaTime):
		my.UIhover = False
		my.input.get()
		updateCheats()

		if pygame.locals.K_SPACE in my.input.unpressedKeys:
			my.paused = not my.paused
			self.screenCache = my.screen.copy()
			self.pauseSurf = pygame.Surface((my.WINDOWWIDTH, my.WINDOWHEIGHT))
			self.pauseTextSurf, self.pauseTextRect = ui.genText('PAUSED (press space to unpause)', (10, 10), my.WHITE, ui.MEGAFONT)
			self.pauseTextRect.center = (int(my.WINDOWWIDTH / 2), int(my.WINDOWHEIGHT / 2))

		if pygame.locals.K_m in my.input.unpressedKeys:
			my.muted = not my.muted
			if my.muted:
				ui.StatusText('All sounds muted (M to unmute)', None, True)
			if not my.muted:
				ui.StatusText('All earmeltingly beautiful sounds activated', None, True)

		# if pygame.locals.K_p in my.input.unpressedKeys:
		# 	my.FPS = random.choice([60, 500])
		# 	ui.StatusText('FPS: %s' %(my.FPS))

		if not my.paused:
			self.pauseAlpha = 0
			my.surf.blit(my.map.surf, my.camera.viewArea, my.camera.viewArea)
			my.camera.update(deltaTime)

			my.ticks += 1
			for i in range(1, 20):
				if my.ticks % i == 0:
					my.tick[i] = True
				else:
					my.tick[i] = False
			my.dt = deltaTime

			self.sunx += my.SUNMOVESPEED
			if self.sunx > my.MAPWIDTH: self.sunx = -30
			my.sunPos = (self.sunx, my.MAPHEIGHT + 50)

			try:
				my.mission = my.MISSIONS[my.currentMissionNum]
			except IndexError:
				if not my.DEBUGMODE and my.mission is not None:
					ui.StatusText('Congratulations, you completed all missions!')
				my.mission = None

			my.map.update()
			my.eventHandler.update(deltaTime)
			building.updateBuildings(deltaTime)
			item.update()
			mob.updateMobs(deltaTime)
			ui.handleTooltips()

			my.hud.updateWorldUI()
			my.screen.blit(my.surf, (0,0), my.camera.viewArea)
			my.hud.updateHUD(deltaTime)

		else:
			if self.pauseAlpha < 150: self.pauseAlpha += 600 * deltaTime
			self.pauseSurf.fill(my.DARKGREY)
			self.pauseSurf.set_alpha(self.pauseAlpha)
			self.pauseSurf.blit(self.pauseTextSurf, self.pauseTextRect)
			my.screen.blit(self.screenCache, (0, 0))
			my.screen.blit(self.pauseSurf, (0, 0))

		for key in my.resources.keys(): # DON'T FIX THE BUGS, HIDE 'EM!
			if my.resources[key] < 0:
				my.resources[key] = 0
Example #12
0
    def update(self, deltaTime):
        my.UIhover = False
        my.input.get()
        updateCheats()

        if pygame.locals.K_SPACE in my.input.unpressedKeys:
            my.paused = not my.paused
            self.screenCache = my.screen.copy()
            self.pauseSurf = pygame.Surface((my.WINDOWWIDTH, my.WINDOWHEIGHT))
            self.pauseTextSurf, self.pauseTextRect = ui.genText(
                'PAUSED (press space to unpause)', (10, 10), my.WHITE,
                ui.MEGAFONT)
            self.pauseTextRect.center = (int(my.WINDOWWIDTH / 2),
                                         int(my.WINDOWHEIGHT / 2))

        if pygame.locals.K_m in my.input.unpressedKeys:
            my.muted = not my.muted
            if my.muted:
                ui.StatusText('All sounds muted (M to unmute)', None, True)
            if not my.muted:
                ui.StatusText('All earmeltingly beautiful sounds activated',
                              None, True)

        # if pygame.locals.K_p in my.input.unpressedKeys:
        # 	my.FPS = random.choice([60, 500])
        # 	ui.StatusText('FPS: %s' %(my.FPS))

        if not my.paused:
            self.pauseAlpha = 0
            my.surf.blit(my.map.surf, my.camera.viewArea, my.camera.viewArea)
            my.camera.update(deltaTime)

            my.ticks += 1
            for i in range(1, 20):
                if my.ticks % i == 0:
                    my.tick[i] = True
                else:
                    my.tick[i] = False
            my.dt = deltaTime

            self.sunx += my.SUNMOVESPEED
            if self.sunx > my.MAPWIDTH: self.sunx = -30
            my.sunPos = (self.sunx, my.MAPHEIGHT + 50)

            try:
                my.mission = my.MISSIONS[my.currentMissionNum]
            except IndexError:
                if not my.DEBUGMODE and my.mission is not None:
                    ui.StatusText(
                        'Congratulations, you completed all missions!')
                my.mission = None

            for key in my.resources.keys():
                if my.resources[key] < 0:
                    my.resources[key] = 0

            my.map.update()
            my.eventHandler.update(deltaTime)
            building.updateBuildings(deltaTime)
            item.update()
            mob.updateMobs(deltaTime)
            ui.handleTooltips()

            my.hud.updateWorldUI()
            my.screen.blit(my.surf, (0, 0), my.camera.viewArea)
            my.hud.updateHUD(deltaTime)

        if my.paused:
            if self.pauseAlpha < 150: self.pauseAlpha += 600 * deltaTime
            self.pauseSurf.fill(my.DARKGREY)
            self.pauseSurf.set_alpha(self.pauseAlpha)
            self.pauseSurf.blit(self.pauseTextSurf, self.pauseTextRect)
            my.screen.blit(self.screenCache, (0, 0))
            my.screen.blit(self.pauseSurf, (0, 0))