Então galera nessa parte do tutorial vamos aprender como carregar e manipular imagens, o pygame tem a classe image com o metodo load que nos permite carregar uma imagem especifica da maquina, a gente passa como argumento a localização da imagem e o metodo retorna um tipo superficie (Surface)
para a gente desenhar a imagem na tela usamos o metodo blit na superficie desejada (no caso na janela), nesse metodo passamos o nosso objeto da imagem seguido da posição onde vai ser desenhado naquela superficie
o recomendado é usar uma imagem render em PNG ou BMP com fundo transparente
podemos deixar o fundo transparente nas imagens usando o metodo set_colorkey e definindo a cor que vai ser transpartente, algumas imagens é necessario converter antes usando o metodo convert, na primeira imagem em volta da miyuki existe um background roxo (255,0,255) que vamos deixar ele transpartente
uma forma mais inteligente é pegar a cor do pixel que vamos deixar transparente usando o metodo get_at
para diminuir a opacidade da imagem usamos o metodo set_alpha, passamos como argumento um valor de 0 a 255
é possivel rotacionar a imagem usando o metodo rotate da classe transform (pygame.transform.rotate), nesse metodo passamos o superficie e o valor da rotação em graus
com o metodo scale da classe transform podemos aumentar ou diminuir o tamanho da imagem
podemos recortar uma pequena superficie de outra superficie usando o metodo subsurface daquela superficie, com isso podemos reaproveitar imagens para montar outras imagens
bom galera é isso, ate a proxima parte desse tutorial \o
by kodo no kami
- Código:
#!/usr/bin/python
import pygame
pygame.init()
largura = (300,200)
janela = pygame.display.set_mode(largura)
miyuki = pygame.image.load("miyuki.png")
while True:
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
pygame.quit()
exit(0)
janela.fill((255,255,255))
pygame.display.flip()
para a gente desenhar a imagem na tela usamos o metodo blit na superficie desejada (no caso na janela), nesse metodo passamos o nosso objeto da imagem seguido da posição onde vai ser desenhado naquela superficie
- Código:
#!/usr/bin/python
import pygame
pygame.init()
largura = (300,200)
janela = pygame.display.set_mode(largura)
miyuki = pygame.image.load("miyuki.png")
while True:
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
pygame.quit()
exit(0)
janela.fill((255,255,255))
janela.blit(miyuki,(100,50))
pygame.display.flip()
o recomendado é usar uma imagem render em PNG ou BMP com fundo transparente
podemos deixar o fundo transparente nas imagens usando o metodo set_colorkey e definindo a cor que vai ser transpartente, algumas imagens é necessario converter antes usando o metodo convert, na primeira imagem em volta da miyuki existe um background roxo (255,0,255) que vamos deixar ele transpartente
- Código:
#!/usr/bin/python
import pygame
pygame.init()
largura = (300,200)
janela = pygame.display.set_mode(largura)
miyuki = pygame.image.load("miyuki.png")
miyuki_novo = miyuki.convert()
miyuki_novo.set_colorkey((255,0,255))
while True:
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
pygame.quit()
exit(0)
janela.fill((255,255,255))
janela.blit(miyuki,(50,50))
janela.blit(miyuki_novo,(150,50))
pygame.display.flip()
uma forma mais inteligente é pegar a cor do pixel que vamos deixar transparente usando o metodo get_at
- Código:
cor_transp = miyuki_novo.get_at((0,0))
miyuki_novo.set_colorkey(cor_transp)
para diminuir a opacidade da imagem usamos o metodo set_alpha, passamos como argumento um valor de 0 a 255
- Código:
miyuki_novo.set_alpha(100)
é possivel rotacionar a imagem usando o metodo rotate da classe transform (pygame.transform.rotate), nesse metodo passamos o superficie e o valor da rotação em graus
- Código:
miyuki_rotate = pygame.transform.rotate(miyuki_novo,-90)
com o metodo scale da classe transform podemos aumentar ou diminuir o tamanho da imagem
- Código:
miyuki_scale = pygame.transform.scale(miyuki_novo,(200,160))
podemos recortar uma pequena superficie de outra superficie usando o metodo subsurface daquela superficie, com isso podemos reaproveitar imagens para montar outras imagens
- Código:
#!/usr/bin/python
import pygame
pygame.init()
largura = (300,200)
janela = pygame.display.set_mode(largura)
miyuki = pygame.image.load("miyuki.png")
railgun = pygame.image.load("railgun.png")
cabeca_miyuki = miyuki.subsurface([20,0,50,50])
railgun.blit(cabeca_miyuki,(85,0))
while True:
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
pygame.quit()
exit(0)
janela.fill((255,255,255))
janela.blit(railgun,(50,10))
pygame.display.flip()
bom galera é isso, ate a proxima parte desse tutorial \o
by kodo no kami