27-12-2018, 09:05 PM
Hola buenas a todos, soy nuevo y empiezo, cómo no, con un problema :v
Recién hoy estoy aprendiendo pygame, seguí unos tutoriales pero como soy cabezón de tratar de hacerlo todo a mí manera, pues me he hecho un lío...
este es mi código completo:
el caso es que todo funciona menos los bucles para empezar a jugar o salir... según el tutorial, debería de empezar viéndose el rectangulo "snake" en sus coordenadas, y cuando te sales de la pantalla, entonces salir el mensaje de "pulsa ENTER blablabla...", pero en vez de eso, me sale directamente el cartel ese y además, no me funcionan las teclas K_RETURN y K_ESCAPE... a qué se debe?
Disculpen si me explico mal, disculpen si no soy tan especifico... tengo experiencia en el lenguaje GML del programa Game Maker Studio y trato de adaptarme a este nuevo lenguaje, intentando simular mi manera de trabajar en GM... Y acabo de hacer un fail y no encuentro el por qué... ya que no me sale ningún mensaje de error :S No estoy nada acostumbrado a los bucles que controlan todo el juego.. eso siempre me lo dieron masticado
Buenos días a tod@s, yo soy Juan (Kostra o Sobako para los amigos), tengo 28 años y soy de Barcelona, un abrazo a todos y gracias de antebrazo! :B
Recién hoy estoy aprendiendo pygame, seguí unos tutoriales pero como soy cabezón de tratar de hacerlo todo a mí manera, pues me he hecho un lío...
este es mi código completo:
Código:
#base importante
import pygame;
import time;
pygame.init();
##constantes
room_width = 800; #ancho de las rooms
room_height = 600; #altura de las rooms
rplay = pygame.display.set_mode((room_width,room_height));
pygame.display.set_caption("Snake_test1");
font = pygame.font.SysFont(None,25);
#funciones
def draw_text(msg,color):
pantalla_texto = font.render(msg,True,color);
rplay.blit(pantalla_texto,[room_width/2,room_height/2]);
#eventos????
def step():
##parametros generales
fps = pygame.time.Clock(); #init fps
room_speed = 30; #velocidad de la room (fps)
game_end = False; #init para finalizar juego
game_over = False; #init para fin del juego
##bgcolors
blanco = (255,255,255);
negro = (0,0,0);
rojo = (255,0,0);
##snake vars
snake_x = room_width/2; #init x
snake_y = room_height/2; #init y
snake_spd = 4; #velocidad
snake_hspeed = 0; #init direccion horizontal
snake_vspeed = 0; #init direccion vertical
while not game_end:
while not game_over == True:
rplay.fill(blanco);
draw_text("Para continuar pulsa ENTER | Para salir pulsa ESC",rojo);
pygame.display.update();
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
game_end == True;
game_over = False;
if event.key == pygame.K_RETURN:
step();
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_end = True;
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
snake_hspeed = -snake_spd;
snake_vspeed = 0;
if event.key == pygame.K_RIGHT:
snake_hspeed = snake_spd;
snake_vspeed = 0;
if event.key == pygame.K_UP:
snake_hspeed = 0;
snake_vspeed = -snake_spd;
if event.key == pygame.K_DOWN:
snake_hspeed = 0;
snake_vspeed = snake_spd;
if snake_x < 0 or snake_x >= room_width or snake_y < 0 or snake_y >= room_height:
game_end = True;
snake_x += snake_hspeed;
snake_y += snake_vspeed;
rplay.fill(blanco);
pygame.draw.rect(rplay,negro,[snake_x,snake_y,10,10]);
pygame.display.update();
fps.tick(room_speed);
pygame.quit();
quit();
step(); #fin del evento step
el caso es que todo funciona menos los bucles para empezar a jugar o salir... según el tutorial, debería de empezar viéndose el rectangulo "snake" en sus coordenadas, y cuando te sales de la pantalla, entonces salir el mensaje de "pulsa ENTER blablabla...", pero en vez de eso, me sale directamente el cartel ese y además, no me funcionan las teclas K_RETURN y K_ESCAPE... a qué se debe?
Disculpen si me explico mal, disculpen si no soy tan especifico... tengo experiencia en el lenguaje GML del programa Game Maker Studio y trato de adaptarme a este nuevo lenguaje, intentando simular mi manera de trabajar en GM... Y acabo de hacer un fail y no encuentro el por qué... ya que no me sale ningún mensaje de error :S No estoy nada acostumbrado a los bucles que controlan todo el juego.. eso siempre me lo dieron masticado
Buenos días a tod@s, yo soy Juan (Kostra o Sobako para los amigos), tengo 28 años y soy de Barcelona, un abrazo a todos y gracias de antebrazo! :B