Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



martes, 4 de diciembre de 2012

Mini mapa: Clase para crearlos

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)