0
I’m making a simple game, just to test the Pygame library. It turns out that as in the game I would have several objects I found it more feasible to create a function to move them:
def mover(objeto,direcao,velocidade):
if direcao == 'dir':
objeto = (objeto + int(velocidade))
if direcao == 'esq':
objeto = (objeto - int(velocidade))
if direcao == 'cima':
objeto = (objeto - int(velocidade))
if direcao == 'baixo':
objeto = (objeto + int(velocidade))
Where "object" is where I place the variable that holds the position of the object I’m referring to.
I created a ball and to store its position I created the variable "y_bola", and to move it I simply increase, or decrease this value. The problem is that when I put "y_ball" in the "move" function it takes the value of "y_ball" and not the variable itself.
I wanted to know how to update the value of the variable (y_ball) inside the function.
Here follows the whole code:
import pygame, time
pygame.init()
# Configurando a janela
tela = pygame.display.set_mode((400,300))
pygame.display.set_caption('Meu Jogo!')
# Preparando para inciar
jogando = True
#configurando cores
branco = (255,255,255)
preto = (0,0,0)
vermelho = (255,0,0)
verde = (0,255,0)
azul = (0,0,255)
#valores incicias
y_bola = (1890)
direcao = True
# Funções e procedimentos
def mover(objeto,direcao,velocidade):
if direcao == 'dir':
objeto = (objeto + int(velocidade))
if direcao == 'esq':
objeto = (objeto - int(velocidade))
if direcao == 'cima':
objeto = (objeto - int(velocidade))
if direcao == 'baixo':
objeto = (objeto + int(velocidade))
# Iniciando
while jogando == True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
jogando = False
# Desenhando atores e objetos
tela.fill(branco)
#bola subindo
if direcao == True:
y_bola = (y_bola - 7)
cor = (azul)
if y_bola < 50:
direcao = False
cor = (vermelho)
#bola descendo
else:
y_bola = (y_bola + 17)
if y_bola > 1870:
direcao = True
pygame.draw.circle(tela,cor,(550,y_bola),70)
pygame.display.update()
pygame.quit()```