Hallo,
Ich programmiere momentan an einem 2D Shooter aus der Vogelperspektive.
In jedem Schritt werden die Wände im handles MyBase.Paint event neu gezeichnet.
Dabei will ich nicht alle Wände des Levels zeichnen, sondern nur diese die tatsächlich im Bildschirm sind (spart FPS).
die wände können jede Richtung (360°) haben und werden mittels e.graphics.drawline() gezeichnet.
Derzeit löse ich es so: Beim laden wird jeweils x und y des Anfangs, der Mitte und des Endes der Wand gespeichert.
jeden step wird überprüft: abstand vom Spieler zu Anfang/Mitte/Ende (x|y) kleiner gleich view_distance? => zeichne Wand
View distance ist dabei ein Integer wert der den Abstand vom Spieler zum äußersten Bildpunkt repräsentiert.
Dieses System funktioniert soweit, so gut.
Sollte es jetzt jedoch eine extrem lange Wand geben, so kann es sein dass die Wand nicht gezeichnet wird (Abstand zu groß).
Darum meine Frage: gibt es ein effizienteres System um zu berechnen ob die Wand (eigtl nur eine Linie) im Bild ist?
Danke!!
Ich programmiere momentan an einem 2D Shooter aus der Vogelperspektive.
In jedem Schritt werden die Wände im handles MyBase.Paint event neu gezeichnet.
Dabei will ich nicht alle Wände des Levels zeichnen, sondern nur diese die tatsächlich im Bildschirm sind (spart FPS).
die wände können jede Richtung (360°) haben und werden mittels e.graphics.drawline() gezeichnet.
Derzeit löse ich es so: Beim laden wird jeweils x und y des Anfangs, der Mitte und des Endes der Wand gespeichert.
jeden step wird überprüft: abstand vom Spieler zu Anfang/Mitte/Ende (x|y) kleiner gleich view_distance? => zeichne Wand
View distance ist dabei ein Integer wert der den Abstand vom Spieler zum äußersten Bildpunkt repräsentiert.
Dieses System funktioniert soweit, so gut.
Sollte es jetzt jedoch eine extrem lange Wand geben, so kann es sein dass die Wand nicht gezeichnet wird (Abstand zu groß).
Darum meine Frage: gibt es ein effizienteres System um zu berechnen ob die Wand (eigtl nur eine Linie) im Bild ist?
Danke!!