Ir para conteúdo
Fórum Script Brasil
  • 0

Snake Game


Bersot

Pergunta

Tem 2 questões que não estou sabendo resolver para finalizar meu jogo.

1 - Quando a posição da cobra for a mesma que a da maçã, o tamanho da cobra tem que aumentar.

2 - quando o tamanho aumentar, sempre deixar o tamanho na altura.

OBS da 2 - Nas alterações que fiz tentando resolver, pude perceber que quando aumento o tamanho na ALTURA, quando o usuário mover a cobra para direita ou esquerda, a cobra fica com a orientação errada.

Preciso de uma ideia pra resolver essas 2 questões 

se tiver alguma sugestão de melhoria para o meu codigo, por favor, me informem :))

######CODIGO##############

import pygame
from random import randint

##Variaveis Globais

branco=(255,255,255)
preto=(0,0,0)
vermelho=(255,0,0)
verde=(0,255,0)
azul=(0,0,255)

largura = 640
altura = 480
tamanho = 10
tamanhoMaca = 10 #pixels
tamanhoCobraAltura = 30
tamanhoCobraLargura = 10


try:
    pygame.init()
except:
    print("erro")

relogio = pygame.time.Clock() 
display = pygame.display.set_mode((largura, altura)) 
pygame.display.set_caption("snake") 


def cobra (posiX,posiY):
    pygame.draw.rect(display, preto, [posiX, posiY, tamanhoCobraLargura, tamanhoCobraAltura])

def maca(macaX,macaY):
    pygame.draw.rect(display, vermelho, [macaX, macaY, tamanhoMaca, tamanhoMaca])

def jogo():

    sair = True

    posiX=randint(0, (largura-tamanho)/10)*10
    posiY=randint(0,(altura-tamanho)/10)*10
    macaX = randint(0, (largura - tamanho) / 10) * 10
    macaY = randint(0, (altura - tamanho) / 10) * 10
    velocidadeX=0
    velocidadeY=0

    while sair:

            for event in pygame.event.get():  
                if event.type == pygame.QUIT: 
                    sair = False
                if event.type == pygame.KEYDOWN: 
                    if event.key == pygame.K_LEFT and velocidadeX != tamanho:
                        velocidadeY=0
                        velocidadeX=-tamanho

                    if event.key == pygame.K_RIGHT and velocidadeX != -tamanho:
                        velocidadeY=0
                        velocidadeX=tamanho

                    if event.key == pygame.K_UP and velocidadeY != tamanho:
                        velocidadeX=0
                        velocidadeY=-tamanho

                    if event.key == pygame.K_DOWN and velocidadeY != -tamanho:
                        velocidadeX=0
                        velocidadeY=tamanho

            display.fill(branco) 
            posiX+=velocidadeX 
            posiY+=velocidadeY
            cobra(posiY,posiX)
            maca(macaX,macaY)
            pygame.display.update() 
            relogio.tick(15) 
            if posiX > largura:
                posiX = 0
            if posiX < 0:
                posiX = largura-tamanho
            if posiY > altura:
                posiY = 0
            if posiY < 0:
                posiY = altura - tamanho

            if ((posiY == macaY) and (macaX == posiX)):

                macaX = randint(0, (largura - tamanho) / 10) * 10
                macaY = randint(0, (altura - tamanho) / 10) * 10


jogo()
pygame.quit()
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...