Estoy trabajando en un juego 2D en el que usas paint para agregar fichas a un nivel y ahora estoy trabajando para agregar fichas de urdimbre. Lo configuré para que ciertas pinturas orientadas a la dirección usen dos puntos (un inicio y un final) para determinar en qué dirección apuntarán las fichas (izquierda, derecha, arriba, abajo). Las fichas de urdimbre tienen estos puntos, pero serán agregado a otras dos listas (warp start y end). La forma en que funcionan las urdimbres es: si el jugador golpea una ficha, se teletransportará a la ficha de urdimbre correspondiente. Ahora, si voy a hacer que esto funcione correctamente, tengo que hacerlo para que el jugador no pueda ser teletransportado a una pared o fuera del mapa. Así que necesito mover el punto a un mosaico abierto exactamente a un espacio de distancia de cualquier pared.
Cuál sería la mejor forma de hacer esto?
Respuestas:
Si todo lo que quiere hacer es asegurarse de que el mosaico en el que se hizo clic tiene mosaicos abiertos a su alrededor, simplemente crearía una función que verifique los mosaicos a su alrededor. Y luego llame a eso en el mosaico en el que hizo clic.
Puede configurarlo en un bucle (anidado) o simplemente crear sentencias if para él. Entonces, en pseudocódigo:
Editar según el comentario
Hay dos formas de manejar la situación:
fuente
Creo que necesitarás encontrar el rectángulo "libre" más cercano a una baldosa de urdimbre, donde el jugador pueda caber.
Hay una pregunta similar sobre stackoverflow. Haga clic para ver .
fuente