Mapas de colisiones.

Buenas, he estado mirando la documentación y algunos ejemplos de juegos, pero no encontre ninguna función que pueda decirme el color de un determinado píxel de una imagen. La idea es detectar las colisiones entre el jugador y el entorno usando un mapa de colisiones de forma parecida a como se explica aqui -> http://devcpp-allegro.blogspot.com.es/2015/09/crear-juego-rpg-en-c-y-allegro-4-5.html

Comments

  • Hola Kankulo,

    Justamente hice un twitch hace algún tiempo sobre como hacer eso pero no esta subido...

    Básicamente necesitas cargar una Imagen y obtener un array de Color a partir de esta:

    Image map = LoadImage("resources/map.png");
    Color *pixels = GetImageData(map);

    Con esto obtienes un array con todos los pixeles de la imagen.

    Para comprobar un pixel en concreto interpretándolo como coordenadas (x, y) y teniendo en cuenta que es un array unidimensional (es decir, representa que cada linea de pixeles van una detras de otra).

    Por ejemplo para comprobar el pixel (64, 128) la componente R, comprobarias:

    if (pixel[128*map.width + 64].r == 255) // Do something

Sign In or Register to comment.