Criando o Pacman 01 - Curso Pygame
6:44
Пікірлер
@SaraDeOliveiraAlves
@SaraDeOliveiraAlves 6 күн бұрын
pra funcionar em celular tem que ser https?
@caioadsz
@caioadsz Ай бұрын
Muito obrigado João! tentei usar o pyinstaller para isso, mas não estava dando certo, só consegui com a sua ajuda. parabéns pelo conteúdo!!
@MegaKadhu
@MegaKadhu Ай бұрын
Estou usando o PyCharm desde o começo das aulas, está funcionando bem até agora.
@baccobel
@baccobel Ай бұрын
Valeu, muito grato pela explicação *1000
@oracleinfo68
@oracleinfo68 Ай бұрын
Alguem pagou o cafe dele ?
@oracleinfo68
@oracleinfo68 Ай бұрын
da para gerar para pix ?
@designgil1763
@designgil1763 Ай бұрын
Meu amigo pelo amor de Deus você explica muito bem! você tem algum curso? sou programador a mais de 10 anos e nunca vi uma aula tão bem explicada como a sua.
@designgil1763
@designgil1763 Ай бұрын
já estou tentando procurar um curso aqui seu porque pelo amor de Deus
@darkoo9898
@darkoo9898 Ай бұрын
Que sistema operativo é esse pessoal ?
@rikkhotrader
@rikkhotrader Ай бұрын
640 x 480 é muito ruim
@salesrjai
@salesrjai Ай бұрын
Valeu amigo mesmo!!!
@juliokohlhauf177
@juliokohlhauf177 Ай бұрын
bom dia, único video em pt e mt legal, valeuu. Eu consigo fazer um mapa de calor, pegando pelo CEP?
@hayashi027
@hayashi027 2 ай бұрын
e se for pra apk mobile?
@jorgemedeiros2734
@jorgemedeiros2734 2 ай бұрын
Muito massa João, gostei muito de seu vídeo. Será que é possível salvar a imagem do mapa como imagem ou PDF? Caso exista, você teria como postar ou fazer algum vídeo de como fazer?
@mataplay1632
@mataplay1632 2 ай бұрын
To tentando criar um tbm só que a imagem que coloquei no código , abrir a tela mais fica preta ,só aparece quando fecho a tela aparece a imagem pelo um pequeno período de tempo
@AndréLuiz-e9k
@AndréLuiz-e9k 2 ай бұрын
teria um esquema de enviar a foto para um pasta no servidor e salvar ela no banco de dados ?
@samuelzimmermannprofsam2312
@samuelzimmermannprofsam2312 2 ай бұрын
muito obrigado pela explicação, sou seu fâ!!! Obrigado pelo grande ensino e clareza!! posta mais vídeos!!!
@Emjesusvivendocadadia
@Emjesusvivendocadadia 2 ай бұрын
Cara eu não gosto de da like em KZbin mais vc conseguiu meu like
@samuelzimmermannprofsam2312
@samuelzimmermannprofsam2312 2 ай бұрын
excelente!! parabénSSS!!
@RuanKwai
@RuanKwai 2 ай бұрын
apareceu que "pip nao foi reconhecido " me ajude pf
@DanMRochaa
@DanMRochaa 2 ай бұрын
Muito obrigada por compartilhar conhecimento! 😇
@KarlosCarlos29
@KarlosCarlos29 2 ай бұрын
mano por algum motivo minha cobra n cresce
@Lotus-0010
@Lotus-0010 3 ай бұрын
meu codigo abaixo⬇ import pygame, random from pygame.locals import * # Função auxiliar para gerar posições aleatórias na grade def on_grid_random(): x = random.randint(0, 59) y = random.randint(0, 59) return (x * 10, y * 10) # Função auxiliar para detectar colisão, com hitbox variável def collision(c1, c2, hitbox_size=10): return (abs(c1[0] - c2[0]) < hitbox_size) and (abs(c1[1] - c2[1]) < hitbox_size) # Função para mover inimigos de forma "meio burra" def move_enemy(enemy, snake_head): move_chance = random.randint(0, 10) # Probabilidade de mover na direção da cobra if move_chance > 5: # Apenas 50% de chance de mover na direção certa # Movendo o inimigo em direção à cobra, mas de maneira imprecisa if enemy[0] < snake_head[0]: enemy = (enemy[0] + 10, enemy[1]) elif enemy[0] > snake_head[0]: enemy = (enemy[0] - 10, enemy[1]) if enemy[1] < snake_head[1]: enemy = (enemy[0], enemy[1] + 10) elif enemy[1] > snake_head[1]: enemy = (enemy[0], enemy[1] - 10) else: # Movimento aleatório direction = random.choice([UP, RIGHT, DOWN, LEFT]) if direction == UP: enemy = (enemy[0], enemy[1] - 10) if direction == DOWN: enemy = (enemy[0], enemy[1] + 10) if direction == RIGHT: enemy = (enemy[0] + 10, enemy[1]) if direction == LEFT: enemy = (enemy[0] - 10, enemy[1]) # Garantir que o inimigo não saia da tela enemy = (enemy[0] % 600, enemy[1] % 600) return enemy # Definição de movimentos da cobra UP = 0 RIGHT = 1 DOWN = 2 LEFT = 3 # Inicializando o pygame pygame.init() # Configurações de tela e título screen = pygame.display.set_mode((600, 600)) pygame.display.set_caption('Snake') # Cores WHITE = (255, 255, 255) RED = (255, 0, 0) GREEN = (0, 255, 0) BLACK = (0, 0, 0) YELLOW = (255, 255, 0) # Cor dos inimigos # Inicializando cobra e maçã snake = [(200, 200), (210, 200), (220, 200)] snake_skin = pygame.Surface((10, 10)) snake_skin.fill(WHITE) apple_pos = on_grid_random() apple = pygame.Surface((10, 10)) apple.fill(RED) # Direção inicial da cobra my_direction = LEFT # Configuração de relógio e fonte clock = pygame.time.Clock() font = pygame.font.Font('freesansbold.ttf', 18) # Variáveis de pontuação score = 0 high_score = 0 # Power-ups e obstáculos power_up = None power_up_active = False power_up_duration = 5000 # milissegundos obstacles = [] enemies = [] # Lista para armazenar inimigos # Variáveis de controle do jogo game_over = False difficulty_increase = 5 # Aumenta a dificuldade a cada 5 pontos # Loop principal do jogo while not game_over: clock.tick(10 + (score // difficulty_increase)) # Aumenta a velocidade conforme a pontuação sobe # Verificação de eventos (teclado, fechamento de janela) for event in pygame.event.get(): if event.type == QUIT: pygame.quit() exit() if event.type == KEYDOWN: if event.key == K_UP and my_direction != DOWN: my_direction = UP if event.key == K_DOWN and my_direction != UP: my_direction = DOWN if event.key == K_LEFT and my_direction != RIGHT: my_direction = LEFT if event.key == K_RIGHT and my_direction != LEFT: my_direction = RIGHT # Cobra come a maçã if collision(snake[0], apple_pos): apple_pos = on_grid_random() snake.append((0, 0)) # Aumenta o tamanho da cobra score += 1 # Chance de aparecer um power-up if random.randint(1, 10) > 8 and not power_up: power_up = on_grid_random() # Adicionar obstáculo if score % 10 == 0: # A cada 10 pontos, adicionar um obstáculo obstacles.append(on_grid_random()) # Verifica colisão com power-up, usando uma hitbox maior de 15 pixels if power_up and collision(snake[0], power_up, hitbox_size=15): power_up = None power_up_active = True power_up_timer = pygame.time.get_ticks() # Verifica se o efeito do power-up terminou if power_up_active and pygame.time.get_ticks() - power_up_timer > power_up_duration: power_up_active = False # Verifica colisão com as bordas if snake[0][0] >= 600 or snake[0][1] >= 600 or snake[0][0] < 0 or snake[0][1] < 0: game_over = True # Verifica colisão da cobra consigo mesma for i in range(1, len(snake)): if collision(snake[0], snake[i]): game_over = True # Verifica colisão da cobra com obstáculos for obstacle in obstacles: if collision(snake[0], obstacle): game_over = True # Verifica se o jogador chegou no nível 30 para adicionar inimigos if score >= 30 and len(enemies) == 0: # Adiciona inimigos na tela (2 inimigos inicialmente) enemies.append(on_grid_random()) enemies.append(on_grid_random()) # Mover inimigos "meio burros" for i in range(len(enemies)): enemies[i] = move_enemy(enemies[i], snake[0]) # Verifica colisão com inimigos if collision(snake[0], enemies[i]): game_over = True # Move a cobra for i in range(len(snake) - 1, 0, -1): snake[i] = snake[i - 1] if my_direction == UP: snake[0] = (snake[0][0], snake[0][1] - 10) if my_direction == DOWN: snake[0] = (snake[0][0], snake[0][1] + 10) if my_direction == RIGHT: snake[0] = (snake[0][0] + 10, snake[0][1]) if my_direction == LEFT: snake[0] = (snake[0][0] - 10, snake[0][1]) # Limpa a tela screen.fill(BLACK) # Desenha a maçã screen.blit(apple, apple_pos) # Desenha o power-up if power_up: pygame.draw.circle(screen, GREEN, power_up, 5) # Desenha obstáculos for obstacle in obstacles: pygame.draw.rect(screen, (255, 255, 0), (obstacle[0], obstacle[1], 10, 10)) # Desenha a cobra for pos in snake: screen.blit(snake_skin, pos) # Desenha inimigos for enemy in enemies: pygame.draw.rect(screen, YELLOW, (enemy[0], enemy[1], 10, 10)) # Desenha a pontuação score_font = font.render('Score: %s' % (score), True, WHITE) screen.blit(score_font, (10, 10)) # Atualiza a tela pygame.display.update() # Tela de Game Over while True: # Exibe "Game Over" game_over_font = pygame.font.Font('freesansbold.ttf', 75) game_over_screen = game_over_font.render('Game Over', True, WHITE) screen.blit(game_over_screen, (100, 200)) # Atualiza e exibe o High Score high_score = max(high_score, score) high_score_font = font.render(f'High Score: {high_score}', True, WHITE) screen.blit(high_score_font, (100, 300)) pygame.display.update() # Espera por eventos de fechamento for event in pygame.event.get(): if event.type == QUIT: pygame.quit() exit()
@JohnKramer-yp9kd
@JohnKramer-yp9kd 3 ай бұрын
Eu estou fazendo um jogo em python, e seu curso esta me ajudando muito!!!
@JohnKramer-yp9kd
@JohnKramer-yp9kd 3 ай бұрын
Eu nao acredito que estou aprendendo POO com cachorros 😂😂 vídeo excelente
@altairkusanagi
@altairkusanagi 3 ай бұрын
Boa irmão, valeu
@vivitsunade
@vivitsunade 3 ай бұрын
Gostei
@NAGATOInformatica
@NAGATOInformatica 3 ай бұрын
Excelente João. Vinha buscando essa solução a tempos. Ainda tenho uma demanda dentro desse mesmo assunto que seria em vez de clicar para baixar a foto seria enviar para um armazenamento, ou até mesmo para um e-mail. Poderia me ajudar?
@mariakarla9839
@mariakarla9839 3 ай бұрын
Uma pergunta: o tamanho da sprita tem que ser sempre escrito com o calculo ou pode ser colocado o valor direto? Por exepmo: você aumentou colocando 32*7, mas poderia ser colocado 224 direto?
@vitu-sm5yf
@vitu-sm5yf 17 күн бұрын
pode sim, ele so colocou assim pra ficar mais facil de mudar caso precise
@mariakarla9839
@mariakarla9839 3 ай бұрын
Esse tipo de colisão tbm serve para o uso do mouse? Por exemplo se eu quiser clicar em alguma coisa na tela.
@icarorafaelborgesdafonseca2600
@icarorafaelborgesdafonseca2600 4 ай бұрын
Playlist de PyQGIS está ótima, espero que você volte, mano
@icarorafaelborgesdafonseca2600
@icarorafaelborgesdafonseca2600 4 ай бұрын
Parabéns, meu querido. Por favor, continue com a série ;)
@pietrokina
@pietrokina 4 ай бұрын
amigo,meu notebook ta dando erro de pygame.surface.surface oq eu faco
@alesb6939
@alesb6939 4 ай бұрын
só funcionou quando eu deixei esses comandos (abaixo) dentro do laço for, será que é minha versão do pygame ou a IDE que estou usando?? for event in pygame.event.get(): if event.type == QUIT: pygame.quit() exit() if pygame.key.get_pressed()[K_a]: x = x - 20 if pygame.key.get_pressed()[K_d]: x = x + 20 if pygame.key.get_pressed()[K_w]: y = y - 20 if pygame.key.get_pressed()[K_s]: y = y + 20
@F00000x
@F00000x 3 ай бұрын
Mas é assim mesmo. O loop for nesse caso, serve para detectar os eventos na janela.
@alesb6939
@alesb6939 4 ай бұрын
Eu uso o pycharm pra programar em python, qnd eu executo o código, invés do retângulo andar sozinho em linha reta, a iteração do laço for só acontece itera qnd eu faço algum movimento no teclado ou mouse, kkk que doideira né, eu n faço ideia de como arrumar isso
@miquezin3590
@miquezin3590 3 ай бұрын
Opa, tava com o mesmo problema e também uso o PyCharm. Mas não é um erro dele ou da sua IDE como eu pensava, é só fazer o seguinte: O seu deve estar assim tela.fill(( 0, 0, 0 )) dentro do *while True*. É só tira-lo daí e colocá-lo dentro do comando: *for event in pygame.event.get()* Feito isso o resto fica igual a como ele ensinou
@comotransformarsuamente
@comotransformarsuamente 4 ай бұрын
Excelente o conteúdo. Mas no meu jogo acontece um bug: "' As vezes quando há a colisão o bloco azul some da tela. Como posso corrigir isso?
@aislanramos5332
@aislanramos5332 4 ай бұрын
Já teve problema com o Edge no modo de compatibilidade do IE? Aqui não funciona
@nathalialima1560
@nathalialima1560 4 ай бұрын
Muito bom! Parabéns
@tiagodossantossilva
@tiagodossantossilva 4 ай бұрын
Como é que eu vou lembrar de todos esses códigos, eu tenho que fazer várias vezes? Eu entendo mas como eu vou pegar todas essa informações, eu só entendo que você explica, mas eu não vou conseguir fazer tudo isso, eu só consigo pescando.
@manualdomatheus
@manualdomatheus 4 ай бұрын
link off
@investidor_anonimo
@investidor_anonimo 4 ай бұрын
Cheguei aos 100mil esse ano e estou mostrando minha trajetória como CLT até o milhão. Rumo ao milhão 🚀
@gabrielcardoso776
@gabrielcardoso776 4 ай бұрын
uma dica, ao inves de sempre fazer "variavel = variavel + 1" faça "variavel += 1", é mais curto e mais rapido tb, e é exatamente a mesma coisa
@fordius2599
@fordius2599 4 ай бұрын
Amei teu canal 🎉
@Adestudos
@Adestudos 4 ай бұрын
@Adestudos
@Adestudos 4 ай бұрын
@maisnaterra
@maisnaterra 4 ай бұрын
o sabo so não aparece na tela nenhum erro no output, não faço ideia do que seja
@diegofagundes-es2mb
@diegofagundes-es2mb 4 ай бұрын
Eu fiquei 2 horas procurando um bug quando eu fui ver eu tinha nomeado a pasta como musica e nao como musicas e um errinho ja deu bug em tudo kkkkkkkkk
@granapelaweb
@granapelaweb 4 ай бұрын
Show, ganhou + 1 script
@Neville7537
@Neville7537 5 ай бұрын
Ainda hoje conheci você e já me tornei fã
@antipapafrancisco2787
@antipapafrancisco2787 5 ай бұрын
Posso usar o exit() nativo ao invés do sys.exit()? Por que eu devo importar o exit do sys se o próprio Python tem a função de saída? Uai
@popnipe
@popnipe 5 ай бұрын
mesmo depois de 3 anos, ainda é um dos melhores tutoriais que achei. Obrigado João Tinti, obrigado!🤩