05 de Julio de 2021, 08:09:37 pm
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
1 Hora
1 Día
1 Semana
1 Mes
Siempre
Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias
:
Inicio
Ayuda
Buscar
Ingresar
Registrarse
Karoshi MSX Community
>
Desarrollo MSX
>
Desarrollo (Español/Spanish)
>
Implementado movimiento de balas
Páginas: [
1
]
« anterior
próximo »
Imprimir
Autor
Tema: Implementado movimiento de balas (Leído 2804 veces)
0 Usuarios y 1 Visitante están viendo este tema.
samsaga2
Karoshi Fan
Mensajes: 76
Implementado movimiento de balas
«
:
18 de Enero de 2012, 11:33:59 am »
A lo mejor alguien se ha encontrado con este problema antes y pueda orientarme.
Tengo que implementar balas en mi juego. He pensado en dos posibles soluciones:
- El algoritmo bresenham de toda la vida para dibujar lineas
- Utilizar un simple calculo de vectores
m=(x2-x1)/(y2-y1)
tirando de números enteros con
fixed point
(¿punto fijo en castellano?).
El primer método creo que sería más lento que el segundo. Sobretodo si la bala avanza más de un pixel de velocidad.
El segundo método no sé si 16bits (usando 8 bits para decimales) tiene suficiente precisión. Tal vez podría mirar de implementarlo usando 24bits para tener 16 de precisión pero afectaría a la velocidad.
En línea
pitpan
Karoshi Forum's Guru
Mensajes: 1812
Re: Implementado movimiento de balas
«
Respuesta #1 :
18 de Enero de 2012, 12:49:58 pm »
En principio, Bresenham es la opción más eficiente y rápida. Búscate una buena implementación para Z80 y, evidentemente, ajústala para tu caso. En su día Ramones me enseñó su versión, empleada en el Majikazo si no recuerdo mal, y funcionaba muy bien, pero como le tenemos de baja, no sé qué recomendarte.
Lo de usar punto fijo de 16 bits es una opción, pero no como lo indicas, sino basándote en ángulos. Es decir, en el momento cero, cuando "sale" la bala, calculas el ángulo que te interesa (dividiendo la circunferencia completa en una potencia de 2 para que la tabla funcione mejor). A partir de ahí, lees tu tabla trigonométrica generada, y en cada frame (o los que tú decidas) sumas el valor de punto fijo que te da la tabla. No es óptimo y es menos preciso, aunque es más rápido en ejecución una vez que hayas determinado la parte complicada: qué ángulo elegir.
En línea
nanochess
Karoshi Lover
Mensajes: 141
Programando algo buenísimo :)
Re: Implementado movimiento de balas
«
Respuesta #2 :
18 de Enero de 2012, 01:46:01 pm »
Bresenham es la opción más eficiente. Es como si dibujaras la línea, pero nunca compruebas el final, solo desaparece la bala cuando sale de la pantalla. Estoy usando esto en Mecha Eight
La opción de ángulos es mala porque el calculo para encontrar el ángulo entre jugador y enemigo es demasiado pesado o requiere una tabla muy grande.
En línea
Mira mis juegos MSX/Colecovision/Atari/Intellivision
http://nanochess.org/retro_es.html
, y sígueme en Twitter
http://twitter.com/nanochess
Iggy Rock
Visitante
Re: Implementado movimiento de balas
«
Respuesta #3 :
18 de Enero de 2012, 07:15:52 pm »
Depende también de las necesidades del juego. Si requieres precisión la primera opción es la mas acetada pero si quieres dar cierto margen al jugador o algo de "aletoriedad" a los disparos la segunda, que tiene el punto de mira algo desviado.
En línea
samsaga2
Karoshi Fan
Mensajes: 76
Re: Implementado movimiento de balas
«
Respuesta #4 :
19 de Enero de 2012, 08:17:41 am »
Pues me habeis convencido, probaré con Bresenham. Iba a hacerlo con vectores pero prefiero precisión.
En línea
Páginas: [
1
]
Imprimir
« anterior
próximo »
Ir a:
Por favor selecciona un destino:
-----------------------------
Desarrollo MSX
-----------------------------
=> Desarrollo (Español/Spanish)
=> Development (English/Ingles)
=> Rutinas - Snipets
=> Herramientas - Dev Tools
=> Hardware
=> Enlaces - Links
=> Team-Up
-----------------------------
MSX Actualidad
-----------------------------
=> General
=> Eventos - Events
=> Concursos - Contest
=> Reviews
-----------------------------
Archivo (pre 2018)
-----------------------------
=> Karoshi Corporation
===> Karoshi Open Source
===> Videogames | Juegos
===> Unfinished projects | Proyectos inacabados
===> Applications | Aplicaciones
=> Media
=> MSXdev Archives
===> MSXdev '14
===> MSXdev '13
===> MSXdev '12
===> MSXdev '11-'03 (wip)
=> AUIC - Comunicados
=> AAMSX - General
=> English Boards
===> Off-topic
===> Contests
===> Suggest a Game
===> General Info
=> Otros
===> Sugierenos un juego
===> Compro/Cambio/Vendo/Subasto
===> Off-topic
Cargando...