From f448363ab11ebd23a25b16c261643b825337f73c Mon Sep 17 00:00:00 2001 From: R4f43lVB Date: Tue, 11 Mar 2025 14:34:05 -0300 Subject: [PATCH 1/2] =?UTF-8?q?Abstra=C3=A7=C3=A3o=20e=20coes=C3=A3o=20par?= =?UTF-8?q?a=20a=20APS=204=20de=20desagil?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Aumenta o tamanho da cobra.py | 11 - Jogo.py | 370 ++++++++++++++--------------- README.md | 118 ++++----- "T\303\255tulo e dificuldade.py" | 88 ------- __pycache__/titulo.cpython-312.pyc | Bin 2896 -> 3274 bytes titulo.py | 116 +++++---- 6 files changed, 300 insertions(+), 403 deletions(-) delete mode 100644 Aumenta o tamanho da cobra.py delete mode 100644 "T\303\255tulo e dificuldade.py" diff --git a/Aumenta o tamanho da cobra.py b/Aumenta o tamanho da cobra.py deleted file mode 100644 index 4b7135b..0000000 --- a/Aumenta o tamanho da cobra.py +++ /dev/null @@ -1,11 +0,0 @@ -snake.insert(0,list(pos)) -if pos[0][1]==pos_fruta[0][1]: - pontos+=100 - spawn=False -else: - snake.pop() -if spawn==False: - posicao_fruta=[random.randrange(1,(window_x//10))*10, - random.randrange(1,(window_y//10))*10] -spawn=True -game_window.fill(black) \ No newline at end of file diff --git a/Jogo.py b/Jogo.py index 10d6168..6db9bc2 100644 --- a/Jogo.py +++ b/Jogo.py @@ -1,198 +1,172 @@ -#%% importando bibliotecas e iniciando o pygame -import pygame -import time -from baixar_assets import baixar_assets -from configurações import janela_alt,janela_comp,janela -from pont import pontuacao -from titulo import titulo -import random -from pygame.time import wait - -pygame.init() -#%% Configuração da janela -# Configurações da janela do jogo - -# Configurações das paredes (o player morre quando encosta nas paredes) -while True: - #janela=pygame.display.set_mode((janela_comp,janela_alt)) - pygame.display.set_caption('Jogo da cobrinha') - fps=15 - - assets=baixar_assets() - #Sons e Musica do jogo - pygame.mixer.music.load('assets/musica_jogo6.mp3') - pygame.mixer.music.play(-1) # Loop infinito para rodar o jogo inteiro - som_comer = pygame.mixer.Sound('assets/comer_fruta.mp3')# Som quando a cobra comer a fruta - som_colisao = pygame.mixer.Sound('assets/game-over-31.mp3')# Som quando a cobra encostar nela mesma ou nas paredes - - #%% Cobra - sentido='DIR' - prox_dir=sentido - - cobra_pos=[300,150] - cobra_corpo=[(300,150), - (290,150), - (280,150), - (270,150)] - - - - #%% Frutas - - fruta_pos=[random.randrange(1,(janela_comp//10))*10, - random.randrange(1,(janela_alt//10))*10] - fruta_spawn=True - - #%% Pontuação - ''' - def pontuacao(cor,fonte,tam,pontos): - - pygame.font.init() - - pont_font=pygame.font.SysFont(fonte,tam) - - surface=pont_font.render('Pontos: '+str(pontos),True,cor) - - pontos_rect=surface.get_rect() - - janela.blit(surface,pontos_rect) - ''' - clock=pygame.time.Clock() - assets=baixar_assets() - - fruta_pos=[random.randrange(1,(janela_comp//10))*10, - random.randrange(1,(janela_alt//10))*10] - fruta_spawn=True - - # Posição do jogador - - # Estados - FINAL=0 - JOGANDO=1 - MORRENDO=2 - estado=JOGANDO - - pontos=0 - tem_fruta=True - - - fps = titulo() - #%% Definindo o jogo - while True: - - - - janela.fill((0,0,0)) - janela.blit(assets['mundo'],(0,0)) - pontuacao((0,0,0),'open sans',20,pontos) - - for event in pygame.event.get(): - if event.type==pygame.QUIT: - - pygame.quit() - break - - if event.type==pygame.KEYDOWN: - if event.key==pygame.K_LEFT or event.key==pygame.K_a: - if sentido!='DIR': - prox_dir='ESQ' - - elif event.key==pygame.K_RIGHT or event.key==pygame.K_d: - if sentido!='ESQ': - prox_dir='DIR' - elif event.key==pygame.K_UP or event.key==pygame.K_w: - if sentido!='BAIXO': - prox_dir='CIMA' - elif event.key==pygame.K_DOWN or event.key==pygame.K_s: - if sentido!='CIMA': - prox_dir='BAIXO' - - - - # Atualizando a direção - sentido=prox_dir - - # Movimentando a cobra - if sentido=='CIMA': - cobra_pos[1]-=10 - elif sentido=='BAIXO': - cobra_pos[1]+=10 - elif sentido=='ESQ': - cobra_pos[0]-=10 - elif sentido=='DIR': - cobra_pos[0]+=10 - - - # Fazendo a cobra crescer a cada vez que encosta em uma fruta: - cobra_corpo.insert(0,list(cobra_pos)) - if cobra_pos[0]==fruta_pos[0] and cobra_pos[1]==fruta_pos[1]: - pontos+=100 - fruta_spawn=False - som_comer.play() - else: - cobra_corpo.pop() - - - if not fruta_spawn: - fruta_pos=[random.randrange(1,(janela_comp//10))*10, - random.randrange(1,(janela_alt//10))*10] - fruta_spawn=True - - # Desenhando a cobra: - - for i,pos in enumerate(cobra_corpo): - # Caso a cobra mude de direção, muda o sprite - - if list(pos)==cobra_pos: - # Cabeça da cobra - if sentido=='CIMA': - janela.blit(assets['cabeca_cima'],(pos[0],pos[1])) - elif sentido=='BAIXO': - janela.blit(assets['cabeca_baixo'],(pos[0],pos[1])) - elif sentido=='ESQ': - janela.blit(assets['cabeca_esq'],(pos[0],pos[1])) - elif sentido=='DIR': - janela.blit(assets['cabeca_dir'],(pos[0],pos[1])) - elif i==len(cobra_corpo)-1: - # Rabo - if sentido=='CIMA': - janela.blit(assets['rabo_cima'],(pos[0],pos[1])) - elif sentido=='BAIXO': - janela.blit(assets['rabo_baixo'],(pos[0],pos[1])) - elif sentido=='ESQ': - janela.blit(assets['rabo_esq'],(pos[0],pos[1])) - else: - janela.blit(assets['rabo_dir'],(pos[0],pos[1])) - - else: - # Corpo - if sentido in ['BAIXO','CIMA']: - janela.blit(assets['corpo_v'],(pos[0],pos[1])) - else: - janela.blit(assets['corpo_h'],(pos[0],pos[1])) - # desenha a fruta - janela.blit(assets['comida'],(fruta_pos[0],fruta_pos[1])) - - pygame.display.update() - - clock.tick(fps) - - # Morre quando a cobra encosta em si mesma - Game_over=False - for corpo in cobra_corpo[1:]: - if cobra_pos == list(corpo): - Game_over=True - break - - # Game over - - if cobra_pos[0]<0 or cobra_pos[0]>janela_comp-10 or Game_over==True: - som_colisao.play() - wait(2000) - #pygame.quit() - break - elif cobra_pos[1]<0 or cobra_pos[1]>janela_alt-10: - som_colisao.play() - wait(2000) - #pygame.quit() - break \ No newline at end of file +import pygame +import time +from baixar_assets import baixar_assets +from configurações import janela_alt, janela_comp, janela +from pont import pontuacao +from titulo import titulo +import random +from pygame.time import wait + +pygame.init() +# Configurações da janela do jogo + +# Configurações das paredes (o player morre quando encosta nas paredes) +while True: + # janela=pygame.display.set_mode((janela_comp,janela_alt)) + pygame.display.set_caption('Jogo da cobrinha') + fps = 15 + + assets = baixar_assets() + # Sons e Musica do jogo + pygame.mixer.music.load('assets/musica_jogo6.mp3') + pygame.mixer.music.play(-1) # Loop infinito para rodar o jogo inteiro + # Som quando a cobra comer a fruta + som_comer = pygame.mixer.Sound('assets/comer_fruta.mp3') + # Som quando a cobra encostar nela mesma ou nas paredes + som_colisao = pygame.mixer.Sound('assets/game-over-31.mp3') + + sentido = 'DIR' + prox_dir = sentido + + cobra_pos = [300, 150] + cobra_corpo = [(300, 150), + (290, 150), + (280, 150), + (270, 150)] + + fruta_pos = [random.randrange(1, (janela_comp//10))*10, + random.randrange(1, (janela_alt//10))*10] + fruta_spawn = True + + clock = pygame.time.Clock() + assets = baixar_assets() + + fruta_pos = [random.randrange(1, (janela_comp//10))*10, + random.randrange(1, (janela_alt//10))*10] + fruta_spawn = True + + # Posição do jogador + + # Estados + FINAL = 0 + JOGANDO = 1 + MORRENDO = 2 + estado = JOGANDO + + pontos = 0 + tem_fruta = True + + fps = titulo() + + while True: + + janela.fill((0, 0, 0)) + janela.blit(assets['mundo'], (0, 0)) + pontuacao((0, 0, 0), 'open sans', 20, pontos) + + for event in pygame.event.get(): + if event.type == pygame.QUIT: + + pygame.quit() + break + + if event.type == pygame.KEYDOWN: + if event.key == pygame.K_LEFT or event.key == pygame.K_a: + if sentido != 'DIR': + prox_dir = 'ESQ' + + elif event.key == pygame.K_RIGHT or event.key == pygame.K_d: + if sentido != 'ESQ': + prox_dir = 'DIR' + elif event.key == pygame.K_UP or event.key == pygame.K_w: + if sentido != 'BAIXO': + prox_dir = 'CIMA' + elif event.key == pygame.K_DOWN or event.key == pygame.K_s: + if sentido != 'CIMA': + prox_dir = 'BAIXO' + + # Atualizando a direção + sentido = prox_dir + + # Movimentando a cobra + if sentido == 'CIMA': + cobra_pos[1] -= 10 + elif sentido == 'BAIXO': + cobra_pos[1] += 10 + elif sentido == 'ESQ': + cobra_pos[0] -= 10 + elif sentido == 'DIR': + cobra_pos[0] += 10 + + # Fazendo a cobra crescer a cada vez que encosta em uma fruta: + cobra_corpo.insert(0, list(cobra_pos)) + if cobra_pos[0] == fruta_pos[0] and cobra_pos[1] == fruta_pos[1]: + pontos += 100 + fruta_spawn = False + som_comer.play() + else: + cobra_corpo.pop() + + if not fruta_spawn: + fruta_pos = [random.randrange(1, (janela_comp//10))*10, + random.randrange(1, (janela_alt//10))*10] + fruta_spawn = True + + # Desenhando a cobra: + + for i, pos in enumerate(cobra_corpo): + # Caso a cobra mude de direção, muda o sprite + + if list(pos) == cobra_pos: + # Cabeça da cobra + if sentido == 'CIMA': + janela.blit(assets['cabeca_cima'], (pos[0], pos[1])) + elif sentido == 'BAIXO': + janela.blit(assets['cabeca_baixo'], (pos[0], pos[1])) + elif sentido == 'ESQ': + janela.blit(assets['cabeca_esq'], (pos[0], pos[1])) + elif sentido == 'DIR': + janela.blit(assets['cabeca_dir'], (pos[0], pos[1])) + elif i == len(cobra_corpo)-1: + # Rabo + if sentido == 'CIMA': + janela.blit(assets['rabo_cima'], (pos[0], pos[1])) + elif sentido == 'BAIXO': + janela.blit(assets['rabo_baixo'], (pos[0], pos[1])) + elif sentido == 'ESQ': + janela.blit(assets['rabo_esq'], (pos[0], pos[1])) + else: + janela.blit(assets['rabo_dir'], (pos[0], pos[1])) + + else: + # Corpo + if sentido in ['BAIXO', 'CIMA']: + janela.blit(assets['corpo_v'], (pos[0], pos[1])) + else: + janela.blit(assets['corpo_h'], (pos[0], pos[1])) + # desenha a fruta + janela.blit(assets['comida'], (fruta_pos[0], fruta_pos[1])) + + pygame.display.update() + + clock.tick(fps) + + # Morre quando a cobra encosta em si mesma + Game_over = False + for corpo in cobra_corpo[1:]: + if cobra_pos == list(corpo): + Game_over = True + break + + # Game over + + if cobra_pos[0] < 0 or cobra_pos[0] > janela_comp-10 or Game_over == True: + som_colisao.play() + wait(2000) + # pygame.quit() + break + elif cobra_pos[1] < 0 or cobra_pos[1] > janela_alt-10: + som_colisao.play() + wait(2000) + # pygame.quit() + break diff --git a/README.md b/README.md index 9f6db22..f5e0152 100644 --- a/README.md +++ b/README.md @@ -1,59 +1,59 @@ -# snake -EP final de DesSoft - -Jogo da Cobrinha ('Snake') - -Requisitos: - --Biblioteca Pygame - -Instalação: -Abra o seu terminal (Linux ou MacOS) ou Anaconda Prompt (Windows) e digite: - -pip install pygame - -Como rodar o jogo: - -Para rodar o jogo basta abrir o repositório e no arquivo Jogo rodar o programa. -Quando o jogo abrir aparecerá uma tela com o titulo e opções de dificuldade correspodendo: -1-Fácil 10 FPS (mais lento com aparencia um pouco travada, ideal para iniciantes) -2-Médio 15 FPS (velocidade e dificuldades moderadas, modo padrão de jogo) -3-Difícil 30 FPS (velocidade e dificuldade elevadas) -9-Ipossível 70 FPS (Velocidade e dificuldade extremas, não é para amadores) - -Para seslcionar a dificuldade basta precinar a tecla correspondete caso não seja selecionada o jogo rodará na dificuldade média - -Após selecionar a dificuldade basta prssionar a tela ENTER -Com o jogo rodando as teclas AWSD ou as setas do teclado podem ser utilizadas para controlar as direções, nessa parte seu objetivo é coletar o maior número possível de maçãs no mapa e aumentar o temanho da 'snake', porém caso atinja uma das bordas ou seu proprio corpo o jogo acaba e retorna para tela de início. - -Caso deseje jogar novamente basta reptir o processo de seleção de dificuldade -Para sair clique com o mouse no 'X' canto superior direito ou alt+F4 - -Créditos: --Bernardo Hersbach Nagem Sarcinelli --Mordechai Dov Lask --Rafael Vieira Bravo -Referencias: - -Tutorial: -- Snake Game in Python – Using Pygame module: https://www.geeksforgeeks.org/snake-game-in-python-using-pygame-module/ - -Audio e efeitos sonoros: -https://pixabay.com/pt/sound-effects/search/game/?pagi=6 - -Referencias extras Handout Pygame: -https://dessoft.insper-comp.com.br/conteudo/pygame - -Os sprites e fundo foram feitos pela equipe utilizando o Pixilart: -https://www.pixilart.com/ - -Agradecimentos: -Professor Carlos Eduardo Dantas de Menezes - - -Video introdução do jogo: -https://youtu.be/fkSBi-yOcR4 - -Jogando: -https://youtu.be/iMCJdfOADQY - +# snake +EP final de DesSoft + +Jogo da Cobrinha ('Snake') + +Requisitos: + +-Biblioteca Pygame + +Instalação: +Abra o seu terminal (Linux ou MacOS) ou Anaconda Prompt (Windows) e digite: + +pip install pygame + +Como rodar o jogo: + +Para rodar o jogo basta abrir o repositório e no arquivo Jogo rodar o programa. +Quando o jogo abrir aparecerá uma tela com o titulo e opções de dificuldade correspodendo: +1-Fácil 10 FPS (mais lento com aparencia um pouco travada, ideal para iniciantes) +2-Médio 15 FPS (velocidade e dificuldades moderadas, modo padrão de jogo) +3-Difícil 30 FPS (velocidade e dificuldade elevadas) +9-Ipossível 70 FPS (Velocidade e dificuldade extremas, não é para amadores) + +Para seslcionar a dificuldade basta precinar a tecla correspondete caso não seja selecionada o jogo rodará na dificuldade média + +Após selecionar a dificuldade basta prssionar a tela ENTER +Com o jogo rodando as teclas AWSD ou as setas do teclado podem ser utilizadas para controlar as direções, nessa parte seu objetivo é coletar o maior número possível de maçãs no mapa e aumentar o temanho da 'snake', porém caso atinja uma das bordas ou seu proprio corpo o jogo acaba e retorna para tela de início. + +Caso deseje jogar novamente basta reptir o processo de seleção de dificuldade +Para sair clique com o mouse no 'X' canto superior direito ou alt+F4 + +Créditos: +-Bernardo Hersbach Nagem Sarcinelli +-Mordechai Dov Lask +-Rafael Vieira Bravo +Referencias: + +Tutorial: +- Snake Game in Python – Using Pygame module: https://www.geeksforgeeks.org/snake-game-in-python-using-pygame-module/ + +Audio e efeitos sonoros: +https://pixabay.com/pt/sound-effects/search/game/?pagi=6 + +Referencias extras Handout Pygame: +https://dessoft.insper-comp.com.br/conteudo/pygame + +Os sprites e fundo foram feitos pela equipe utilizando o Pixilart: +https://www.pixilart.com/ + +Agradecimentos: +Professor Carlos Eduardo Dantas de Menezes + + +Video introdução do jogo: +https://youtu.be/fkSBi-yOcR4 + +Jogando: +https://youtu.be/iMCJdfOADQY + diff --git "a/T\303\255tulo e dificuldade.py" "b/T\303\255tulo e dificuldade.py" deleted file mode 100644 index 471f4b8..0000000 --- "a/T\303\255tulo e dificuldade.py" +++ /dev/null @@ -1,88 +0,0 @@ -''' -Esse código foi um rascunho feito para a função que define a dificuldade -e cria a tela de título -''' - -import pygame -import time -import random - -pygame.init() -#%% Configuração da janela -# Configurações da janela do jogo -janela_comp=600 -janela_alt=400 -janela=pygame.display.set_mode((janela_comp,janela_alt)) -def titulo(): - tela=True - - while tela: - for event in pygame.event.get(): - if event.type==pygame.QUIT: - pygame.quit() - quit() - if event.type==pygame.KEYDOWN: - if event.key==pygame.K_RETURN: - tela=False - - if event.key==pygame.K_1: - fps=10 - elif event.key==pygame.K_2: - fps=15 - elif event.key==pygame.K_3: - fps=30 - elif event.key==pygame.K_9: - fps=100 - - - janela.fill((0,0,0)) - fonte_tit=pygame.font.SysFont('comic sans', 50) - tex_tit=fonte_tit.render('Jogo da Cobrinha', True, (255,255,255)) - janela.blit(tex_tit,(200,200)) - sel_font=pygame.font.SysFont('comic sans', 50) - esc_font=pygame.font.SysFont('comic sans', 20) - sel_texto=sel_font.render('Escolha a dificuldade: ',True,(255,255,255)) - facil_texto=sel_font.render('1 - Fácil',True,(255,255,255)) - medio_texto=sel_font.render('2 - Médio',True,(255,255,255)) - dif_texto=sel_font.render('3 - Difícil',True,(255,255,255)) - imp_texto=sel_font.render('9 - Impossível (É SÉRIO!)',True,(255,255,255)) - pygame.display.flip() - - -titulo() -''' -def dificuldade(): - tela=True - - while tela: - for event in pygame.event.get(): - if event.type==pygame.QUIT: - pygame.quit() - quit() - if event.type==pygame.KEYDOWN: - if event.key==pygame.K_RETURN: - tela=False - - fps=0 - - janela.fill((0,0,0)) - sel_font=pygame.font.SysFont('comic sans', 50) - esc_font=pygame.font.SysFont('comic sans', 20) - sel_texto=sel_font.render('Escolha a dificuldade: ',True,(255,255,255)) - facil_texto=sel_font.render('1 - Fácil',True,(255,255,255)) - medio_texto=sel_font.render('2 - Médio',True,(255,255,255)) - dif_texto=sel_font.render('3 - Difícil',True,(255,255,255)) - imp_texto=sel_font.render('9 - Impossível (É SÉRIO!)',True,(255,255,255)) - - if event in pygame.event.get(): - if event.type==pygame.KEYDOWN: - if event.key==pygame.K_1: - fps=10 - elif event.key==pygame.K_2: - fps=15 - elif event.key==pygame.K_3: - fps=30 - elif event.key==pygame.K_9: - fps=100 - pygame.display.flip() - ''' \ No newline at end of file diff --git a/__pycache__/titulo.cpython-312.pyc b/__pycache__/titulo.cpython-312.pyc index 4c8586027610a3e401576b1b7ac1e49373b8a361..3792d24641e065472f0d3394894285bcf2801d8f 100644 GIT binary patch literal 3274 zcmbVOU2GFa5Z=4<&-tI&j%i{7$8TbON&(T9fM_X6DiRS?0;-^{tiyK>=Uja5-5J&3 zsA+{%M@mI3Q8`FRxKgDiicll9m3VF*`$B%ySl3iSEiZnH8v5MMo_&s;IwfMHo1NMH zW@c|^cV~Zbx$Fq&2l?sX5RK5ESTTsK2y1VEkVhQi2oYV!Eh!SiRp#;dfD}{1N`f8Y!>XXBMCtWpT5DE#k&g;ef{k!OOo*mL zj^%i{2_l%`Q_cY!MbE6R`+>s#OOT5fA* z?5rQbnz8*WXC&Lkv(7Z1+u-X4rFhaz2H9zUzP9<(|17!p4n{dm8m~q@EdyBS+9U(+Dv_sx~8F zhBW*UX#6b`QXR%fyg|-6Y8_qkS8l^*y^Z5Dw}Cjg7H2A_V1&w0ah#_O#926kv(8k` z!HDUVqR`bS=2x<}RqZVqbHiEM>t<=qSQ?@nbtrlhl(PV?4eCI!-~yh2f;6D07c*@gmbPH^vOija|NQ zX?N(h_uQZ)Lm0TpRi5cisJt8^OB|TV_%#3*Hoj;|U)0Dy*2oJr^6I)QxS?cJY=y&E zc9jc-S${WZ)F7|w_q=9K!dj>@zAZFUOb|ujQUa>TKw9a+0z9)4@Bq+EH$+@qI6+B@ zY#LCakPNw?2*F!SZU=L@75lJZYd!)G3eBqWpXve)Z;FWSmFAUbS+e0i0H~7Yh_SF# zhBC~ojR$LI1sikr`vy>k+@)Z{L)8!FQw>WO7~4TlW>NF18+; zIKSd=ncVwz@2U$0I$mr;Q2U?~PF!4~_pJC^^L@F#WqEzt*Y z1oxPGnGVj=!6mwF?H%OstiDGer)RWRe;9cL1zjipEqY9&C5ltd^}4sC_h3z9FDdWkU-)`ni%UVK9(hc>Fz&KR$Ms1Yb5 z`OWv#cDMJ*v9@E3EVRP@H=v}rYnK1b_mjd1uQ0jE2!5ASV(t8hXEG< z8eG9+7)=xqd6dRfeUJ%r0^=`IQ(t>2ocPLC18#O76*5AQdTK5gIdLM1b`sY z?r2LTzYkn{2|z*@*9G-EDA29SYyAJ{R2KkJyMk#W!Qwh--gd9m!GL1XMk=vAtCE_g z(xa*}HtU1h#!6H}RWokZVwJu)V;zepz@F-sib_L8HO>+VZ1&qd^>$5F=}UUJYqLM? zsdrR#8Y<}L**G=^=tHC9 zg(gTED4?6NfF7m705mi%p+}{Vf<`hybJOe>L%g4onXp_qjRMWX;-pBi4E4TvUE;$x z7#c79i|FW9Et&#)!U}FgcJ|ADQMkcS48`&R-X9fMhUI#xC@Oo3>Y)ZQi+)}xx~HK# zl6lPXViaArXQ1212Qp94IJy@2l`?72d31z7bwLB`x2LaI311#3q>#r#5iY zTv$=@NlsA-B^KdS;^WIh<0|oalvh-PxBs)gi=T|D_!JjYjoyh%{o|J}LDxHR3YpW$ zoI&QCgsvTx2=Iactq5}(#$xgS0(yxHvz(+7*9DZ5<>iRL#2`!HBeWHkh3{q+4@6|i zj&hignwwA%SK+=W0;9|c6UD4XPWEpj6N*8CBC3`E1J_q`LL6NEl4F7!ra?XwDM51> z%C@m=g*B<__VR+i*LPXwB-tl10cP6Q$H`NQ81a1+Q*MZ1-%wbF`-7rmVnFf9VP=Z+ z!P!Oy@kAu1>bIfvCd`Z0M0UZm_$A0&4c-4JkpTS&-x!DG1_ksde z+c(}B?|sV}*}38Hq^D9->kc~WpdWQF>vE3s$)UWxZQb6PwRb*y{q1G@aw2CRNq(@= zdMJH0b#=Y9E8E)j$n#Xnwe}_l>qqmB_OzH1pB;U7g;=?kbBw{9E^5AMuIUl^bbPrd z=Ne3U>qNF?3*jQiF$h&!qP~^!pL=qSPhrT}k-n3<^X!fD%Y7?tIp@XX@CMmZ{6~fb z;~Gh8o@t?LjXbV-mW9DJvZuaR%dGXx3uo8J?mu9K(V5Y8vLj1&tdWPehA_}%+x!p% z&9dmGtj&=UI>Y7RN&r` d&O#S`R>^ZRh3XW{)x-nZ(@gIO1Iqd)d diff --git a/titulo.py b/titulo.py index 8729321..4b1b872 100644 --- a/titulo.py +++ b/titulo.py @@ -1,47 +1,69 @@ -import pygame -from configurações import janela -def titulo(): - tela=True - - #define fps padrão - fps=15 - - while tela: - for event in pygame.event.get(): - if event.type==pygame.QUIT: - pygame.quit() - quit() - if event.type==pygame.KEYDOWN: - if event.key==pygame.K_RETURN: - tela=False - if event.key==pygame.K_1: - fps=10 - elif event.key==pygame.K_2: - fps=15 - elif event.key==pygame.K_3: - fps=30 - elif event.key==pygame.K_9: - fps=70 - - janela.fill((0,145,145)) - fonte_tit=pygame.font.SysFont('comic sans', 50) - tex_tit=fonte_tit.render('Jogo da Cobrinha', True, (255,255,255)) - sel_font=pygame.font.SysFont('comic sans', 35) - esc_font=pygame.font.SysFont('comic sans', 25) - sel_texto=sel_font.render('Escolha a dificuldade: ',True,(255,255,255)) - facil_texto=esc_font.render('1 - Fácil',True,(255,255,255)) - medio_texto=esc_font.render('2 - Médio',True,(255,255,255)) - dif_texto=esc_font.render('3 - Difícil',True,(255,255,255)) - imp_texto=esc_font.render('9 - Impossível (É SÉRIO!)',True,(255,255,255)) - next_texto=sel_font.render('Agora aperte Enter',True,(255,255,255)) - janela.blit(tex_tit,(100,50)) - janela.blit(sel_texto,(70,130)) - janela.blit(facil_texto,(70,180)) - janela.blit(medio_texto,(70,210)) - janela.blit(dif_texto,(70,240)) - janela.blit(imp_texto,(70,270)) - janela.blit(next_texto,(70,300)) - - pygame.display.flip() - - return fps \ No newline at end of file +import pygame +from configurações import janela + + +def seleciona_dificuldade(evento) -> int: + + if evento == pygame.K_1: + return 10 + elif evento == pygame.K_2: + return 15 + elif evento == pygame.K_3: + return 30 + elif evento == pygame.K_9: + return 70 + else: + return 15 + + +def usa_teclas(evento): + + if evento.type == pygame.QUIT: + pygame.quit() + quit() + elif evento.type == pygame.KEYDOWN: + if evento.key == pygame.K_RETURN: + return False + else: + fps = seleciona_dificuldade(evento.key) + return fps + + +def titulo(): + tela = True + + while tela: + for event in pygame.event.get(): + if usa_teclas(event) is not None: + if usa_teclas(event) == False: + tela = False + else: + fps = usa_teclas(event) + print(fps) + + janela.fill((0, 145, 145)) + fonte_tit = pygame.font.SysFont('comic sans', 50) + tex_tit = fonte_tit.render('Jogo da Cobrinha', True, (255, 255, 255)) + sel_font = pygame.font.SysFont('comic sans', 35) + esc_font = pygame.font.SysFont('comic sans', 25) + sel_texto = sel_font.render( + 'Escolha a dificuldade: ', True, (255, 255, 255)) + facil_texto = esc_font.render('1 - Fácil', True, (255, 255, 255)) + medio_texto = esc_font.render('2 - Médio', True, (255, 255, 255)) + dif_texto = esc_font.render('3 - Difícil', True, (255, 255, 255)) + imp_texto = esc_font.render( + '9 - Impossível (É SÉRIO!)', True, (255, 255, 255)) + next_texto = sel_font.render( + 'Agora aperte Enter', True, (255, 255, 255)) + janela.blit(tex_tit, (100, 50)) + janela.blit(sel_texto, (70, 130)) + janela.blit(facil_texto, (70, 180)) + janela.blit(medio_texto, (70, 210)) + janela.blit(dif_texto, (70, 240)) + janela.blit(imp_texto, (70, 270)) + janela.blit(next_texto, (70, 300)) + + pygame.display.flip() + + return fps + From 2a5a3ff93e6c835c3ef58785401b05df67be26c7 Mon Sep 17 00:00:00 2001 From: R4f43lVB Date: Wed, 12 Mar 2025 16:55:30 -0300 Subject: [PATCH 2/2] =?UTF-8?q?Abstra=C3=A7=C3=A3o=20e=20coes=C3=A3o=20par?= =?UTF-8?q?a=20a=20APS=204=20de=20desagil?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jogo.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Jogo.py b/Jogo.py index 6db9bc2..bbd3f6b 100644 --- a/Jogo.py +++ b/Jogo.py @@ -25,6 +25,7 @@ # Som quando a cobra encostar nela mesma ou nas paredes som_colisao = pygame.mixer.Sound('assets/game-over-31.mp3') + sentido = 'DIR' prox_dir = sentido