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))
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))
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)
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!')
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)