Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

96
Visualizações
¿Hay alguna manera de fusionar varios mosaicos en un nivel? Kaboom JS

Al crear un nivel en kaboomJS con colisiones de mapas de mosaicos grandes, las cosas comienzan a ponerse lentas... Entonces, me preguntaba si había una manera fácil de fusionar múltiples mosaicos, como si una fila completa de bloques pudiera tratarse como un bloque grande.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

1. Los mosaicos no tienen que caber en la cuadrícula

Si desea reducir la cantidad de objetos de juego en la escena a la vez, puede tener un solo símbolo en su definición de nivel que represente un objeto de juego que abarque múltiples mosaicos de cuadrícula. Entonces, si desea muchas plataformas que tengan 3 cuadrados de cuadrícula de ancho, no necesita 3 objetos por plataforma, puede usar un solo carácter para representar un rectángulo de 3x1:

 import kaboom from "kaboom" // initialize context kaboom() // load assets loadSprite("bean", "sprites/bean.png") addLevel( // Note: the hyphens here hare just place holders to remind us that the // game objects created by ➁ and ➂ are actually taking up 2 and 3 grid // squares respectively. [ " ⚥ ", " ", " ➂-- ", " ", " ➁- ", " ", " ", "################################", ], { width: 32, height: 32, "⚥": () => [ sprite("bean"), area(), body(), "player" ], "#": () => [ rect(32, 32), outline(2), area(), solid(), ], "➁": () => [ rect(32 * 2, 32), outline(2), area(), solid(), ], "➂": () => [ rect(32 * 3, 32), outline(2), area(), solid(), ], } ); const player = get("player")[0]; player.onUpdate(() => { const left = isKeyDown('left') || isKeyDown('a'); const right = isKeyDown('right') || isKeyDown('d'); if (left && !right) { player.move(-500, 0); } else if (right && !left) { player.move(500, 0); } camPos(player.pos); }); onKeyPress("space", () => { if (player.isGrounded()) { player.jump(); } });

Obviamente, si tuviera muchas formas y tamaños diferentes, esto sería bastante oneroso.

2. Avanzado: árboles cuádruples y regiones de carga/descarga

De hecho, me encontré con este problema yo mismo en un proyecto reciente de Kaboom y decidí revisar por completo el addLevel() con mi propia implementación que se cargó desde un mapa de bits en lugar de un montón de cadenas, y luego organicé los datos de nivel en un quadtree para que Rápidamente pude encontrar fragmentos que se superponían al área visible y cargar y descargar objetos del juego en función de su visibilidad. La técnica y el código son un poco complejos para incluirlos aquí, por lo que solo vincularé el Repl y el código fuente relevante: level-loader.ts y lib-quad-tree.ts y el uso en level-one.js .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda