Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

240
Vistas
Cómo crear un mapa de matriz de procedimientos (usando matrices para mapas de mosaicos)

Tengo un juego (por cierto, publicado aquí en https://juniorcpc.itch.io/dungeon-game y el archivo de descarga para el código también está allí), y usa matrices para crear mapas de mosaicos. (Los números 0-4 representan mosaicos diferentes) El problema es que solo puedo crear mapas y publicarlos, y quiero saber cómo hacer que el código cree esos mapas de matriz para mí. No puedo usar otros tutoriales, ya que solo muestran cómo hacerlo con mapas de mosaicos, laberintos u otra cosa, pero el mío usa matrices, no otros sistemas. Si hay una manera de hacer un mapa procedimental con arreglos, sería increíble, ¡gracias!

Por cierto, las matrices son cuadrículas de 10x10, 1 = pared, 0 = espacio vacío, 3 = salir.

Ejemplo de matriz:

 [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 4, 1, 1, 2, 2, 0, 0, 2, 2, 2, 2, 1, 1, 1, 1, 2, 0, 2, 2, 2, 2, 1, 1, 2, 2, 0, 0, 2, 2, 2, 4, 1, 1, 0, 0, 0, 2, 2, 2, 3, 2, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 1, 1, 0, 2, 1, 1, 2, 0, 0, 0, 1, 1, 0, 2, 2, 2, 2, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ],

Así es como los dibuja: (tengo un lienzo en mi HTML con un ancho de 300 px y una altura de 300 px)

 function mapM() { var ctx = document.getElementById("canv").getContext('2d'); ctx.fillStyle = "red"; var mapOnX = -1; var mapOnY = 0; var l = map[0].length + 1; for (i = 0; i < l; i++) { if (i % 10 == 0) { var mapOnX = 0; mapOnY++; } else { mapOnX++; } if (map[level][i] == 1) { ctx.fillStyle = "red"; } else { if (map[level][i] == 0) { ctx.fillStyle = 'blue'; } else { if (map[level][i] == 3) { ctx.fillStyle = 'gold'; } else { if (map[level][i] == 2) { ctx.fillStyle = 'black'; } else { ctx.fillStyle = 'lightBlue'; } } } } ctx.fillRect(mapOnX * 25, mapOnY * 25, 25, 25); ctx.fillStyle = 'purple'; ctx.fillRect(mapX * 25, mapY * 25, 25, 25); } }

No te preocupes por otros números, puedo hacer eso. ¡Gracias!

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda