Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema de sincronizacion con Input al usar Menú

Iniciado por Hechelion, 29 de Agosto de 2007, 08:59:22 AM

« anterior - próximo »

Hechelion

Buenas. Actualemente estoy haciendo un clon del juego Konquest para aprender a utilizar la libreria.
La descripción del juego original la encuentran aca
http://en.wikipedia.org/wiki/Konquest

Dentro del juego utilizo una grilla de 16*16 cuadros y cada cuadro es de 32*32 pixel.
Tengo una procedimiento que dibuja la grilla
Luego hice un procedimiento para capturar la posición del mouse usando  input.mouse.x e .y.

Si tengo visible un menú en VB con las opciones del juego, ocurre que la posición del mouse no coincide con el dibujo de la grilla usando el metodo DRAWline.

El inicio de la grilla en el eje Y, lo dibujo a los 70 pixel y al revisar la coordenada del mouse me marca 65.
El fin de la grilla en el eje Y, lo dibujo a los 600 pixel y al revisar la coordenada del mouse me marca 575.

Lo raro es que si elimino el menú, la situación se arregla y la posición del mouse me concuerda 100% con la posición del dibujo. Pense que al agregarse el menú significaría un corrimiento en los pixel del dibujo o de la captura del mouse, el problema es que este corrimiento no es constante, ya que al inicio es de +5 pixel y cerca del final de la pantalla es de +25 pixel.
No se si sera un error de la libreria o si debo hacer algo para compensar el uso del menú (de momento me estoy olvidando de usar el menú)

PD: Alguien sabe donde poder subir el proyecto para compartilo y que no sea muy atadoso (registros limitados a descargar controles y cosas por el estilo)

[EX3]

Esto es por que dx_GFX para definir un area de dibujo acorde al modo de video que se le establece redimensiona la ventana dando por hecho que esta tiene establecido un borde fijo simple y que esta vacia, no tiene en cuenta si el usuario agrega barras de menus, barras de estado o cualquier otro control que altere el area de cliente (la parte interior de la ventana donde puedes operar con controles). Sin embargo tanto dx_GFX a la hora de definir el area de dibujo asi como dx_Input el area de trabajo del cursor del raton se basan en el area de cliente real de la ventana, por lo que si esta alterada por una barra de menus o similar el mapa de coordenadas no sera correcto.

La forma correcta de trabajar tanto para evitar problemas con dx_GFX como con dx_Input respecto a las coordenadas es con una ventana de borde fijo y vacia. En vez de usar menus de la interfaz de Windows implementa un menu de opciones sencillo (tipo como los de espectrum para no complicarte si no quieres: F1 - Jugar, F2 - Opciones, F3- Salir...). Ten en cuenta que la ventana no es mas que una simple pizarra, todo lo visual deberia ser implementado unicamente con dx_GFX.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Hechelion

Habría ahorrado bastante trabajo poder usar el menú, pero imaginaba que sería un problema no muy sencillo.

De momento estoy creando una barra con el DRAWbox y usando frames como botones, a ver si sale algo decente XD-

PD: Vuelvo a preguntar, alguien conoce alguna página donde colgar el código y el ejecutable de un proyecto.

RobiHm

Yo suelo subir las cosas en

http://www.badongo.com/

El tema de dx_lib32 y el uso de los menús de windows lo resuelve completamente [EX3] aqui xD
http://www.stratos-ad.com/forums3/viewtopic.php?t=8572


Decir que si saco time voy a preparar un par de clases : un botón y un TextBox en dx_lib32 para ahorrar trabajo a la gente.
Web : Indómita
Blog : MiBlog
Evobas : Evobas
Kobox : Kobox






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.