Soy un poco nuevo en JS, así que me disculpo si mi código parece... rudimentario... pero estoy tratando de codificar un juego de plataformas completamente desde cero. Comencé este proyecto con muy poco conocimiento de JS y he progresado bastante desde entonces. Acabo de terminar de codificar la detección de hitbox, por muy defectuosa que sea actualmente, y funciona bastante bien. Todavía tengo que resolver algunos problemas y solo los dos anclajes inferiores se han codificado, pero me encontré con un problema para el que no he podido encontrar una respuesta definitiva.
Código https://pastebin.com/C8xPtCv1
Línea 724:
if (tile3 == "D27" || tile3 == "D28" || tile3 == "D29" || tile3 == "D30" || tile4 == "D27" || tile4 == "D28" || tile4 == "D29" || tile4 == "D30" || tile3 == "H36" || tile3 == "H37" || tile3 == "H38" || tile3 == "H39" || tile4 == "H36" || tile4 == "H37" || tile4 == "H38" || tile4 == "H39" || tile3 == "L30" || tile3 == "L31" || tile3 == "L32" || tile3 == "L33" || tile4 == "L30" || tile4 == "L31" || tile4 == "L32" || tile4 == "L33" || tile3 == "L20" || tile3 == "L21" || tile3 == "L22" || tile3 == "L23" || tile4 == "L20" || tile4 == "L21" || tile4 == "L22" || tile4 == "L23") {En la línea 724 he codificado un sistema de detección básico que permite que el sprite interactúe con 4 plataformas. La cuestión; es extremadamente tedioso, y si planeo codificar varias escenas en un lienzo de mosaico de 48x27, esta no es una buena manera de hacerlo. Mi pensamiento inicial para la detección de mosaicos fueron las matrices, pero en mis intentos infructuosos de tratar de resolverlos fracasé. Estoy buscando una manera de asignar cada ancla a cada estado de mosaico. Actualmente, la forma de hacerlo es probar si el ancla está dentro de la teja. p.ej. (tile3 == "D27 || tile4 =="D27") escribir este código para CADA mosaico sin embargo, no es la forma en que quiero escribir este código, sin mencionar que el sprite tiene 2 anclas más que necesito codificar para colisión de cabeza Quiero escribir estos condicionales de una manera más eficiente pero no tengo idea de cómo.