Autor Tema: Mover el área de dibujo  (Leído 2004 veces)

lord103

  • Jr. Member
  • **
  • Mensajes: 72
  • Karma: 3
Mover el área de dibujo
« en: Enero 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.

Yawin

  • Hero Member
  • *****
  • Mensajes: 1088
  • Karma: 44
  • La primera persona que ha "demosceneado" en Bennu.
Re: Mover el área de dibujo
« Respuesta #1 en: Enero 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
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

lord103

  • Jr. Member
  • **
  • Mensajes: 72
  • Karma: 3
Re: Mover el área de dibujo
« Respuesta #2 en: Enero 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.

gecko

  • Hero Member
  • *****
  • Mensajes: 809
  • Karma: 47
    • Torres Baldi Studio
Re: Mover el área de dibujo
« Respuesta #3 en: Enero 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
Torres Baldi Studio
http://torresbaldi.com

lord103

  • Jr. Member
  • **
  • Mensajes: 72
  • Karma: 3
Re: Mover el área de dibujo
« Respuesta #4 en: Enero 28, 2011, 04:30:38 am »
Si, exactamente eso, gracias.

Windgate

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
Re: Mover el área de dibujo
« Respuesta #5 en: Enero 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
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

gecko

  • Hero Member
  • *****
  • Mensajes: 809
  • Karma: 47
    • Torres Baldi Studio
Re: Mover el área de dibujo
« Respuesta #6 en: Enero 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 :)
Torres Baldi Studio
http://torresbaldi.com

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12905
  • Karma: 378
Re: Mover el área de dibujo
« Respuesta #7 en: Enero 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.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
Re: Mover el área de dibujo
« Respuesta #8 en: Enero 31, 2011, 02:18:02 am »
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?
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12905
  • Karma: 378
Re: Mover el área de dibujo
« Respuesta #9 en: Enero 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.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

  • Hero Member
  • *****
  • Mensajes: 6340
  • Karma: 162
  • Odio el periodo "entre proyectos"
    • La web de Drumpi
Re: Mover el área de dibujo
« Respuesta #10 en: Febrero 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.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12905
  • Karma: 378
Re: Mover el área de dibujo
« Respuesta #11 en: Febrero 01, 2011, 02:04:36 am »
no, "son" es una variable... las variables no cambian con cada acceso, eso lo hacen algunas funciones.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12905
  • Karma: 378
Re: Mover el área de dibujo
« Respuesta #12 en: Febrero 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

Download Lastest BennuGD Release: http://www.bennugd.org/node/2