manic miner

Started by DCelso, December 01, 2008, 04:03:23 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

DCelso

hola a todos,
no se como me lié a investigar un motor para hacer juegos tipo manic miner y he ido depurando poco a poco el sistema hasta tener algo bastante estable, el problema es que he mezclado muchas técnicas, tanto de mapas de durezas como de colisiones como mezcla de ellas,  de animaciones y de sistema de baldosas (tiles). Y claro he llegado a un punto en que yo entiendo el código a la perfección y no soy capáz de imaginarmelo de otra forma.

Bueno el problema es que lo veo demasiado complejo para el proyecto APAGAME4BE y necesitaría que me ayudasen los expertos en simplificar un poco el código con técnicas alternativas más sencillas, cambio de nombre de variables o ideas distintas en la implementación.
He intentado de que sea lo más descriptivo posible.
Una cosa chula que me ayudaría sería algo al estilo de lo que hace osk con los códigos fuente que pilla de otras personas y explica linea a línea. Osk si quieres ayudarme con ello te lo agradeceré.
Dejo aquí el fuente y contadme que os parece.

Gracias de antemano a todos.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

vamos a echarle un ojo...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

este al final no quedo en nada?

Lo probe ayer, y:

1) despues de morir 3 veces sale con un error de un proceso que no se puede acceder.
2) la vuelta del bicharraco que va de aca para alla, da un salto y en un momento esta caminando sobre el aire.
3) el salto de wally como que se hace muy grande o largo.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Tío ni me acordaba de que puse este post.
Pues tendría que analizarlo, viendo la fecha, creo que hice más cosas después de ella.
De todas formas me quedé a medias en una reimplementación más sencilla, a ver si lo retomo y lo inserto al apagame4be
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

para eso mismo rescate este post... ;)

esta muy bien, merece la inclusion.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Buenoo, a ver parece que no se usar un switch case, resulta que tengo programado lo mismo con elseifs y va y en cuanto lo cambio a swicth case casca que da gustito :(.
A ver quien puede ayudarme.
De camino, si podeis ayudarme a facilitar el código mejor que mejor, tengo algunas cosas quen no me gustan del todo y me failtan algunas cosas por implementar que agradecería ideas porque estoy ahora mismo espeso espeso sin ideas :(.
A ver:
* animar las cintas.
* cuando saltas con el minero hacia algún obstáculo de ladrillo macizo y no da justo en el pixel de control de frontal, lo atraviesa, queda feo.
* estructuras para guardar los datos.
Gracias de antemano.

El motor es facilote, usa una imagen de tiles para dibujar el escenario y luego una imagen de durezas de los mismos tiles donde cada color representa un tipo de colisión distinta.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

DCelso

Veo que no interesa nada el manic miner :D
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

laghengar

 No he podido mirarlo :S
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

SplinterGU

#8
(DCelso) Por que dices eso?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

laghengar

Joder, no he visto nada, he tratado de encontrar el error acotándolo, pero es que va dando saltos y así cuesta dar con ello. Los switch y case me han parecido que están perfectos. Si no es un bug, vas a tener que volver a hacer el código de otra forma. Pero no te aceleres que puede ser por una tontería.

Un saludo y suerte.
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

mz

Creo que el problema está en que antes tenías algo así:
[code language="bennu"]case T_MINER_PART2 , T_MONSTER_PART2 , T_MONSTER_PART3 , T_MONSTER_PART4:
// no hacer nada[/code]

Y luego lo cambiaste por:
[code language="bennu"]case T_MINER_PART2 , T_MONSTER_PART2 , T_MONSTER_PART3 , T_MONSTER_PART4:
deadly_object (i,j,tile_data[j]);[/code]

No me he puesto a mirar el resto del código, sólo quería hacer funcionar la última versión para probarlo. Está genial, espero que lo continúes. :)

Dejo adjunta la versión con este cambio y algunas otras cosas menores.

DCelso

Con respecto a los swith case ahora va bien con las últimas versiones de bennu, ya no se si por casualidad se ha corregido o bien fue corregido a posta o simplemente fue fallo mio y he corregido algo sin querer :D.

En cuanto a lo que dices, mz, si te das cuenta en el "tileset", la imagen con todos los sprites, los números para t_miner_part2, t_moster_part2, etc son partes de un objeto ya creado por lo que no hay que tratarlas, es decir, al leer t_miner_part1 creo el objeto minero completo por lo que, en teoría no debería leer nunca t_miner_part2 ya que no necesito crear al minero por segunda vez y por tanto, por seguridad si leo ese sprite no debo hacer nada ni crear objeto ni dibujar en el mapa. Lo mismo pasa con el monstruo.
Lo que puse para crear un objeto mortal "deadly_object" era para hacer pruebas, por lo que debe de ir comentado.

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/