Continuando o tutorial de pygame, nessa parte vamos aprender como desenhar formas geometricas na tela (quadrados, circulos, poligonos e etc). Para começar a brincar vamos refazer o codigo do tutorial anterior (vamos la se esforce para rescrever o codigo e não copiar ele, gambatte yooo \o ~ ps: o kodo é meio retardado)
para desenhar essas formas geometricas vamos utilizar uma das classes especifica do pygame a classe draw (pygame.draw). A primeira forma que vamos desenhar é o quadrado/retangulo usando o metodo rect (pygame.draw.rect), passamos como argumento para ele a superficie onde vamos desenhar (no caso a nossa janela), a cor sendo uma tupla com 3 valores representando o RGB, uma lista com 4 valores sendo as posições X, Y e o tamanho de X e Y. No proximo exemplo eu criei um quadrado de dimensão 25x25 na posição 100x100 na janela
as vezes precisamos manipular a posição onde aquele determnado objeto é desenhando na tela, nesse caso precisamos usar variaveis e não passar valores estaticos como no exemplo anterior (podemos criar uma tupla/lista ou ate um dicionario para cada objeto do jogo ou um agrupado de tipos de objeto no jogo para ficar mais simples a manipulação por loops)
outra forma geometrica que podemos desenhar é o circulo usando o metodo circle (pygame.draw.circle), nesse metodo passamos como argumento a superficie onde vamos desenhar (no caso a janela), a cor RGB, as posições X e Y, e o por fim o raio
com o metodo line (pygame.draw.line) desenhamos uma linha, o seu argumento é a superficie onde vamos desenhar, o inicio sendo uma tupla com as posições X e Y, e o fim sendo uma tupla com as posições X e Y (vai ser traçado uma reta entre a posição inicio e fim)
a ultima forma geometrica que vamos brincar nesse tutorial é poligono (pygame.draw.polygon), diferente dos outros metodos nesse precisamos definir uma quantidade de pontos (sendo um agrupamento de tuplas X e Y), o primeiro argumento é a nossa superficie como sempre, o segundo argumento é uma tupla de tuplas X e Y (o legal que usando poligonos tu consegue criar algumas coisas 3D em cima do 2D apenas se baseando em profundidade e luminosidade)
um exemplo da bandeira do brasil (ou alguma coisa semelhante a ela kkkk)
é possivel desenhar apenas um pixel na tela, so que isso não é feito pela classe draw e sim direito na superficie desejada usando o metodo set_at dela, nesse metodo passamos como argumento uma tupla com as posições X e Y e a cor desejada sendo uma tupla representando o RGB
vamos desenhar um quadrado pixel a pixel
é isso galera, então ate a parte #3 do tutorial \o
by kodo no kami
- Código:
#!/usr/bin/python
import pygame
pygame.init()
largura = (300,200)
janela = pygame.display.set_mode(largura)
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 desenhar essas formas geometricas vamos utilizar uma das classes especifica do pygame a classe draw (pygame.draw). A primeira forma que vamos desenhar é o quadrado/retangulo usando o metodo rect (pygame.draw.rect), passamos como argumento para ele a superficie onde vamos desenhar (no caso a nossa janela), a cor sendo uma tupla com 3 valores representando o RGB, uma lista com 4 valores sendo as posições X, Y e o tamanho de X e Y. No proximo exemplo eu criei um quadrado de dimensão 25x25 na posição 100x100 na janela
- Código:
#!/usr/bin/python
import pygame
pygame.init()
largura = (300,200)
janela = pygame.display.set_mode(largura)
while True:
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
pygame.quit()
exit(0)
janela.fill((255,255,255))
pygame.draw.rect(janela,(255,0,0),(100,100,25,25))
pygame.display.flip()
as vezes precisamos manipular a posição onde aquele determnado objeto é desenhando na tela, nesse caso precisamos usar variaveis e não passar valores estaticos como no exemplo anterior (podemos criar uma tupla/lista ou ate um dicionario para cada objeto do jogo ou um agrupado de tipos de objeto no jogo para ficar mais simples a manipulação por loops)
- Código:
#!/usr/bin/python
import pygame
pygame.init()
largura = (300,200)
quadrado = [100,100,25,25]
janela = pygame.display.set_mode(largura)
while True:
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
pygame.quit()
exit(0)
janela.fill((255,255,255))
pygame.draw.rect(janela,(255,0,0),quadrado)
pygame.display.flip()
outra forma geometrica que podemos desenhar é o circulo usando o metodo circle (pygame.draw.circle), nesse metodo passamos como argumento a superficie onde vamos desenhar (no caso a janela), a cor RGB, as posições X e Y, e o por fim o raio
- Código:
#!/usr/bin/python
import pygame
pygame.init()
largura = (300,200)
janela = pygame.display.set_mode(largura)
while True:
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
pygame.quit()
exit(0)
janela.fill((255,255,255))
pygame.draw.circle(janela,(255,0,0),(150,100),30)
pygame.display.flip()
com o metodo line (pygame.draw.line) desenhamos uma linha, o seu argumento é a superficie onde vamos desenhar, o inicio sendo uma tupla com as posições X e Y, e o fim sendo uma tupla com as posições X e Y (vai ser traçado uma reta entre a posição inicio e fim)
- Código:
#!/usr/bin/python
import pygame
pygame.init()
largura = (300,200)
janela = pygame.display.set_mode(largura)
while True:
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
pygame.quit()
exit(0)
janela.fill((255,255,255))
pygame.draw.line(janela,(255,0,0),(100,100),(150,100))
pygame.display.flip()
a ultima forma geometrica que vamos brincar nesse tutorial é poligono (pygame.draw.polygon), diferente dos outros metodos nesse precisamos definir uma quantidade de pontos (sendo um agrupamento de tuplas X e Y), o primeiro argumento é a nossa superficie como sempre, o segundo argumento é uma tupla de tuplas X e Y (o legal que usando poligonos tu consegue criar algumas coisas 3D em cima do 2D apenas se baseando em profundidade e luminosidade)
- Código:
#!/usr/bin/python
import pygame
pygame.init()
largura = (300,200)
janela = pygame.display.set_mode(largura)
while True:
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
pygame.quit()
exit(0)
janela.fill((255,255,255))
pygame.draw.polygon(janela,(255,0,0),((100,100),(150,90),(160,120),(90,110)))
pygame.display.flip()
um exemplo da bandeira do brasil (ou alguma coisa semelhante a ela kkkk)
- Código:
#!/usr/bin/python
import pygame
pygame.init()
largura = (300,200)
janela = pygame.display.set_mode(largura)
while True:
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
pygame.quit()
exit(0)
janela.fill((0,255,0))
pygame.draw.polygon(janela,(255,255,0),((75,100),(150,50),(225,100),(150,150)))
pygame.draw.circle(janela,(0,0,255),(150,100),20)
pygame.draw.line(janela,(255,255,255),(130,100),(170,100))
pygame.display.flip()
é possivel desenhar apenas um pixel na tela, so que isso não é feito pela classe draw e sim direito na superficie desejada usando o metodo set_at dela, nesse metodo passamos como argumento uma tupla com as posições X e Y e a cor desejada sendo uma tupla representando o RGB
- Código:
#!/usr/bin/python
import pygame
pygame.init()
largura = (300,200)
janela = pygame.display.set_mode(largura)
while True:
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
pygame.quit()
exit(0)
janela.fill((0,255,0))
janela.set_at((100,100),(255,255,0))
pygame.display.flip()
vamos desenhar um quadrado pixel a pixel
- Código:
#!/usr/bin/python
import pygame
pygame.init()
largura = (300,200)
janela = pygame.display.set_mode(largura)
while True:
for evento in pygame.event.get():
if evento.type == pygame.QUIT:
pygame.quit()
exit(0)
janela.fill((255,255,255))
contx = 100
while contx < 150:
conty = 100
while conty < 150:
janela.set_at((contx,conty),(255,0,0))
conty += 1
contx += 1
pygame.display.flip()
é isso galera, então ate a parte #3 do tutorial \o
by kodo no kami