Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Creio que existem ide ou programa focado em desenhos ?

tem algum programa que quando temos usando drawable ele vai mostrando em tempo real as figuras se formando ? tipo caso eu queria fazer outras figuras etc.. não precise tipo tentar a sorte e rodar toda hora o programa até chegar o ponto que quero rsrs :) e aqui na Alura tem algum curso focado em desenhos geométricos relacionado a programação ?

2 respostas
solução!

Oiii Daniel, como você está?

Sinto muito pela demora em obter um retorno.

Falando particularmente por mim, até onde eu sei não há programas que cumpram esse propósito.

Geralmente, para não ter que ficar fazendo inúmeros testes, o que se faz é utilizar contas matemáticas para saber em qual posição um objeto ficará na tela.

Para isso, primeiro é importante entender como o sistema de coordenadas funciona. Um mapa de um jogo nada mais é do que uma matriz, certo? Ou seja, terá coordenadas de X e Y referentes a linha e a coluna. Tudo bem até aqui? Imagine agora que temos o seguinte mapa (cada quadradinho é uma posição na matriz):

image

As posições X e Y funcionam da seguinte maneira: a coordenada esquerda e direita chamamos de X (começa de 0 pela esquerda e vai aumentando os valores para se chegar na direita) e a coordenada de cima pra baixo chamamos de Y (começa de 0 em cima e vai aumentando até chegar em baixo) :

image

Tendo isso em mente, para posicionarmos um elemento na tela, o que temos que fazer é pegar a dimensão completa da matriz e escolhermos um ponto conforme a localização que precisamos. Suponha que as dimensões da matriz seja 600 de largura por 400 de altura e você quer posicionar um objeto no canto superior esquerdo, como mostra abaixo:

image

Como queremos posicionar no canto superior esquerdo, teremos pouco X e pouco Y, porque como dito, começa de 0 do canto esquerdo e vai aumentando o valor para se chegar na direita e começa de 0 do canto superior e vai aumentando até chegar em baixo. Poderíamos então colocar a dimensão do objeto como sendo 10 e 10. Veja como fica em código:

import pygame

AMARELO = (255, 255, 0)
pygame.init()

largura = 600
altura = 400
tela = pygame.display.set_mode((largura, altura), 0, 0)
posicao_x = 10
posicao_y = 10
raio = 10
espessura = 5

while True:
    pygame.draw.circle(tela, AMARELO, (posicao_x, posicao_y), raio, espessura)
    pygame.display.update()
    for e in pygame.event.get():
        if e.type == pygame.QUIT:
            exit()

Resultado:

image

E se o objetivo fosse posicionar o objeto no centro? Poderíamos nesse caso utilizar as dimensões 300 para X e 200 para Y, ou seja, a metade do valor de largura e altura da matriz completa:

image

Esse teste dos pontos sempre vai existir, mas tendo essa noção de como é feito o posicionamento teremos uma aproximação maior do ponto que queremos, evitando assim inúmeros testes aleatórios.

Aqui na Alura não temos cursos com esse foco, mas, deixo abaixo um artigo sobre como podemos aliar a matemática a programação de jogos, recomendo a leitura:

Qualquer dúvida estou por aqui, tá bom?

Grande abraço!

ual muito obgd :) entendi perfeitamente

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software