Beispiel #1
0
    def __init__(self, units, mines, large, medium, small, spawn_time, clear_time):
        super(LevelGenerator, self).__init__(units, mines, spawn_time, clear_time)
        self.large = large
        self.medium = medium
        self.small = small
        self.obstacles = []
        
        for n in range(int(large)):
            self.obstacles.append(obstacle(Resources.Image.Obstacle.large, randint(0, window.width), randint(0, window.height), 64))

        for n in range(int(medium)):
            self.obstacles.append(obstacle(Resources.Image.Obstacle.medium, randint(0, window.width), randint(0, window.height), 32))

        for n in range(int(small)):
            self.obstacles.append(obstacle(Resources.Image.Obstacle.small, randint(0, window.width), randint(0, window.height), 16))
Beispiel #2
0
def retry():
	global intro, selecting, colliding, collide_change, GG, score, obstacle_speed,\
	time_change, bullets, bulletSprites, aluno, obstacleGroup, cadeira, pause, pos_change,\
	is_god, just_dead, power_up_change, powers

	intro = False
	selecting = False
	colliding = False
	collide_change = False
	pause = False
	GG = False
	score = 0
	pos_change = 0
	obstacle_speed = 3
	time_change = 0
	power_up_change = random.randint(5, 9)

	if just_dead and pygame.key.get_pressed()[pygame.K_a]:
		just_dead = False
		pos_change = -1

	elif just_dead and pygame.key.get_pressed()[pygame.K_d]:
		just_dead = False
		pos_change = 1

	if is_god:
		god_sound.unpause()
	else:
		game_sound.unpause()
	bullets = []
	bulletSprites =pygame.sprite.Group()

	user.end_slow()
	user.end_score()

	user.reset()
	obstacleGroup.empty()
	powers.empty()
	
	cadeira = [obstacle(random.choice(cadeiras_ref), obstacle_speed, user.slow_time())]
	obstacleGroup.add(cadeira)

	pygame.time.set_timer(USEREVENT + 1, random.randint(1000, 1500))
Beispiel #3
0
from alarmexception import *
from magnet import *
from obstacle import *
from ES import *
from coin import * 
from nitro import *
from bullet import *
from getch import _getChUnix as getChar
import signal
import os
import time
for i in range(25):
	cc=coin()
	cc.conprin()
for i in range(35):
	oo=obstacle()
	oo.obsprin()
for i in range(15):
	nit=nitro()
	nit.nitprin()
while True:
	board1.printt(man)	
	#print(board1.itr)
	def alarmhandler(signum,frame):
		raise AlarmException
	def user_input(timeout=0.5):
		signal.signal(signal.SIGALRM,alarmhandler)
		signal.setitimer(signal.ITIMER_REAL,timeout)
		try:
			text = getChar()()
			signal.alarm(0)
Beispiel #4
0
    highscore=0

#create a temporary variable to hold and compare highscore
temp = highscore

#open file to write highscore
fileO = open("highscore.txt","w")

#create highscore label in bottom left
highLabel = label(pos=(-350,-350,0), text='Highscore: %d' % temp, box = False)

#create ball
b1=bird()

#create pipe obstacles
obs1=obstacle(sceneRange)
obs2=obstacle(sceneRange*2)
#obs2=cylinder(pos=(150,-150,0),axis=(0,150,0),radius=75/2,color=color.green)
    
#create obstacle velocity constants
dt=.01
Vx=25

#create player and draw score
p1=player()

#draw the start game prompt label
startLabel = label(pos=(0,0,0),text='Press Enter to start!')


Beispiel #5
0
def game_loop():
	global is_god, intro, selecting, GG, side_shooting, score, intro, ultima_cadeira, aluno, user,\
	bullets, bulletSprites, obstacleGroup, cadeira, pause, shooting, obstacle_speed, time_change, pos_change,\
	power_up_change, powers

	intro = False
	selecting = False
	colliding = False
	collide_change = False
	just_dead = False
	pos_change = 0
	shooting = True
	shoot_time = 800
	color_change = black
	obstacle_speed = 3
	speed_change = 0.05
	time_change = 0
	score_string = ""
	name_string = ""

	shoot_sound.set_volume(0.4)

	if is_god:
		game_sound.stop()
		god_sound.play(soundtrack_2)

	aluno = pygame.sprite.GroupSingle(player())
	user = (aluno.sprites())[0]
	bullets = []
	bulletSprites =pygame.sprite.Group()
	obstacleGroup = pygame.sprite.Group()
	powers = pygame.sprite.Group()
	cadeira = [obstacle(random.choice(cadeiras_ref), obstacle_speed, user.slow_time())]
	obstacleGroup.add(cadeira)

	pygame.time.set_timer(USEREVENT + 1, random.randint(1000 - time_change, 1500 - time_change))
	power_up_change = random.randint(5, 9)

	while True:
		pygame.display.update()

		if not pygame.mixer.get_busy():
			if is_god:
				god_sound.play(soundtrack_2)
			else:
				game_sound.play(soundtrack)

		#obtem a posicao do aluno
		for i in aluno:
			aluno_pos = i.pos()

		#criacao de cronometros
		if user.score_change() != 1:
			pygame.time.set_timer(USEREVENT + 5, 7000)

		#EVENTOS
		for event in pygame.event.get():
			if event.type == pygame.QUIT:
				pygame.quit()
				quit()

			#eventos do cronometro
			if event.type == USEREVENT + 1:
				cadeira = [obstacle(random.choice(cadeiras_ref), obstacle_speed, user.slow_time())]
				obstacleGroup.add(cadeira)

				if not is_god:
					if power_up_change <= 0:
						power_up_change = random.randint(5, 9)
						power = [power_up(random.randint(1, 4), obstacle_speed)]
						powers.add(power)

				pygame.time.set_timer(USEREVENT + 1, random.randint(1000-time_change, 1500-time_change))

			if event.type == USEREVENT + 2:
				pygame.time.set_timer(USEREVENT + 2, 0)
				shooting = True

			if event.type == USEREVENT + 3:
				pygame.time.set_timer(USEREVENT + 3, 0)
				color_change = black
				if is_god:
					god_sound.unpause()
				else:
					game_sound.unpause()

			if event.type == USEREVENT + 4:
				pygame.time.set_timer(USEREVENT + 4, 0)
				user.end_slow()
				for obstaculo in obstacleGroup:
					obstaculo.speed_change(obstaculo.speed*2)

			if event.type == USEREVENT + 5:
				pygame.time.set_timer(USEREVENT + 5, 0)
				user.end_score()

			if event.type == USEREVENT + 6:
				pygame.time.set_timer(USEREVENT + 6, 0)
				event_6 = False
				side_shooting = False

			if event.type == pygame.KEYDOWN:

				#move o jogador
				if event.key == pygame.K_a:
					pos_change -= 1
				if event.key == pygame.K_d:
					pos_change += 1

				if event.key == pygame.K_p:
					pause = True
					paused()

				#move as balas
				if event.key == pygame.K_UP:
					if not is_god:
						if shooting:
							shoot_sound.play(shoot)
							pygame.time.set_timer(USEREVENT + 2, shoot_time)
							shooting = False
							bulletA = [bullet(aluno_pos[0], 2)]
							bullets+=bulletA
							bulletSprites.add(bulletA[0])
					else:
						bulletA = [bullet(aluno_pos[0], 2)]
						bullets+=bulletA
						bulletSprites.add(bulletA[0])

				if event.key == pygame.K_LEFT and side_shooting:
					if not is_god:
						if shooting:
							shoot_sound.play(shoot)
							pygame.time.set_timer(USEREVENT + 2, shoot_time)
							shooting = False
							bulletA = [bullet(aluno_pos[0], 1)]
							bullets+=bulletA
							bulletSprites.add(bulletA[0])
					else:
						bulletA = [bullet(aluno_pos[0], 1)]
						bullets+=bulletA
						bulletSprites.add(bulletA[0])

				if event.key == pygame.K_RIGHT and side_shooting:
					if not is_god:
						if shooting:
							shoot_sound.play(shoot)
							pygame.time.set_timer(USEREVENT + 2, shoot_time)
							shooting = False
							bulletA = [bullet(aluno_pos[0], 3)]
							bullets+=bulletA
							bulletSprites.add(bulletA[0])
					else:
						bulletA = [bullet(aluno_pos[0], 3)]
						bullets+=bulletA
						bulletSprites.add(bulletA[0])

			if event.type == pygame.KEYUP:
				if event.key == pygame.K_a:
					pos_change += 1
				elif event.key == pygame.K_d:
					pos_change -= 1

		gameDisplay.blit(game_background, (0, 0))

		obstacleGroup.draw(gameDisplay)
		obstacleGroup.update()

		powers.draw(gameDisplay)
		powers.update()

		aluno.draw(gameDisplay)
		aluno.update(pos_change)

		if just_dead:
			just_dead = False

		#detecao de colisoes (obstaculo)
		for obstaculo in obstacleGroup:

			#colisao com o jogador
			if pygame.sprite.collide_rect(user, obstaculo):
				if obstaculo.dif() != 0:
					if user.shield() >= 1:
						score += 5 * user.score_change()
						obstacleGroup.remove(obstaculo)
						user.end_shield()
					else:
						colliding = True

				if is_god:
					score += 20
					obstacleGroup.remove(obstaculo)					

				else:
					if user.is_dead():
						user.update_hp(3)
						ultima_cadeira = obstaculo.nome()
						if is_god:
							god_sound.pause()
						else:
							game_sound.pause()
						death_sound.play(death)
						GG = True
						break

			#colisao com as balas
			if pygame.sprite.spritecollideany(obstaculo, bulletSprites):
				if obstaculo.dif() == 0:
					if is_god:
						score += 40
					else:
						score += 2 * user.score_change()
					pygame.sprite.groupcollide(obstacleGroup, bulletSprites, True, True)
					power_up_change -= 1
					if obstacle_speed <= 4.5:
						obstacle_speed += speed_change
					time_change += 25

				elif obstaculo.dif() == 1:
					if is_god:
						score += 80
					else:
						score += 5 * user.score_change()
					pygame.sprite.groupcollide(obstacleGroup, bulletSprites, True, True)
					power_up_change -= 1
					if obstacle_speed <= 4.5:
						obstacle_speed += speed_change
					time_change += 25

				elif obstaculo.dif() == 2:
					if is_god:
						power_up_change -= 1
						score += 150
						pygame.sprite.groupcollide(obstacleGroup, bulletSprites, True, True)
					else:
						score += 10 * user.score_change()
						pygame.sprite.groupcollide(obstacleGroup, bulletSprites, False, True)
					if obstacle_speed <= 4.5:
						obstacle_speed += speed_change
					time_change += 25

			#quando o jogador ultrapassa um obstaculo
			if obstaculo.pos()[1] > display_height + (obstaculo.height()):
				if obstacle_speed <= 4.5:
						obstacle_speed += speed_change
				power_up_change -= 1

				if obstaculo.dif() == 0:
					if not is_god:
						score -= 2
				elif obstaculo.dif() == 1:
					if not is_god:
						score -= 4
				obstacleGroup.remove(obstaculo)

		#detecao de colisoes (power_up)
		for power in powers:
			if pygame.sprite.spritecollideany(power, bulletSprites):
				pygame.sprite.groupcollide(powers, bulletSprites, True, True)
				power_up_change = random.randint(5, 9)

			if power.pos()[1] > display_height + (power.height()):
				powers.remove(power)
				power_up_change = random.randint(5, 9)

			if pygame.sprite.collide_rect(user, power):
				user.apply(power.type())
				power_up_change = random.randint(5, 9)

				if user.slow_time():
					for obstaculo in obstacleGroup:
						obstaculo.speed_change(obstaculo.speed/2)
					pygame.time.set_timer(USEREVENT + 4, 5000)

				if power.type() == 4:
					side_shooting = True
					pygame.time.set_timer(USEREVENT + 6, 10000)

				powers.remove(power)


		#quando o jogador e atingido por um obstaculo
		if colliding and not collide_change:
			collide_change = True
			if not is_god:
				user.update_hp(-1)
				if user.hp() != 0:
					gasp_sound.play(gasp)
					color_change = bright_red
			pygame.time.set_timer(USEREVENT + 3, 500)

		#mecanismo de tranca
		elif not colliding and collide_change:
			collide_change = False

		colliding = False

		#se o jogador perde
		if GG:
			just_dead = True
			#verifica se bateu o highscore
			table = open('highscore.txt','r')
			s = table.readline()
			i = -1
			while s[i].isdigit():
				score_string = s[i] + score_string
				i-=1
			
			i = 0
			while s[i] != "-":
				name_string += s[i]
				i+=1

			name_string = name_string[:-1]
			i = 0
			table.close

			if score > eval(score_string):
				deathscreen(score, name_string, score_string)
			else:
				crash()
				score_string = ""
				name_string = ""

		else:
			screen_text_center("ECT'S: " + str(score) , 700, 20, 20, black)
			screen_text_center("Paciencia: " +str(user.hp()) , 99, 19, 20, white)
			screen_text_center("Paciencia: " +str(user.hp()) , 100, 20, 20, color_change)
			power_up_display()

		#update
		bulletSprites.update()
		bulletSprites.draw(gameDisplay)
		obstacleGroup.update()
		clock.tick(60)