Texto como Graph

Started by Trecek, June 24, 2011, 02:50:58 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Trecek

Hola de nuevo.

Tengo algo dandome vueltas por la cabeza... y no termino de rumiarlo, a ver si me podiais orientar un poquillo pls. (no corre prisa, puedo implementar esto mas adelante o incluso prescindir de ello, es solo un capricho).

Veamos, el juego que estoy haciendo es un juego de tablero por turnos, se maneja con el raton pulsando botones principalmente, cuando "señalas" un boton (pones el raton encima) se ilumina, y si lo pulsas pues cambia el grafico del boton para dar la impresion de boton pulsado, vamos, lo tipico. El grafico correspondiente al raton tambien cambia segun lo que hagas (nada, señalar, pulsar)

La cuestion es que queria añadir una especie de "ayuda en el raton", me explico:
La idea es que cuando pongas el raton encima de un boton (ademas de iluminarse) si no se mueve el raton ni se hace ningun click en un tiempo determinado (pongamos 1.5 segundos por ejemplo) salga un minicartelito diciendo "que pasaria si pulsases ese boton", al estilo de muchos programas que he visto por ahi. Seguro que habeis visto alguno que incluye esto.

Hasta ahora lo que se me ha ocurrido es poner una variable global llamada txt_ayuda_raton de tipo string, cada vez que un boton se ilumina, ademas de cambiar su graph, cambia el contenido de txt_ayuda_raton poniendo la frase adecuada para ese boton.

En el proceso que controla el grafico del raton pondria un control del temporizador timer[0] y si se dan las condiciones antes mencionadas llama al proceso que crea el minicartelito, llamemoslo ayuda_raton().

El proceso ayuda_raton() usaria txt_ayuda_raton obviamente, pero poniendolo como grafico, con la instruccion WRITE_IN_MAP ( FUENTE, "TEXTO", ALINEACIÓN ), vale, hasta aqui todo controlado.
A su vez llama a un proceso fondo_ayuda_raton(x,y,tamaño,alineacion) que debe poner un fondo para distinguir lo que escriba del resto de la pantalla facilmente (un fondo blanco que sea solo ligeramente mas grande que el texto y que obviamente salga por debajo).

El grafico de fondo_ayuda_raton tiene el alto de la fuente elegida para escribir con write_in_map mas un margen, eso no es problema, el problema me viene con el ancho, creo recordar que lei algo por ahi sobre una instruccion para saber el ancho o alto de un grafico, pero no encuentro esa instruccion. DUDA 1.

Mi idea es conseguir el ancho del grafico del texto con esa instruccion y entonces modificar el ancho del grafico de fondo cambiando ¿¿¿size.y??? no la recuerdo y tampoco la encuentro, una variable local que tienen todos los procesos y que vale 100 por defecto, modificandola puedes cambiar el tamaño a lo ancho o a lo largo del grafico de ese proceso (se expresa en porcentaje). DUDA 2.

Ahora viene cuando la matan... esto ultimo es prescindible, puesto que puedo arreglarmelas con lo ya expuesto, pero como soy tan tiquismiquis querria saber si es posible lo siguiente:
A la hora de escribir con write_in_map, lo hare con unas coordenadas relativas a las del raton obviamente. Dividire la pantalla en 4 cuadrantes de igual tamaño de forma que si esta en la parte superior izquierda de la pantalla el cartelito de marras salga a la derecha y por debajo del raton; si esta en la inferior izquierda el cartelito sale por la derecha y por encima del raton... etc, el problema es que como soy asi de puntilloso querria poner los textos alineados en base a los cuatro cuadrantes antes expuestos. Si los alineo en el centro (alineacion 4) y tengo solucionadas las dudas 1 y 2 se que puedo hacerlo, pero la idea de todo esto es aprender a hacer algo un pelin mas complicado.

Asi que si esta el raton en el cuadrante superior derecho, el texto saldria con alineacion 8.
en el superior izquierdo alineacion 0
en el inferior derecho alineacion  2
en el inferior izquierdo alineacion 6
(en otras palabras, siempre alineado lo mas lejos posible del raton)

Lo cual me lo pone un poco mas dificil a la hora de centrar el grafico de fondo, aunque sea del tamaño correcto lo mas logico es que no salga alineado con el texto. para hacerlo habia pensado en (si es posible, que no se como hacerlo) poner 4 puntos de control, uno en cada esquina, y usarlos para situar el grafico dependiendo de la alineacion del texto escrito. DUDA 3.

===============================================================
RESUMIENDO:
DUDA 1: cual es la instruccion para saber el ancho de un grafico?
DUDA 2: cual es la variable que permite modificar en forma de porcentaje el ancho de un grafico?
DUDA 3: como puedo indicarle al proceso que punto de control usar para situar sus coordenadas X e Y?
===============================================================

Juraria que habia leido algo acerca de las tres cosas en el manual de osk, pero... yo que se, estare espesito porque no lo encuentro.

Si he puesto toda la parrafada anterior es por si a alguien le sirve de algo o por si alguien ve algo incorrecto en mi planteamiento de lo que pretendo. Perdonar que me extienda tanto. (joer, lo acabo de releer y mas que exponer unas dudas parece que os estoy haciendo un examen :P )

KeoH

Vaya parrafada xDDD .... yo la lié parecido para mi modulo para hacer bocadillos de conversacion  xD ... para la duda 1 creo q lo que buscas es Graphic_info http://wiki.bennugd.org/index.php?title=Graphic_info

KeoH

para la duda 2: size_x y size_y ;)

Trecek

QuoteMayra: Cual ha sido el resultado azafata?
Kim: Han sido dos respuestas acertadas, a un karma cada una, dos karmas para KeoH!!!

Muchas gracias majo ;)