He creado un pequeño juego de naves espaciales utilizando los eventos del mouse es decir "pygame.mouse.MOUSEBUTTONDOWN" y demás eventos del mouse para el movimiento y disparo, los resultados más o menos son aceptables pero se me complica la cosa al principio del juego de prueba cuando quiero que el usuario ingrese su nick o nombre, creando una clase para imprimir el texto directamente pantalla un amigo me dijo si me servía este código que encontró en la red ante todo perdonar si hay algunas tabulaciones mal son los editores tanto GEANY como GEDIT son una porqueria para python cuando te das cuenta esta todo el código mal pero mal y solo te marca errores de normal utilizo ECLIPSE pero hoy voy pegado de tiempo:
import pygame
from string import letters
from string import whitespace
try:
import android
except ImportError:
android = None
pygame.init()
size = width, height = 640, 480
#Colors
black = (0, 0, 0)
white = (255, 255, 255)
green = (0, 255, 0)
blue = (0, 0, 255)
red = (255, 0, 0)
#Esta es la clase que os comentaba
class Text:
def __init__(self, FontName = None, FontSize = 20):
pygame.font.init()
self.font = pygame.font.Font(FontName, FontSize)
self.size = FontSize
def render(self, surface, text, color, position):
text = unicode(text, "UTF-8")
x, y = position
for i in text.split("\r"):
surface.blit(self.font.render(i, 1, color), (x, y))
y += self.size
def main():
if android:
android.init()
android.map_key(android.KEYCODE_BACK, pygame.K_ESCAPE)
screen = pygame.display.set_mode(size)
text = Text("FreeSansBold.ttf", 30)
s = ""
pygame.key.set_repeat(100)
while True:
# Android-specific:
if android:
if android.check_pause():
android.wait_for_resume()
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
if event.type == pygame.KEYDOWN:
# Uno de mis intentos
if android:
android.show_keyboard()
android.map_key(android.KEYCODE_W, pygame.K_w)
android.map_key(android.KEYCODE_A, pygame.K_a)
android.map_key(android.KEYCODE_D, pygame.K_d)
if event.unicode in letters or event.unicode in whitespace:
s += str(event.unicode)
if event.key == pygame.K_BACKSPACE and len(s) > 0:
s = s[:-1]
elif event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE or event.type == pygame.QUIT:
break
screen.fill(white)
text.render(screen, s, black, (0, 0))
pygame.display.flip()
# This isn't run on Android.
if __name__ == "__main__":
main()
Trás repetidos intentos de convertir el teclado del PC en el Android lo único que he conseguido es que me aparezca y desaparezga el teclado en Android pero sin imprimirme las letras en el PC el código funciona de maravilla, por favor ayuda.
Un saludo amigos...