Mini mapa:
Clase para Crearlos
En muchos jugos aparecen mini mapas para indicar una zona mayor del mapa del que aparece en pantalla. Es muy habitual verlos es los juegos de estrategia.
En gambas, hay un control especifico para dibujar, el DrawingArea, además también esta el contenedor ScrollView para contener controles que sean de mayor dimensión que el formulario que tengamos, apareciendo barras de desplazamiento (scrollbar) para movernos por todo el área.
He creado una clase que con un formulario que contiene:
-. Un contenedor ScrollView, y dentro de este un drawingarea
-. Otro drawingarea, de menor dimensión (que usaremos como minimapa)
os ayudara a tener un minimapa con un rectángulo de la zona que estéis actualmente viendo en el ScrollView.
Además con un pequeño código insertado en los eventos _MouseMove() y _Scroll, haréis que el desplazamiento sea simultaneo tanto en el scrollview como en el minimapa:
-->
Public
mini As
New
ClassMiniMapa
….
…..
'configuro
la dimensión h de minimapObjeto
mini.configuro(ScrollViewVentana,
areaMayor, MinimapObjeto)
…...
'-------------------------------
usando la clase classMiniMapa
'
Public
Sub
MinimapObjeto_MouseMove()
mini.movimientoRaton(mouse.x,
mouse.y)
End
Public
Sub
ScrollViewVentana_Scroll()
mini.movimientoVentana()
End
Aqui os dejo una captura del formulario:
Y aqui una captura funcionando
Os dejo aqui un video para que veais como resulta:
Código de descarga: Enlace
Nota:
No confundir con él nuevo componente gb.map para el uso de mapas en nuestras aplicaciones utilizando los mapas de Google y OpenStreetMaps. (enlace foro gambas-es.org)