Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: lord103 on January 28, 2011, 01:20:19 AM

Title: Mover el área de dibujo
Post by: lord103 on January 28, 2011, 01:20:19 AM
Se puede?, digamos que tengo un juego a una resolución 300X200 y quiero que por ejemplo en la pantalla de la wiz quede el área de renderizado centrada y no desde una esquina.
Title: Re: Mover el área de dibujo
Post by: Yawin on January 28, 2011, 01:22:41 AM
a qué te refieres exáctamente? a que la coordenada 0,0 quede en el centro?
Lo dudo. Yo te recomiendo que hagas todos tus cálculos con el 0,0 como origen de coordenadas y le añadas un +aux_x y +aux_y que sean tu resolución/2.

No se si me explico xD
Title: Re: Mover el área de dibujo
Post by: lord103 on January 28, 2011, 01:46:15 AM
es que el área de juego se dibuje desde un punto específico y no desde la coordenada 0,0. Estaba pensando sumarle a todos los procesos una coordenada auxiliar como tu dices, no puedo hacer eso si utilizo un scroll.
Title: Re: Mover el área de dibujo
Post by: gecko on January 28, 2011, 04:12:07 AM
podes usar el scroll dentro de una region, y a esa region definirla con el margen o el offset que queres.

Podrias asignar todos los procesos a esa region, teniendo o no el scroll... CREO :D
Title: Re: Mover el área de dibujo
Post by: lord103 on January 28, 2011, 04:30:38 AM
Si, exactamente eso, gracias.
Title: Re: Mover el área de dibujo
Post by: Windgate on January 28, 2011, 12:11:41 PM
¿Qué utilidad puede tener dejar ese "margen" sin nada en una pantalla ya de por sí pequeña como la de la Wiz?

Por cierto, se me ocurre que estaría bien poder tener una forma de acceder a toda la jerarquía de procesos desde cierto identificador para asignar a todos region=1;

Algo así como signal ( id , S_REGION1_TREE )

Ya sé que no es una tarea frecuente, pero sería una utilidad más que no implica consumo adicional de recursos xD
Title: Re: Mover el área de dibujo
Post by: gecko on January 28, 2011, 12:55:28 PM
se me ocurre a mi que para hacer una remake que respete la resolucion del original...

O hacer escenas tipo cinematograficas con bordes negros, pero de una forma un poco complicada :)
Title: Re: Mover el área de dibujo
Post by: SplinterGU on January 28, 2011, 11:28:04 PM
se puede hacer con codigo bennugd, aunque si estaria bueno, lastima que region es una variable basica, y no tiene relacion con signal que si lo es.
Title: Re: Mover el área de dibujo
Post by: Windgate on January 31, 2011, 02:18:02 AM
Quote from: SplinterGU on January 28, 2011, 11:28:04 PM
se puede hacer con codigo bennugd, aunque si estaria bueno, lastima que region es una variable basica, y no tiene relacion con signal que si lo es.

¿Cómo se puede acceder desde un proceso a todos sus hijos?, ¿Hay alguna función tipo collision que retorna los distintos identificadores uno a uno si se ejecuta dentro del mismo FRAME?
Title: Re: Mover el área de dibujo
Post by: SplinterGU on January 31, 2011, 04:03:11 PM
"son" es el id del primer hijo, luego de ahi, son "smallbro" y "bigbro", para un lado o para otro, en teoria todos deberian ser smallbro (creo), y cada uno de los hijos lo mismo, "son" y asi recursivamente.
Title: Re: Mover el área de dibujo
Post by: Drumpi on February 01, 2011, 01:21:15 AM
¿"son" no iba devolviendo cada hijo en cada llamada hasta terminar o el frame o es un sueño que tuve cuando me leia el tocho del manual de DIV? ^^U
Si no, siempre se puede acudir a GET_ID y consultar su FATHER.
Title: Re: Mover el área de dibujo
Post by: SplinterGU on February 01, 2011, 02:04:36 AM
no, "son" es una variable... las variables no cambian con cada acceso, eso lo hacen algunas funciones.
Title: Re: Mover el área de dibujo
Post by: SplinterGU on February 01, 2011, 02:10:29 AM
help div

LOCAL father



father; // Código identificador del proceso padre


Esta variable predefinida es LOCAL, lo que significa que cada proceso tendrá su propio valor en su variable father.

Esta variable contiene siempre el código identificador del proceso que creó (llamó) al proceso actual (el que posee esta variable), es decir, indica qué proceso fue el que lo invocó.

Dentro del lenguaje se denomina proceso padre al que llama a otro proceso, y proceso hijo al que ha sido llamado. Para más información ver las jerarquías de procesos en el lenguaje.

El gestor de procesos de DIV es el proceso denominado div_main y es el encargado de crear el proceso principal del programa (PROGRAM) al comienzo de la ejecución del juego. Por lo tanto, éste será el padre del programa principal, así como el padre de todos los procesos que queden huérfanos (procesos cuyo padre haya muerto o finalizado antes que ellos, ver estados de un proceso).



Nota: El código identificador del proceso hijo se indica en la variable local predefinida son.

Ver: Datos locales - Código identificador - Jerarquias de procesos



LOCAL son



son=0; // Código identificador del proceso hijo


Esta variable predefinida es LOCAL, lo que significa que cada proceso tendrá su propio valor en su variable son.

Esta variable contiene siempre el código identificador del último proceso que ha creado (llamado) el proceso actual, es decir, indica cuál es el último proceso invocado.

Dentro del lenguaje se denomina proceso padre al que llama a otro proceso, y proceso hijo al que ha sido llamado. Para más información ver las jerarquías de procesos en el lenguaje.

Esta variable estará por defecto a 0 hasta que el proceso realice una llamada a otro proceso, momento en el cual se creará el nuevo proceso indicando su código identificador en son.



Nota: El código identificador del proceso padre se indica en la variable local predefinida father.

Ver: Datos locales - Código identificador - Jerarquías de procesos



LOCAL smallbro



smallbro=0; // Código identificador del hermano menor


Esta variable predefinida es LOCAL, lo que significa que cada proceso tendrá su propio valor en su variable smallbro.

Esta variable contiene siempre el código identificador del siguiente proceso que creó el padre del proceso actual tras él, es decir, cuando el proceso que invocó al actual invocara a algún otro después, esta variable indicará cuál.

A este proceso se le denomina hermano menor dentro del lenguaje. Para más información ver las jerarquías de procesos en el lenguaje.

Esta variable estará por defecto a 0 hasta que el proceso padre realice una llamada a otro proceso, momento en el cual se creará el nuevo proceso (el hermano menor de éste), indicando su código identificador en smallbro (de "small brother").



Nota: El código identificador del hermano mayor se indica en la variable local predefinida bigbro.

Ver: Datos locales - Código identificador - Jerarquías de procesos



LOCAL bigbro



bigbro=0; // Código identificador del hermano mayor


Esta variable predefinida es LOCAL, lo que significa que cada proceso tendrá su propio valor en su variable bigbro.

Esta variable contiene siempre el código identificador del proceso que creó el padre justo antes de crear al proceso actual, es decir, cuando el proceso que invocó al actual hubiera creado otro antes, ésta variable indicará cuál.

A este proceso se le denomina hermano mayor dentro del lenguaje. Para más información ver las jerarquías de procesos en el lenguaje.

Esta variable estará a 0 si el proceso padre (el que invocó al proceso actual) no hubiera creado ningún otro antes. En caso de que hubiera creado uno, o más de uno, bigbro (de "big brother") indicaría el código identificador del último de ellos.



Nota: El código identificador del hermano menor se indica en la variable local predefinida smallbro.

Ver: Datos locales - Código identificador - Jerarquías de procesos