Hallo,
erstmal vorweg: Ich habe nur die GM 7 Light-Version. Hoffe dass ich das Problem auch damit lösen kann...
Nun zum Problem:
Ich möchte in einem Shooter (Sicht von schräg-oben) Hindernisse (z.B. einen Baum) erstellen.
Dieser Baum hat ein Sprite, z.B. mit den Maßen 20x80. Dieser soll für die Spielfigur natürlich ein Kollisionsobjekt darstellen. ABER: Ich möchte das die Spielfigur "hinter" und "vor" dem Baum langgehen kann. Das heisst, ich wähle den maskindex unterschiedlich, z.B. nur 20x40 gross. Dadurch sind oben und unten jeweils 20x20 große Flächen frei. Die Spielfigur kann also ohne eine Kollision auszulösen so stehen/laufen, das ihr Sprite den Baum überlappt. Sie steht also mit den Füßen vor dem Baumende, ihr Körper ist dann aber (wie ja auch in Wirklichkeit möglich) "über" den Baumwurzeln. Kein Problem, da: Baum.depth=1, Spieler.depth=0...
Wenn die Spielfigur nun aber "hinter" den Baum läuft, quasi mit den Füßen schon im Baum steht, aber immer noch über dem mask_index des Baumes, dann wird wegen der vorherigen Einstellung der Objekttiefe das Spielersprite wieder ÜBER das Baumsprite gemalt. Es soll aber darunter! Der Spieler steht ja hinter dem Baum!
Die einzige Lösung die mir einfällt: Jeden Baum im Step-event abfragen lassen, ob Spieler.y > Baum.y ist und dementsprechend die Tiefe ändern.
Aber bei vielen Hindernissen wird das ganz schön viel Rechnerarbeit beanspruchen, oder?
Schonmal danke für andere Vorschläge
Casi82
erstmal vorweg: Ich habe nur die GM 7 Light-Version. Hoffe dass ich das Problem auch damit lösen kann...
Nun zum Problem:
Ich möchte in einem Shooter (Sicht von schräg-oben) Hindernisse (z.B. einen Baum) erstellen.
Dieser Baum hat ein Sprite, z.B. mit den Maßen 20x80. Dieser soll für die Spielfigur natürlich ein Kollisionsobjekt darstellen. ABER: Ich möchte das die Spielfigur "hinter" und "vor" dem Baum langgehen kann. Das heisst, ich wähle den maskindex unterschiedlich, z.B. nur 20x40 gross. Dadurch sind oben und unten jeweils 20x20 große Flächen frei. Die Spielfigur kann also ohne eine Kollision auszulösen so stehen/laufen, das ihr Sprite den Baum überlappt. Sie steht also mit den Füßen vor dem Baumende, ihr Körper ist dann aber (wie ja auch in Wirklichkeit möglich) "über" den Baumwurzeln. Kein Problem, da: Baum.depth=1, Spieler.depth=0...
Wenn die Spielfigur nun aber "hinter" den Baum läuft, quasi mit den Füßen schon im Baum steht, aber immer noch über dem mask_index des Baumes, dann wird wegen der vorherigen Einstellung der Objekttiefe das Spielersprite wieder ÜBER das Baumsprite gemalt. Es soll aber darunter! Der Spieler steht ja hinter dem Baum!
Die einzige Lösung die mir einfällt: Jeden Baum im Step-event abfragen lassen, ob Spieler.y > Baum.y ist und dementsprechend die Tiefe ändern.
Aber bei vielen Hindernissen wird das ganz schön viel Rechnerarbeit beanspruchen, oder?
Schonmal danke für andere Vorschläge

Casi82