PortadaÍndiceCalendarioFAQBuscarMiembrosGrupos de UsuariosRegistrarseConectarse

Comparte | 
 

 Curso RPG: 1.2.2 Salto entre celdas.

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
elpupas7
Administrador
Administrador
avatar

España Masculino Ningúno
Reputación : 1236
Mensajes enviados : 3918
Premios : Empty (invisible) Empty (invisible) Empty (invisible) Empty (invisible)

MensajeTema: Curso RPG: 1.2.2 Salto entre celdas.   Mar Dic 13, 2011 12:45 pm

[Tienes que estar registrado y conectado para ver este vínculo]
Curso RPG
Salto entre Celdas
Definiciones:
Ventana de juego: La ventana definida en las propiedades de la aplicación. Será lo que veamos en pantalla.
Mapa: La zona por la que se moverá nuestro PJ. En este caso, todo el mapa estará en un mismo frame.

Scroll de "salto de cámara" en función de la posición del PJ:
[Tienes que estar registrado y conectado para ver este vínculo]

Scroll_celdas (mfa)

Nota: Parece un galimatías, ya lo sé, pero es mas sencillo de lo que parece. La idea es tener dividido el mapa en "celdas" del tamaño de nuestra ventana de juego. Por lo tanto cuando se sale de una celda y se entra en otra ... hacemos saltar la cámara de una celda a otra.
En realidad no hay "scroll", el pj se mueve con el fondo fijo.
Se puede hacer lo mismo poniendo cada "celda" en frames distintos ... que abordaremos próximamente.


Explicación mas detallada:

Este tipo de "scroll" es para aplicar a frames que sean multiplos de la ventana de la aplicación.

Solo tenemos que tener en cuenta dos cosas:
1. En qué celda se va a iniciar el frame.
2. El motor de salto de cámara en función de la posición del PJ.

1. Celda en la que se inicia el frame.

El frame estará dividido en M celdas horizontales y en N celdas verticales.
La fórmula para calcular las coordenadas de la cámara en la que se inicia el frame es la siguiente:

Cx=(M x Rh) - Rh/2
Cy=(N x Rv) - Rv/2


Siendo Rh el tamaño horizontal de la ventana de la aplicación (celda).
Siendo Rv el tamaño o resolución vertical de la celda.

Ejemplo:

Tenemos la ventana de juego en 640x480
Tenemos el frame con un tamaño de 1280x960
Por lo tanto: M=1280/640=2 N=960/480=2
es decir (M,N)=(2,2) esto es, el frame tiene 2 celdas horizontales y 2 verticales.

Si queremos que el frame se inicie en la primera celda, esto es en la celda (M,N)=(1,1):
Cx=(1x640)-640/2=640-320=320 por lo tanto la coordenada x de la cámara será 320.
Cy=(1x480)-480/2=480-240=240 por lo tanto la coordenada y de la cámara será 240.

Si queremos que el frame se inicie en la celda que está abajo a la derecha, esto es (M,N)=(2,2)
Cx=(2x640)-640/2=1280-320=960 por lo tanto la coordenada x de la cámara será 960.
Cy=(2x480)-480/2=960-240=720 por lo tanto la coordenada y de la cámara será 720.

Los valores (Cx,Cy) serán las coordenadas de la cámara cuando se inicie el frame.
Que llevado al MMF, son los valores que se pondrán en el "start of frame".

2. El motor de salto de cámara en función de la posición del PJ.

En este caso, el número de celdas no influye. Sólo nos importa su tamaño.

Las 4 fórmulas a aplicar son las siguientes:

Si Px >= CAMx + Rh/2 entonces CAMx=CAMx + Rh
Si Px <= CAMx - Rh/2 entonces CAMx=CAMx - Rh
Si Py >= CAMy + Rv/2 entonces CAMy=CAMy + Rv
Si Py <= CAMy - Rv/2 entonces CAMy=CAMy - Rv


siendo:
Px: Coordenada x del PJ.
Py: Coordenada y del PJ.
CAMx: Coordenada x de la cámara.
CAMy: Coordenada y de la cámara.
Rh: Resolución horizontal de la celda.
Rv: Resolucion vertical de la celda.

Ejemplo:

Tenemos una celda de 640x480.

Si Px >= CAMx + 320 entonces CAMx=CAMx + 640
Si Px <= CAMx - 320 entonces CAMx=CAMx - 640
Si Py >= CAMy + 240 entonces CAMy=CAMy + 480
Si Py <= CAMy - 240 entonces CAMy=CAMy - 480

Que llevado al MMF es el caso del ejemplo posteado mas arriba.

Nota: (Nobleza obliga)
Este tipo de scroll es bien conocido en el mundo de los videojuegos y en el foro el primero en publicarlo fué Darkylight en el siguiente link: [Tienes que estar registrado y conectado para ver este vínculo]
Volver arriba Ir abajo
Ver perfil de usuario
 
Curso RPG: 1.2.2 Salto entre celdas.
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» Servicio de ómnibus entre Salto y Arrecifes.
» Conflicto diplomático entre Rusia y Suecia por un sketch televisivo
» Convenio de cooperación entre el OCEBA y el municipio de Junín
» El Hospital Bollini abrió la inscripción para el Curso de Asistentes Dentales
» Pelea entre dominicanos y polacos en el metro de Madrid

Permisos de este foro:No puedes responder a temas en este foro.
 :: Ayuda y Tutoriales :: Tutoriales-
Cambiar a: