Gegner erscheinen lassen

  • GM 8

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

  • Gegner erscheinen lassen

    Hallo,

    In meinem Spiel gibt es wieder ein Problem. Ich habe erst versucht, nach "Boundary View" die Bewegung der Gegner zu starten, aber leider beginnen diese schon nach dem Start des Raums. Wie benutzt man diese Trigger? Sie sollen erst auf ihrer Position verharren, bis sie ins Bild kommen, wo sie dann richtig loslegen können.
  • Du könntest alle Gegner deaktivieren.

    GML-Quellcode

    1. instance_deactivate_object(obj)

    und alle Objekte aktivieren, de sich im View befinden.

    GML-Quellcode

    1. instance_activate_region(view_xview,view_yview,view_wview,view_hview,true)


    Im Step-Event eines Controllers versteht sich. (Kein Objekt, das durch diesen Code selbst deaktiviert wird)

    © 2008 by Teamgrill Productions
  • Ich habe versucht es umzusetzen, aber es passiert nichts. Ich habe nun einen "player_view" erstellt, ein Bild, welches im View angezeigt wird. Bei Kollision sollen die Gegner dann mit ihrem Speed beginnen. Gleichzeitig wollte ich die Leben und Punkte anzeigen, ich habe sie relativ anzeigen lassen, da sie immer an der gleichen Position während des Views bleiben sollen, allerdings erscheint nichts.
  • Sicher, dass du nicht was falsch gemacht hast? Wenn du die beiden Codeschnipsel im Step-Event eines Objektes ausführen lässt, und instance_deactivate_object() für alle Gegner verwendest und danach auch in jedem Step wieder alle innerhalb des Views aktivierst sollte es eigentlich funktionieren. Zeig mal wie dus gemacht hast.

    © 2008 by Teamgrill Productions
  • "invisible_scroll" legt automatisch den View fest, ohne dass der Spieler fliehen kann (so stelle ich es mir zumindest vor, der Spieler kann trotzdem außerhalb des sichtbaren Bereiches...).

    Spoiler anzeigen
    Information about object: invisible_scroll

    Sprite: <no sprite>
    Solid: false
    Visible: false
    Depth: 0
    Persistent: false
    Parent: <no parent>
    Mask: <same as sprite>

    Create Event:
    at position (748,75) draw the value of score with caption Punkte:
    at position (748,125) draw the number of lives with caption Leben:
    at relative position (748,900) draw image -1 of sprite game_logo

    Step Event:
    execute code:

    instance_deactivate_object(enemy_redbee);
    instance_deactivate_object(enemy_cpo);
    instance_activate_region(view_xview,view_yview,view_wview,view_hview,true);
  • Erstmal musst du die Variablen auch im view zeichnen lassen: Also view_xview+232 oder so, und jetzt ist das ja ein anderes Problem was du schreibst? Zuerst ging es doch darum dass die Gegner sich erst bewegen wenn sie in Sichtweite sind und jetzt soll der Spieler nicht aus dem View rauskommen???

    © 2008 by Teamgrill Productions
  • Das ist erstmal unwichtig. Wichtiger ist, dass das mit den Gegnern funktioniert. Mein Spiel hat immer die Auflösung von 1024x768, wie soll ich das nun eintragen?

    Ich habe gerade gemerkt, dass der Spieler nur scheinbar aus dem View entfliehen kann. Er bleibt immer am Rand, aber ist nur schwer erkennbar.

    Das zweite wichtige Problem wäre das Anzeigen von Score und Leben.

    Ich habe mir überlegt, einen Online-Highscore zu machen, aber ich schätze, das ist kompliziert und man braucht einen Server dazu. Ich habe einen, aber den möchte ich nicht dazu benutzen.
  • Du hast einen View im Room unter der Option Views eingerichtet?
    Wenn du einen View hast, musst du beim Anzeigen der Punkte, Leben etc diese an der gewünschten Position im Bild RELATIV zum View drawen. Also zb 8 Pixel vom oberen und linken Rand entfernt wäre:
    view_xview+8 / view_yview+8

    Befindet sich das Objekt, welches den Deaktivierungscode ausführt wirklich im Raum, in dem das Spielgeschehen abläuft?

    Aja und noch was: Genau aus diesem Grund sind Sammelfragen nicht erwünscht. Man verliert ganz einfach die Übersicht. Also merk dir: Ein Problem - Ein Thread

    © 2008 by Teamgrill Productions
  • Der kommt später, ich will die grundlegenden Fragen erstmal klären. Der Raum ist 25000 Pixel breit, nach und nach fährt man mit dem View durch das Geschehen. Darin sind dann die Objekte, z. B. Pflanzen oder Steine, die sich mit -3 vertikal bewegen. Außerdem kommen Gegner. Manche sind schnell, manche auch langsam. Allerdings gibt es ein Problem mit allen Gegnern, die sich nach oben oder unten bewegen, sie verlassen den Rau bereits, bevor der Spieler sie sieht...
  • Wenn das das Problem ist kannst du die Gegner ja wrappen lassen.
    Das heißt ins outside room event move_wrap(0,1,Höhe des gegners)

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von DragonGamer ()

  • Ich habe es nun so versucht...

    [hide=Information]Information about object: enemy_redbee

    Sprite: enemy_redbee
    Solid: true
    Visible: true
    Depth: 0
    Persistent: false
    Parent: <no parent>
    Mask: <same as sprite>

    Collision Event with object shot:
    for other object: destroy the instance
    create a small effect of type explosion relative at (0,0) of color 4227072 below objects
    play sound explosion; looping: false
    set the score relative to 125
    destroy the instance

    Collision Event with object shot_heavy:
    for other object: destroy the instance
    create a small effect of type explosion relative at (0,0) of color 4227072 below objects
    play sound explosion; looping: false
    set the score relative to 125
    destroy the instance

    Other Event: Outside Room:
    destroy the instance

    Other Event: Room Start:
    set the horizontal speed to -22

    Other Event: Outside View 0:
    execute code:

    instance_deactivate_object(self);
    instance_activate_region(view_xview,view_yview,view_wview,view_hview,true);[/hide]

    Leider erscheinen dann gar keine Gegner mehr.
  • Der Dektivierungscode soll ja auch ins STEP-EVENT und auch nicht in die Gegner selbst, da sie sich ja nicht mehr selbst aktivieren können wenn sie deaktiviert werden.
    Nochmal: Mach ein Objekt, welches nix tut, außer der Deaktivierungs und Aktivierungscode im Step-Event auszuführen und gib dieses in jedes Level.

    © 2008 by Teamgrill Productions
  • Quellcode

    1. Information about object: enemy_activator
    2. Sprite: <no sprite>
    3. Solid: false
    4. Visible: false
    5. Depth: 0
    6. Persistent: false
    7. Parent: <no parent>
    8. Mask: <same as sprite>
    9. Step Event:
    10. execute code:
    11. instance_deactivate_object(enemy_redbee);
    12. instance_deactivate_object(enemy_blackbee);
    13. instance_deactivate_object(enemy_cpo);
    14. instance_deactivate_object(enemy_snail_a);
    15. instance_activate_region(view_xview,view_yview,view_wview,view_hview,true);
    Alles anzeigen


    So habe ich es nun versucht.
  • Und was ist das Ergebnis? Das ganze sollte eigentlich nur in einem einzigen Fall nicht funktionieren: Wenn du Ressourcennamen doppelt hast. Beispielsweise wenn das Sprite gleich heißt wie das Objekt.

    © 2008 by Teamgrill Productions