J'essaie d'obtenir quelque chose comme l'image ci-dessous. Comme vous pouvez le voir, il y a une autoroute et à l'intérieur, il y aura des objets en mouvement (milliseconde). Je suppose que le comportement de la rue est comme un pipeline. Lorsque l'autoroute charge un objet, il apparaît au début et il se déplace à travers l'autoroute jusqu'à ce qu'il arrive à l'autre extrémité de l'autoroute.
Mon principal problème est, comment puis-je déplacer plusieurs objets uniquement à l'intérieur de l'autoroute?
la source
Vous avez besoin d'une liste de points et d'une liste de ballons
la source
Si vous avez une route composée de tuiles avec un seul chemin ("pipeline" comme vous l'appeliez), alors vous n'avez pas besoin de boids, d'évitement, d'intelligence artificielle, ou vraiment de quelque chose de super spécial. Faites simplement bouger chaque ballon dans la direction naturelle de la tuile route. Par exemple, étant donné une tuile de départ avec une seule tuile non sable à toucher, vous pouvez déterminer la direction à déplacer - c'est la direction qui est "pas ici, pas où j'étais, et pas de sable". Puisque votre route n'a que deux directions d'écoulement possibles, une fois que la direction initiale et la tuile sont établies, l'algorithme résoudra le problème.
Les ballons semblent se suivre simplement parce qu'il n'y a nulle part où aller. S'ils se déplacent tous à une vitesse constante, aucune collision n'est possible. Même s'ils ne se déplacent pas à une vitesse constante, le "pas ici, pas là où j'étais, et pas de sable" peut être "et s'assurer qu'il y a assez d'espace pour moi" en annexe.
Vous pouvez généraliser un peu et utiliser l'image de la tuile comme méthode d'extraction de la direction. Par exemple, une bande de route en forme de L signifie «si vous allez vers le sud, puis tournez vers l'est» ou «si vous allez vers l'ouest, tournez vers le nord».
Ce système tombe en panne lorsque vous décidez de faire, c'est-à-dire plus d'un chemin unique qui peut être pris, mais à partir de votre capture d'écran et de la description du problème, cela ne semble pas être un problème. Si c'est une exigence pour votre application, alors investissez certainement dans une approche plus centrée sur l'IA.
la source