Duvida em Python
Página 1 de 1
Duvida em Python
Estou aprendendo a programar no Python e queria uma ajuda.
Estou fazendo um jogo da cobrinha e queria fazer com que quando ela colidisse com a parede da janela ela fosse para o lado inverso, as não sei como fazer isso... alguém me ajuda?
import pygame as pg
from pygame.locals import *
from random import randint
def on_grid_random():
x = randint(0, largura - tamanho*2)
y = randint(0, cumprimento - tamanho*2)
return (x // tamanho * tamanho, y // tamanho * tamanho)
def colission(c1, c2):
return (c1[0] == c2[0]) and (c1[1] == c2[1])
#Variaveis
UP = 0
DOWN = 2
LEFT = 3
RIGHT = 4
largura = 600
cumprimento = 600
tamanho = 20
tela_aberta = True
pg.init()
screen = pg.display.set_mode((largura, cumprimento))
pg.display.set_caption('Snake')
snake = [(300, 300)]
snake_skin = pg.Surface((tamanho, tamanho))
snake_skin.fill((255, 255, 255))
dot = pg.Surface((1, 1))
dot.fill((255, 255, 255))
apple_pos = on_grid_random()
apple = pg.Surface((tamanho, tamanho))
apple.fill((255, 0, 0))
my_direction = LEFT
clock = pg.time.Clock()
while tela_aberta:
clock.tick(10)
for event in pg.event.get():
if event.type == QUIT:
tela_aberta = False
if event.type == KEYDOWN:
if event.key == K_ESCAPE:
tela_aberta = False
if event.key == K_UP:
my_direction = UP
if event.key == K_DOWN:
my_direction = DOWN
if event.key == K_LEFT:
my_direction = LEFT
if event.key == K_RIGHT:
my_direction = RIGHT
if colission(snake[0], apple_pos):
apple_pos = on_grid_random()
snake.append((0, 0))
for i in range(len(snake) - 1, 0, -1):
snake[i] = (snake[i - 1][0], snake[i - 1][1])
if my_direction == UP:
snake[0] = (snake[0][0], snake[0][1] - tamanho)
if my_direction == DOWN:
snake[0] = (snake[0][0], snake[0][1] + tamanho)
if my_direction == LEFT:
snake[0] = (snake[0][0] - tamanho, snake[0][1])
if my_direction == RIGHT:
snake[0] = (snake[0][0] + tamanho, snake[0][1])
screen.fill((0, 0, 0))
screen.blit(apple, apple_pos)
for y_pos in range(tamanho, cumprimento, tamanho):
for x_pos in range(tamanho, largura, tamanho):
screen.blit(dot, (x_pos, y_pos))
for pos in snake:
screen.blit(snake_skin, pos)
pg.display.update()
pg.quit()
Estou fazendo um jogo da cobrinha e queria fazer com que quando ela colidisse com a parede da janela ela fosse para o lado inverso, as não sei como fazer isso... alguém me ajuda?
import pygame as pg
from pygame.locals import *
from random import randint
def on_grid_random():
x = randint(0, largura - tamanho*2)
y = randint(0, cumprimento - tamanho*2)
return (x // tamanho * tamanho, y // tamanho * tamanho)
def colission(c1, c2):
return (c1[0] == c2[0]) and (c1[1] == c2[1])
#Variaveis
UP = 0
DOWN = 2
LEFT = 3
RIGHT = 4
largura = 600
cumprimento = 600
tamanho = 20
tela_aberta = True
pg.init()
screen = pg.display.set_mode((largura, cumprimento))
pg.display.set_caption('Snake')
snake = [(300, 300)]
snake_skin = pg.Surface((tamanho, tamanho))
snake_skin.fill((255, 255, 255))
dot = pg.Surface((1, 1))
dot.fill((255, 255, 255))
apple_pos = on_grid_random()
apple = pg.Surface((tamanho, tamanho))
apple.fill((255, 0, 0))
my_direction = LEFT
clock = pg.time.Clock()
while tela_aberta:
clock.tick(10)
for event in pg.event.get():
if event.type == QUIT:
tela_aberta = False
if event.type == KEYDOWN:
if event.key == K_ESCAPE:
tela_aberta = False
if event.key == K_UP:
my_direction = UP
if event.key == K_DOWN:
my_direction = DOWN
if event.key == K_LEFT:
my_direction = LEFT
if event.key == K_RIGHT:
my_direction = RIGHT
if colission(snake[0], apple_pos):
apple_pos = on_grid_random()
snake.append((0, 0))
for i in range(len(snake) - 1, 0, -1):
snake[i] = (snake[i - 1][0], snake[i - 1][1])
if my_direction == UP:
snake[0] = (snake[0][0], snake[0][1] - tamanho)
if my_direction == DOWN:
snake[0] = (snake[0][0], snake[0][1] + tamanho)
if my_direction == LEFT:
snake[0] = (snake[0][0] - tamanho, snake[0][1])
if my_direction == RIGHT:
snake[0] = (snake[0][0] + tamanho, snake[0][1])
screen.fill((0, 0, 0))
screen.blit(apple, apple_pos)
for y_pos in range(tamanho, cumprimento, tamanho):
for x_pos in range(tamanho, largura, tamanho):
screen.blit(dot, (x_pos, y_pos))
for pos in snake:
screen.blit(snake_skin, pos)
pg.display.update()
pg.quit()
victorgx22- Membro
- PONTOS : 3008
REPUTAÇÃO : 1
Respeito as regras :
Re: Duvida em Python
victorgx22 escreveu:Estou aprendendo a programar no Python e queria uma ajuda.
Estou fazendo um jogo da cobrinha e queria fazer com que quando ela colidisse com a parede da janela ela fosse para o lado inverso, as não sei como fazer isso... alguém me ajuda?
- Código:
import pygame as pg
from pygame.locals import *
from random import randint
def on_grid_random():
x = randint(0, largura - tamanho*2)
y = randint(0, cumprimento - tamanho*2)
return (x // tamanho * tamanho, y // tamanho * tamanho)
def colission(c1, c2):
return (c1[0] == c2[0]) and (c1[1] == c2[1])
#Variaveis
UP = 0
DOWN = 2
LEFT = 3
RIGHT = 4
largura = 600
cumprimento = 600
tamanho = 20
tela_aberta = True
pg.init()
screen = pg.display.set_mode((largura, cumprimento))
pg.display.set_caption('Snake')
snake = [(300, 300)]
snake_skin = pg.Surface((tamanho, tamanho))
snake_skin.fill((255, 255, 255))
dot = pg.Surface((1, 1))
dot.fill((255, 255, 255))
apple_pos = on_grid_random()
apple = pg.Surface((tamanho, tamanho))
apple.fill((255, 0, 0))
my_direction = LEFT
clock = pg.time.Clock()
while tela_aberta:
clock.tick(10)
for event in pg.event.get():
if event.type == QUIT:
tela_aberta = False
if event.type == KEYDOWN:
if event.key == K_ESCAPE:
tela_aberta = False
if event.key == K_UP:
my_direction = UP
if event.key == K_DOWN:
my_direction = DOWN
if event.key == K_LEFT:
my_direction = LEFT
if event.key == K_RIGHT:
my_direction = RIGHT
if colission(snake[0], apple_pos):
apple_pos = on_grid_random()
snake.append((0, 0))
for i in range(len(snake) - 1, 0, -1):
snake[i] = (snake[i - 1][0], snake[i - 1][1])
if my_direction == UP:
snake[0] = (snake[0][0], snake[0][1] - tamanho)
if my_direction == DOWN:
snake[0] = (snake[0][0], snake[0][1] + tamanho)
if my_direction == LEFT:
snake[0] = (snake[0][0] - tamanho, snake[0][1])
if my_direction == RIGHT:
snake[0] = (snake[0][0] + tamanho, snake[0][1])
screen.fill((0, 0, 0))
screen.blit(apple, apple_pos)
for y_pos in range(tamanho, cumprimento, tamanho):
for x_pos in range(tamanho, largura, tamanho):
screen.blit(dot, (x_pos, y_pos))
for pos in snake:
screen.blit(snake_skin, pos)
pg.display.update()
pg.quit()
victorgx22- Membro
- PONTOS : 3008
REPUTAÇÃO : 1
Respeito as regras :
Re: Duvida em Python
victorgx22 escreveu:Estou aprendendo a programar no Python e queria uma ajuda.
Estou fazendo um jogo da cobrinha e queria fazer com que quando ela colidisse com a parede da janela ela fosse para o lado inverso, as não sei como fazer isso... alguém me ajuda?
victorgx22- Membro
- PONTOS : 3008
REPUTAÇÃO : 1
Respeito as regras :
Tópicos semelhantes
» Problemas de Python no Blender.
» Sistema de teletransporte em Python
» UMA DUVIDA DO C#❓❓❓
» [Duvida] Duvida Com script de mover em direção ao mouse.
» [DÚVIDA] Dúvida sobre script e rigidbody
» Sistema de teletransporte em Python
» UMA DUVIDA DO C#❓❓❓
» [Duvida] Duvida Com script de mover em direção ao mouse.
» [DÚVIDA] Dúvida sobre script e rigidbody
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos