ominae escribió:1-En la introducción de pygame.mouse está esta frase:
Si el cursor del ratón está oculto, and the input is grabbed to the current display the mouse will enter a virtual mode, donde los movimientos relativos del ratón nunca se detendrán en el límite de la pantalla. Ver las funciones pygame.mouse.set_visible y pygame.mouse.set_grab para conseguir configurarlo.
2- En pygame.mouse.get_rel:
El movimiento relativo del ratón está limitado a los vertices de la pantalla, pero see the virtual input mouse mode for a way around this.
Saludos, estuve haciendo algunas pruebas con pygame y creo tener una idea
de lo que significa este "modo virtual". Por defecto, cuando manipulamos
el puntero del mouse, este reporta coordenadas absolutas y coordenadas
relativas (la cantidad de movimiento contando desde el instante anterior).
Las coordenadas relativas sirven para saber que tan "brusco" o "rápido" es
un movimiento, si muevo el mouse muy lento las coordenadas relativas serán
valores como dx=1 o dx=-1. En cambio si muevo el mouse muy rápido, estos
valores serán mayores, dx=15 por ejemplo.
El punto es que dependiendo de si el mouse está visible o no, las coordenadas
relativas se comportan un poco diferente: Si el mouse está visible y le pido
a pygame que atienda todas las entradas de datos a la aplicación (usando la
sentencia "pygame.event.set_grab"), ocurrirán dos cosas:
1: el mouse quedará "atrapado" en el area de la ventana, no tendré la
posibilidad de mover el cursor a otra aplicación, ni siquiera cerrar la
ventana con un "click" en la cruz de la barra de título.
2: las coordenadas relativas se detendrán al mover el mouse en los bordes de
ventana, a esto hace referencia tu consulta sobre la función 
"pygame.mouse.get_rel". Significa que las coordenadas relativas serán siempre
0, sin exceder los bordes. Creo que la traducción podría ser:
   "El movimiento relativo del mouse está limitado a los vértices de la
   pantalla, pero puede ver acerca del modo de entrada de datos virtual para
   exceder este límite."
y luego dice algo como "El modo de entrada de datos virtual se explica al
principio de la página". Es decir, si llamo a "pygame.event.set_grab" (para
"atrapar" el mouse en la ventana) y dejo el mouse visible, entonces las 
coordenadas relativas se informan excepto en los bordes.
En cambio, si oculto el mouse con la sentencia
"pygame.mouse.set_visible(False)", pygame me informará las coordenadas
relativas todo el tiempo.
Armé un pequeño ejemplo de esto:
 
pueden ver como pygame informa las coordenadas del mouse en la parte
superior de la ventana. Con la tecla ENTER podemos cambiar a modo "virtual".
- Código: Seleccionar todo
- # -*- encoding: utf-8 -*-
 
 import pygame
 
 def imprimir_pantalla(screen, font, mouse, estado_visible):
 fg = (0, 0, 0)
 bg = (200, 200, 200)
 
 pos = font.render(u"Posición absoluta: (%d, %d)" %mouse.pos, 1, fg, bg)
 rel = font.render(u"Posición relativa: (%d, %d)" %mouse.rel, 1, fg, bg)
 
 screen.fill(bg)
 screen.blit(pos, (10, 10))
 screen.blit(rel, (10, 40))
 
 if estado_visible:
 msg = u"El mouse está visible, pulse ENTER"
 else:
 msg = u"En modo virtual, pulse ENTER"
 
 referencia = font.render(msg, 1, fg, bg)
 screen.blit(referencia, (10, 200))
 
 
 pygame.font.init()
 quit = False
 
 screen = pygame.display.set_mode((320, 240))
 font = pygame.font.Font(None, 24)
 estado_visible = True
 
 while not quit:
 
 for e in pygame.event.get():
 if e.type == pygame.QUIT:
 quit = True
 elif e.type == pygame.MOUSEMOTION:
 imprimir_pantalla(screen, font, e, estado_visible)
 elif e.type == pygame.KEYUP:
 if e.key == pygame.K_RETURN:
 if estado_visible:
 estado_visible = False
 pygame.mouse.set_visible(False)
 pygame.event.set_grab(True)
 else:
 estado_visible = True
 pygame.mouse.set_visible(True)
 pygame.event.set_grab(False)
 
 pygame.time.delay(10)
 pygame.display.flip()
 
Con respecto a la consulta 1, modifiqué un poco el primer párrafo intentando
explicar el tema del modo de entrada virtual.
Saludos, y en nombre de todos los que usamos pygame: ¡ Muchas gracias por
tus traducciones !