Es gibt einige Probleme, auf die ich in meinem Perlin-Spiel gestoßen bin. Schauen Sie sich den beigefügten Screenshot unten an.
Die weißen Bereiche, die Sie sehen, sind Wände und die schwarzen Bereiche sind begehbar. Das Dreieck in der Mitte ist der Spieler.
Ich habe die Physik in dieses Spiel implementiert, indem ich sie auf eine Textur (weiße oder schwarze Pixel) gezeichnet und diese dann von der CPU abgerufen habe.
Jetzt stehe ich jedoch vor einem anderen Problem. Ich möchte, dass Einheiten (oder Creeps, wie auch immer Sie sie nennen) ständig am Rand des Bildschirms erscheinen. Der Punkt hier ist, dass es im letzten Spiel einen "Nebel des Krieges" geben wird, der es dem Spieler sowieso nicht erlaubt, so weit zu sehen.
Ich dachte, ich könnte einfach die Pixel am Rand des Bildschirms scannen und sehen, ob ihre physikalische Textur schwarz ist, und dann willkürlich dort Zeug erzeugen. Wenn Sie sich jedoch den Screenshot noch einmal ansehen, gibt es (in der oberen linken Ecke) ein Beispiel dafür, wo ich nicht möchte, dass die Gänsehaut entsteht (da sie den Spieler von dort aus nicht erreichen können). .
Ist es möglich, dass die GPU diese Spawn-Spots für mich bestimmt oder auf eine andere Art und Weise? Ich überlegte, Vektoren zwischen dem vorgeschlagenen Punkt am Rand des Bildschirms und dem Player zu erstellen und sie dann alle 10 Voxel zu verfolgen und zu prüfen, ob eine Wand kollidiert, bevor ich dort eine Einheit hervorbringe.
Die oben vorgeschlagene Lösung ist jedoch möglicherweise zu CPU-intensiv.
Irgendwelche Vorschläge zu diesem Thema?
Hinweis 1 Für die geborenen Einheiten möchte ich keine Pfadfindung verwenden, um Wandkollisionen zu vermeiden, da diese Einheiten auf den Spieler zu rennen. Daher müssen die Einheiten am Rand des Bildschirms erscheinen, an einem Ort, an dem das Gehen in einer geraden Linie in Richtung des Spielers nicht mit Wänden kollidieren würde.