/ / Manejar el tráfico en el generador de ciudad en 2D: 2d, simulación, tráfico, isométrico

Manejar el tráfico en el generador de ciudad en 2D: 2d, simulación, tráfico, isométrico

Estoy creando una construcción de ciudad isométrica en 2Dsimulación y hoy tengo una especie de pregunta de "mejores prácticas" sin pedir un código específico. Como en todos los juegos de construcción de la ciudad, puedes colocar edificios, caminos, etc. El jugador puede colocar el edificio en todas partes, sin importar si está conectado a una carretera o no. Además de eso, hay un edificio (llámalo edificio central) con el que todos los edificios deben estar conectados (por carretera). Necesito manejar eso sin hacer demasiados cálculos que, rompe el FPS.

En este momento tengo un trabajo de temporizador para cada edificioque verifica si una de las casillas rodeadas de un edificio es una carretera. Eso funciona bien, también para muchos edificios ya que el control es simple. Pero ahora me gustaría verificar la conexión con el edificio central. Para verificar que es necesario (en mi opinión) usar algo como un Pathfinder, que verifica si una de las losetas rodeadas tiene una conexión de camino a una de las losetas rodeadas del edificio central. No puedo verificarlo con frecuencia porque esto destruye por completo el FPS hasta 30 o menos. Mi idea era disparar un evento si se construyó o destruyó una carretera para "recalcular" la conexión vial. Pero llega otro problema ... el jugador podría desistir de una carretera en el medio del mapa y los edificios están muy lejos el uno del otro, así que necesito encontrar los edificios involucrados, lo que también podría llevar demasiado tiempo.

Mi última idea es crear algo así como una cola de temporizador y trabajar con estos elementos gradualmente, pero antes de seguir usando el método de prueba y error me gustaría pedirle ideas.

¡Realmente esperando tus ideas! Yheeky

Respuestas

0 para la respuesta № 1

Podría hacer que cada edificio tienda una lista deazulejos (un camino) que lo conecta al edificio del centro. Luego, cuando el jugador destruye aleatoriamente un azulejo, puede hacer que cada edificio sea examinado para ver si atravesó ese mosaico de la carretera o no.

Alternativamente, podría tener cada tienda de azulejos de carreteraqué edificios lo requieren, así que cuando se destruye el mosaico, los edificios lanzan banderas inmediatamente. Sin embargo, esto podría ser bastante complicado, pero se presta decentemente a las llamadas de limpieza de fondo.

Ambos métodos son bastante desordenados. Tal vez pueda establecer como regla que el jugador no puede colocar carreteras, excepto al lado de otras carreteras o al lado del edificio central. Luego, cuando el jugador borre una baldosa, haga un relleno de pintura que destruya todas las carreteras desconectadas. También puede hacer periódicamente un control aleatorio en los mosaicos para ver si están colocados ilegalmente o no, pero eso debería ser innecesario si tiene cuidado.