Türen Erstellen. Wie?

  • Android

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Türen Erstellen. Wie?

    Hallo Jungs! Brauche hilfe bei den türen. In meinem spiel gibt es mehrere türen, von raum zu raum. Sprich von der küche zu Wohnzimmer und von Wohnzimmer zu Schlafzimmer usw. Mit welchem code kann ich bestimmen das wenn ich auf eine tür klicke der Spieler geht zu der tür, verschwindet und erschein in dem anderen raum an der tür. Irgendwie klappt es bei mir nicht!
  • Hallo

    Also ich würde das mit verschiedenen Türen lösen also jede Tür ein eigenes Objekt, bei Collision mit dem Spieler room_goto(.....).
    Es gibt sicher bessere bzw. elegantere lösungen aber mir fällt auf die schnelle nur diese ein.
    lg Vectorhead
  • In dem Tür Objekt eine Variable festlegen. Zb:

    GML-Quellcode

    1. port_to = "0"


    Dann im Roomeditor bei jeder Tür im Creation Code festlegen, wohin die tür gehen soll.

    GML-Quellcode

    1. port_to = "room_5"


    Und im Mausklick Event dann einfach

    GML-Quellcode

    1. room_goto(port_to)


    Nicht getestet...
  • Ich hab mal eine Tür für eins meiner Spiele gemacht.
    Vielleicht hilft dir der Code ja weiter.

    Zum Sprite: Der Sprite der Tür besteht aus 2 Frames. Der erste Frame zeigt die geschlossene Tür und der Zweite die geöffnete.

    GML-Quellcode

    1. Create Event
    2. image_speed = 0;
    3. image_index = 0;
    4. open = false;

    GML-Quellcode

    1. Step Event
    2. if open = false
    3. {
    4. solid = true;
    5. }
    6. if open = true
    7. {
    8. solid = false;
    9. }

    GML-Quellcode

    1. Draw Event
    2. >Hier noch ein Code rein der die Tür zeichnet. Bei GM:S wäre das einfach die "Draw Self" Drag n Drop Option<
    3. //Ein "E" das über der Tür erscheint damit der Spieler weiß das er diese benutzen kann
    4. if distance_to_object(obj_player) < 16 //Damit der Spieler nicht zu weit weg von der Tür ist
    5. if !place_meeting(x,y,obj_player) //Damit der Spieler nicht in der Tür hängt
    6. {
    7. draw_text(x+3,y-17,"E")
    8. }
    9. //Zeichnen der geschlossenen und geöffneten Tür
    10. if open = false
    11. {
    12. image_index = 0;
    13. }
    14. if open = true
    15. {
    16. image_index = 1;
    17. }
    Alles anzeigen

    GML-Quellcode

    1. Press E Key Event
    2. if global.jet = false
    3. if distance_to_object(obj_player) < 16 //Damit der Spieler nicht zu weit weg von der Tür ist
    4. if !place_meeting(x,y,obj_player) //Damit der Spieler nicht in der Tür hängt
    5. {
    6. sound_play(snd_door);
    7. open = !open;
    8. }
    In der Nacht fällt der Boden von den Wänden.
  • MultiDekey´s Methode ist das du einfach dann durch die Tür durchlaufen kannst.

    Wenn du den Spieler "teleportieren" willst würde ich das so lösen:

    Ich würde drei objekte machen. Einmal die Tür selbst (obj_tuer) dann ein Eingangsbereich (obj_tuer_eingang) und ein Ausgang (obj_tuer_ausgang).

    Create Event von der Tür:

    GML-Quellcode

    1. used = 0


    Mouse Left Pressed von Tür Objekt:

    GML-Quellcode

    1. if used = 0
    2. if distance_to_object(obj_player) < 16
    3. {
    4. {
    5. obj_player.x = instance_nearest(x,y,obj_tuer_ausgang).x
    6. obj_player.y = instance_nearest(x,y,obj_tuer_ausgang).y
    7. used = 1
    8. exit
    9. }
    10. }
    11. if used = 1
    12. if distance_to_object(obj_player) < 16
    13. {
    14. {
    15. obj_player.x = instance_nearest(x,y,obj_tuer_eingang).x
    16. obj_player.y = instance_nearest(x,y,obj_tuer_eingang).y
    17. used = 0
    18. exit
    19. }
    20. }
    Alles anzeigen


    Die objekte obj_tuer_eingang und obj_tuer_ausgang machst du natürich unsichtbar und setzt sie einfach links / rechts neben die Tür.
    Der Spieler wird dann bei jedem Mausklick auf die Tür auf die Nähste Position des Tür Ausgangs oder wenn nochmal drückt Tür Eingangs "geportet".
    Im Editor sieht das ganze so dann aus wie im Anhang 1. Und im Spiel wie im Anhang 2.
    Bilder
    • 3.png

      16,31 kB, 800×600, 352 mal angesehen
    • 4.png

      123,88 kB, 800×600, 333 mal angesehen