Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/09/2013, 10:40
dimoni73
 
Fecha de Ingreso: septiembre-2013
Ubicación: En Valencia
Mensajes: 1
Antigüedad: 10 años, 6 meses
Puntos: 0
Pygame android eventos desde el teclado

Hola estimados amigos ante todo dar las gracias al equipo de moderadores por haberme aceptado en el foro, hace tiempo que llevo siguiéndolo y me ha ayudado mucho, hoy en día estoy en un nivel medio en Python he probado otros lenguaje pero Python es el lenguaje más amigable, legible y potente que muchos otros dicho esto la cuestión es que estoy programando algún jueguecillo en Pygame para ver como interactua con Android.

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, con perdón 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:


Código Python:
Ver original
  1. import pygame
  2. from string import letters
  3. from string import whitespace
  4.  
  5. try:
  6.     import android
  7. except ImportError:
  8.     android = None
  9.  
  10. pygame.init()
  11. size = width, height = 640, 480
  12.  
  13. #Colors
  14. black = (0, 0, 0)
  15. white = (255, 255, 255)
  16. green = (0, 255, 0)
  17. blue = (0, 0, 255)
  18. red = (255, 0, 0)
  19.  
  20. #Esta es la clase que os comentaba
  21.  
  22. class Text:
  23.     def __init__(self, FontName = None, FontSize = 20):
  24.         pygame.font.init()
  25.         self.font = pygame.font.Font(FontName, FontSize)
  26.         self.size = FontSize
  27.  
  28.     def render(self, surface, text, color, position):
  29.         text = unicode(text, "UTF-8")
  30.         x, y = position
  31.         for i in text.split("\r"):
  32.             surface.blit(self.font.render(i, 1, color), (x, y))
  33.             y += self.size
  34.  
  35.  
  36. def main():
  37.     if android:
  38.         android.init()  
  39.         android.map_key(android.KEYCODE_BACK, pygame.K_ESCAPE)
  40.  
  41.  
  42.     screen = pygame.display.set_mode(size)
  43.  
  44.     text = Text("FreeSansBold.ttf", 30)
  45.     s = ""
  46.     pygame.key.set_repeat(100)
  47.  
  48.  
  49.     while True:
  50.       # Android-specific:
  51.       if android:
  52.           if android.check_pause():
  53.              android.wait_for_resume()
  54.      
  55.  
  56.       for event in pygame.event.get():
  57.         if event.type == pygame.QUIT:
  58.             exit()
  59.         if event.type == pygame.KEYDOWN:
  60.                 # Uno de mis intentos
  61.              if android:
  62.                 android.show_keyboard()
  63.                 android.map_key(android.KEYCODE_W, pygame.K_w)
  64.                 android.map_key(android.KEYCODE_A, pygame.K_a)
  65.                 android.map_key(android.KEYCODE_D, pygame.K_d)
  66.    
  67.             if event.unicode in letters or event.unicode in whitespace:
  68.                s += str(event.unicode)
  69.             if event.key == pygame.K_BACKSPACE and len(s) > 0:
  70.                s = s[:-1]
  71.          
  72.             elif event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE or event.type == pygame.QUIT:
  73.                     break
  74.        
  75.            
  76.     screen.fill(white)
  77.     text.render(screen, s, black, (0, 0))
  78.     pygame.display.flip()
  79.  
  80.  
  81. # This isn't run on Android.
  82. if __name__ == "__main__":
  83.     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...

Última edición por dimoni73; 06/09/2013 a las 10:51