Problem mit Cameraprojekt + Text(gelöst)
Übersicht

MichiBetreff: Problem mit Cameraprojekt + Text(gelöst) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Problem ist folgendes:
Bei meinem Spiel soll an den Planeten/Monden der Name stehen, damit man den Überblick behält. Nun ist aber so, das immer am aktuell Planeten/Mond im Programmablauf, der gerade sichtbar ist, nicht nur der Name, sondern auch noch viel mehr darüber steht. Kann mir mal einer sagen, was da nicht funzt??? |
||
Aber..Wozu soll er gut sein???
IBM-Ingeneur über die Idee des Mikroprozessors, 1968 Code: [AUSKLAPPEN] __ <_/__\_> <--- die Wayne-Zeichnung |
- Zuletzt bearbeitet von Michi am Fr, Nov 12, 2004 15:23, insgesamt einmal bearbeitet
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bei den genauen Informationen sicher...
Es wäre sehr hilfreich, wenn du das Problem etwas genauer beschreiben würdest und die relevanten Codeteile posten würdest ![]() |
||
Michi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok, nochmal:
Es gibt augendblicklich 43 Monde und Planeten, die sich umkreisen. An jedem soll sein Name stehen, an der Erde soll also "Erde" stehen, am Mars "Mars" usw. Das habe ich so erreicht: Code: [AUSKLAPPEN] ... Repeat ... KolErde=EntityDistance(schiff, Erde) ... If KolErde<1500 Then CameraProject c, EntityX(Erde), EntityY(Erde), EntityZ(Erde) If ProjectedZ()<>0 Then Text ProjectedX(), ProjectedY(), "Erde" ... Flip Until Keyhit(1) ... Dieser Code steht halt besagte 43 mal hintereinander, nur die Namen sind halt immer anders. Das funzt auch gröstenteils. Nur: Der Code oben wird ja nacheinander für alle Monde und Planeten durchgeführt. Es sind ja nicht alle gleichzeitig sichtbar. Nehmen wir mal an, alle Monde, die im Code nach dem Mond "Sinope" kommen, sind außer Kamerareichweite. Dann geschieht folgendes Phänomän: Bei Sinope steht nicht Sinope, sondern ganz viele Schriftzüge übereinander. Ich hoffe, du/ihr versteht mich jetzt. |
||
Aber..Wozu soll er gut sein???
IBM-Ingeneur über die Idee des Mikroprozessors, 1968 Code: [AUSKLAPPEN] __ <_/__\_> <--- die Wayne-Zeichnung |
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Michi hat Folgendes geschrieben: Dieser Code steht halt besagte 43 mal hintereinander, nur die Namen sind halt immer anders..
Oh mein Gott, das ist nicht Dein Ernst oder?! Also sollange Du diesen beinahe 100 Zeilen Code nicht in weniger als 5 Zeilen packst, helfe ich Dir auch nicht bei Deinem Problem! Das ist eine rein erzieherische Maßnahme! *g* ![]() [/edit] Stichwort: Types oder Dim-Felder. Das könnte dann in etwas so aussehen: Code: [AUSKLAPPEN] for planet.t_planet = each t_planet
if entityDistance(entity, planet\entity) < maxDistance# then *blablup* next t_planet Nicht mal fünf Zeilen... ![]() |
||
Michi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Oh mein Gott, das ist nicht Dein Ernst oder?! Also sollange Du diesen beinahe 100 Zeilen Code nicht in weniger als 5 Zeilen packst, helfe ich Dir auch nicht bei Deinem Problem! Das ist eine rein erzieherische Maßnahme! *g*
Es sind 129 Zeilen (Absätze zwischen den einzelnen Blöcken) Aber is Ok, wollte ich sowieso umstellen, nachdem dieses Problem hier gelöst ist. Werde ich morgen machen, versprochen, ehrlich Mama *g* |
||
Aber..Wozu soll er gut sein???
IBM-Ingeneur über die Idee des Mikroprozessors, 1968 Code: [AUSKLAPPEN] __ <_/__\_> <--- die Wayne-Zeichnung |
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
So ist brav! *g*
Na gut, und zu Deinem ProbleM: eine Spontanidee wäre z.b. Du könntest vielleicht ein entityVisible() für Camera und Zielplanet aufrufen, wobei Planeten generell als "Sichtblock" gelten. Dann könntest Du anschliessend nur Planetennamen anzeigen die: 1) in einer bestimmten Reichweite sind 2) im Camerasichtfeld und von keinem anderen Planeten verdeckt werden Hilft Dir das weiter? Lieben Gruss + Mama Ava + ![]() |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Michi hat Folgendes geschrieben: Code: [AUSKLAPPEN]
... Repeat ... KolErde=EntityDistance(schiff, Erde) ... If KolErde<1500 Then CameraProject c, EntityX(Erde), EntityY(Erde), EntityZ(Erde) If ProjectedZ()<>0 Then Text ProjectedX(), ProjectedY(), "Erde" ... Flip Until Keyhit(1) ... Folgendes: Du musst die Bedingungen mehr ausreizen. Zum Beispiel wird verhindert, dass wenn der Planet weiter als 1500 LE entfernt ist, dass CameraProject ausgeführt wird. Du musst allerdings auch den Textbefehl verhindern. Sonst nimmt er die Koordinaten vom letzten CameraProject und dadurch kommen dann einem Mond sehr viele Schriftzüge. Des weiteren könntest du, bevor du den Text schreibst, überhaupt ersteinmal überprüfen, ob die 2D Koordinaten im Bildschirm liegen. Das wäre erstmal alles, was mir an dem Code auffällt. Ich hoffe es hilft. MfG D2006 |
||
Michi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Thx, und WIE das hilft!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Das ist der Fehler!!! Danke an D2006 und "Mama" Ava *g* damit wäre das geklärt. PS: Da hätte ich auch selbst draufkommen können ![]() |
||
Aber..Wozu soll er gut sein???
IBM-Ingeneur über die Idee des Mikroprozessors, 1968 Code: [AUSKLAPPEN] __ <_/__\_> <--- die Wayne-Zeichnung |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group