Crear un simple juego con pygame:

Crear un simple juego con pygame:

Notapor ROBERWEB » Mié Jul 04, 2012 4:21 pm

¿Me pueden ayudar? :roll:
Última edición por ROBERWEB el Jue Jul 05, 2012 5:09 pm, editado 1 vez en total
ROBERWEB
 
Mensajes: 5
Registrado: Mié Jul 04, 2012 4:14 pm

Re: Crear un simple juego con pygame:

Notapor ROBERWEB » Jue Jul 05, 2012 5:06 pm

No se me imprime el texto en la pantalla, ¿me podrian ayudar?... :roll:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# ---------------------------
# Importacion de los módulos
# ---------------------------

import pygame
from pygame.locals import *
import os
import sys
import wx
import time

# -----------
# Constantes
# -----------

SCREEN_WIDTH = 1000
SCREEN_HEIGHT = 600
IMG_DIR = "imagenes"
app = wx.App()
pygame.init()

def load_image(nombre, dir_imagen, alpha=False):
# Encontramos la ruta completa de la imagen
ruta = os.path.join(dir_imagen, nombre)
try:
image = pygame.image.load(ruta)
except:
wx.MessageBox('Error al cargar la imagen!', 'Error ' + ruta, style = wx.YES_NO | wx.ICON_ERROR)
sys.exit(1)
# Comprobar si la imagen tiene "canal alpha" (como los png)
if alpha == True:
image = image.convert_alpha()
else:
image = image.convert()
return image

class Text():
def __init__(self, FontName = None, FontSize = 30):
pygame.font.init()
self.font = pygame.font.Font(FontName, FontSize)
self.size = FontSize

def render(self, surface, text, color, pos):
text = unicode(text, "UTF-8")
x, y = pos


def main():
pygame.init()
# creamos la ventana y le indicamos un titulo:
text = Text()
dinero = 100
text = Text()
size = width, height = 640, 480
screen = pygame.display.set_mode(size)
screen = pygame.display.set_mode((SCREEN_WIDTH,SCREEN_HEIGHT))
pygame.display.set_caption("Como_La_Vida_Misma")

white = (255, 255, 255)
color = (0, 0, 0)

pygame.mixer.init()
pygame.mixer.music.load(os.path.realpath("Song_Storms.mp3"))
pygame.mixer.music.play()

while True:
fondo = load_image("tienda2.png", IMG_DIR, alpha=False)
pass
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
sys.exit()
if event.key == pygame.K_a:
print "-0,50 euros"
print "Has comprado agua embotellada 50cl"
dinero = dinero - 0.5
print "Te queda:"
print dinero
if dinero <50 and dinero >49:
print "Te queda la mitad del dinero que tenias al prindcipio"
if dinero <10:
print "Te estas gastando todo el dinero"
if event.key == pygame.K_b:
print "-1,00 euros"
print "Has comprado refresco 50cl"
dinero = dinero - 1
print "Te queda:"
print dinero
if dinero <50 and dinero >30:
print "Te queda la mitad del dinero que tenias al prindcipio"
if dinero <10:
print "Te estas gastando todo el dinero"
if event.key == pygame.K_c:
print "-1,00 euros"
print "Has comprado agua embotellada 1l"
dinero = dinero - 1
print "Te queda:"
print dinero
if dinero <50 and dinero >30:
print "Te queda la mitad del dinero que tenias al prindcipio"
if dinero <10:
print "Te estas gastando todo el dinero"
if event.key == pygame.K_d:
print "-1,50 euros"
print "Has comprado refresco 1l"
dinero = dinero - 1.5
print "Te queda:"
print dinero
if dinero <50 and dinero >30:
print "Te queda la mitad del dinero que tenias al prindcipio"
if dinero <10:
print "Te estas gastando todo el dinero"

#actualizamos la pantalla
screen.blit(fondo, (0, 0))
text.render(screen, "Hello Word!", white, (0, 0))
pygame.display.flip()

if __name__ == "__main__":
main()
ROBERWEB
 
Mensajes: 5
Registrado: Mié Jul 04, 2012 4:14 pm

Re: Crear un simple juego con pygame:

Notapor Barajas » Jue Jul 05, 2012 6:51 pm

Es un error muy simple en el método de "render" de "text"

text.render(screen, "Hello Word!", white, (0, 0))


si voy al método lo que veo es:

def render(self, surface, text, color, pos):
text = unicode(text, "UTF-8")
x, y = pos


nunca estas dibujando el texto :)

eso se arregla muy facil:

class Text():
def __init__(self, FontName = None, FontSize = 30):
pygame.font.init()
self.font = pygame.font.Font(FontName, FontSize)
self.size = FontSize

def render(self, surface, text, color, pos):
text = unicode(text, "UTF-8")
x, y = pos
#lo que hace la función es crear una imagen basada en el texto...
ima_text = self.font.render(text, 5, color)
#y hay que "pegarla" en la superficie...
surface.blit(ima_text, (x,y))


Espero que esto te sirva :)
Vi veri universum vivus vici
Avatar de Usuario
Barajas
 
Mensajes: 209
Registrado: Mar Nov 16, 2010 12:06 am

Re: Crear un simple juego con pygame:

Notapor ROBERWEB » Jue Dic 27, 2012 1:26 pm

Muchas Gracias!!!. Lo siento por no haberte las dado antes, he estado muy liado... :D
try:
print "Gracias!!!"
except:
exit()
ROBERWEB
 
Mensajes: 5
Registrado: Mié Jul 04, 2012 4:14 pm


Volver a Videojuegos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado