Jump and Run Tutorials versagen

  • GM 8

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

  • Stells bei :event_collision: mit der unsichtbaren Wall ein:
    -:action_ifvariable: if sprite_index = andere Richtung
    :action_begin:
    - :action_hspeed: Richtungswechsel
    - :action_sprite: -> andere Richtung
    :action_end:
    dann brauchst du aber auf jeden fall zwei Wände eine die bei berührung den Zombie nach links schickt und eine nach Rechts...dann kannst du auch zB auf einer plattform zwei zombies rumlaufen lassen die aber an versch punkten auf der plattform wenden... (R z R z L L )

    und ich erstelle im Create Event eine eigene variable für die gesundheit des Objects: :action_variable: set var: zombie_ges = 2
    und im Kolllisionsevent mit pfeil set var zombie_ges = -1 relativ
    im step event dann die abfrage wenn zombie_ges = 0 -> zombie tot

    das wird auch dein restart Problem lösen


    EDIT: ich bevorzuge also eher die Methode ohne ein unsichtbares Sprite...probier mal beides aus udn schau was für dich besser passt

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Also die Idee mit den Walls is ja gut, aber ich musste sie auf solid stellen, sonst ist er imer durchgerannt und jetzt rennt er einfach dagegen ohne Sprite- oder Richtungswechsel und bleibt davor stehen. Und bei der Sache mit der Variable: es is ja ne gute Idee aber natürlich ist dann wieder das Problem da, dass ein Pfeil langsam genug ist damit die paar Millisekunden in denen sich die beiden Sprites überschneiden als mehrere Kollisionen gerechnet werden ergo reicht wieder nur ein Pfeil. Aber ich möchte eigentlich bei der Variablen-version bleiben, die ist so schön unkompliziert, wenn man dieses Problem noch lösen könnte.

    Und aßerdem: Ich möchte ja dass er bei seinem tot einen Edelstein droppt. Betone: einen. Wenn man einfach :action_ifvariable: Sprite_index egual to Zombie tot oder :action_ifvariable: Zombie_Ges smaller than 0 werden immer weiter Edelsteine erstellt. Ich hatte das hingekriegt mit :event_other: No More Health Edelstein, da wurde nur einmal ein einzelner Edelstein erstellt, aber jetzt spielt health ja keine Rolle mehr weil es eine Globale Variable ist. Wie könnte ich das hinkriegen?
  • So kannst du das machen:
    (Ist zwar nicht Drag & Drop, aber trotzdem einfach)

    Create Event

    GML-Quellcode

    1. Edelstein_dropped = 0
    2. /*Hier machen wir eine neue Variable, die uns beim Droppen helfen wird.
    3. Sie gibt an, das noch kein Edelstein gedropped wurde.*/


    Step Event

    GML-Quellcode

    1. /*Dieser Code wird manuell das Sprite abfragen und checken, ob ein Edelstein schon gedropped wurde.
    2. Wichtig: GML mag keine Leerzeichen in den Ressourcenbeziechungen.
    3. && heißt hier einfach "und". Also zwei Bedingungen. Die eine führt das Sprite und die
    4. andere für unsere zu Beginn erstellte Variable*/
    5. if sprite_index = Zombie_tot && Edelstein_dropped = 0
    6. {
    7. Edelstein_dropped = 1 // Der Edelstein wird als gedropped makiert. Dieses Event wird nur einmal ausgeführt.
    8. instance_create(x,y,obj_Edelstein) //Der Edelstein wird erstellt.
    9. }


    So. Das müsste funktionieren.
    Zu health: Benutze am besten nie GMinterne Variablen.
    Sie werden manchmal vom GM verändert und sind sehr unzweckmäßig.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Mr. Diesel () aus folgendem Grund: Rechtschreibkorrektur

  • Nein der Pfeil wird nicht zerstört. Nur wenn er auf Wand und Boden trift bleibt er stecken und verschwindet nach einer Weile.

    Okay, die Nummern 2 und 4 der ehemaligen und stetig wachsenden Fehlerliste sind getilgt, obwohl ich keine Ahnung habe warum Fehler 2 nicht mehr besteht.

    @Mr. Diesel: Dein Code funktioniert nach ein paar Abänderungen, an deren Notwendigkeit ich allerdings schuld bin. Vielen Dank. Und auch noch ein Dankeschön an Wildor und Aku Ryou, die trotz meiner absoluten Unfähigkeit nicht die Geduld mit mir verloren haben.

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

  • Hallo. Wenn du Lösungen gefunden hast, sind die auch für andere Interessant. Nehmen und geben!!!

    Also Post die mal. Will wissen wie dus gemacht hast!!!!


    Problem eins immer noch Thema?


    Nein der Pfeil wird nicht zerstört. Nur wenn er auf Wand und Boden trift bleibt er stecken und verschwindet nach einer Weile.



    zu1. Sollte schon längst geklärt sein!! Wird der Pfeil bei Kollision zerstört? Wenn du ihn wieder einsammeln willst, musst du mit 2Pfeilen arbeiten. Pfeil1 zum einsammeln, Pfeil2 der den Zombie tötet und sich dabei in Pfeil1 umwandelt.

    Wenn du die Lösungsvorschläge nicht anschaust brauch ich keine schreiben.
    Aktuelles Game: "Pikslar" mit Online Hiscore





    PS: Will mit dieser Frage mal fragen, ob jemand zur zeit, Zeit hat. Suche Grafiker/Pixler










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

  • natürlich hab ich ihn angesehen. ich hab ihn doch in einem der vorherigen Posts erwähnt, und man soll die Pfeile nicht einammeln können. Es gibt ein Pfeil-Item das man einsammelt und danach kann man 10 Pfeile verschießen. Dann muss man wieder ein Pfeil-Item sammeln um neue Pfeile verschuießen zu können. Aber ich hatte dir doch noch eine Frage bezüglich der Methode mit den unsichtbaren Sprites gestellt.

    Aber zum Pfeil: Der Pfeil fliegt weiter außer er trifft auf Wände in denen er stecken bleibt und nach ein paar Sekunden verschwindet. Soll ich das vielleicht ändern?

    Und was für Lösungen soll ich gefunden haben?
  • Ich erinnere!



    1. Der Zombie stirbt nach dem Kontakt mit dem ersten Pfeil. Ich habe aber bei mit Pfeil relativ -50. Es müssten doch eigentlich zwei Pfeile benötigt werden.
    Wenn der Pfeil nicht zerstört oder umgew. wird löst er unendlich viele Kontakte aus.




    Wie wurde 4. gelöst?
    Aktuelles Game: "Pikslar" mit Online Hiscore





    PS: Will mit dieser Frage mal fragen, ob jemand zur zeit, Zeit hat. Suche Grafiker/Pixler










  • Verdammt warum ist mir nicht eingefallen, das die Zerstörung des Pfeils beim Aufprall des Pfeils das Problem lösen würde. Naja, dann funktioniert natürlich alles.

    Und 4. wurde gelöst weil ich dank Aku Ryou eine benutzerdefinierte Variable statt der globalen Variable health verwende.

    Dann ist jetzt nur noch das Problem, dass der Zombie die Richtung nicht ändern will.

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

  • Deswegen hab ichs so geschrieben, weil der lerneffekt dann einfach besser ist, als wenn du nur dumm darauf gestossen wirst. Lies nochmals die ganzen Post von hier aufmerksam durch.!!!

    Probier die Beispielem aus, da findest dan auch die vielleicht nicht so ersichtlichen Lösungen. Ausserdem bringen die dich auch auf neue Ideen.



    VielSpass.



    PS: Bräuchte jemanden der mir bei Grafiken hilft. Solltest jemanden kennen, gib mal Text in PM
    Aktuelles Game: "Pikslar" mit Online Hiscore





    PS: Will mit dieser Frage mal fragen, ob jemand zur zeit, Zeit hat. Suche Grafiker/Pixler










  • Du hast ja recht. Aber ich bin nun einmal von Natur aus faul und kann auch nicht ewig am Rechner hängen. Ich frage nur noch wenn mir wirklich gar ncihts mehr zu einer Problemlösung einfällt.

    Was für Grafiken bräuchtest du?
  • Nur Selbstgemachtes.

    Gifs wie mein Avatar für ein geplantes Project.

    Hab hier zwei Games stehn. Besonders in Combi Creation sind nur Platzhalter drinnen!! Dort brauch ich ein Grafikkonzept. Das wird viel arbeit.
    Aktuelles Game: "Pikslar" mit Online Hiscore





    PS: Will mit dieser Frage mal fragen, ob jemand zur zeit, Zeit hat. Suche Grafiker/Pixler










  • Da Kalgalaths Fragen schon längst beantwortet ist und eure Diskussion nichts mehr mit dem Thema zu tun hat. *closed*
    Regelt das doch bitte per PN.

    edit: Da anscheinend noch ungeklärte Fragen offen sind bleibt der Thread offen.
    @ Kalglath: Bitte lies dir beim nächsten mal nochmal die Regeln für das Technische Fragen-Forum durch.
    -
  • Ich hab mal einw enig rumprobiert und mir ist eine Idee mit elektrik-Rätseln gekommen. Es war auch eigentlich gar nicht schwer, aber jetzt binn ich an ein Problem gestoßen. Ich hab das ganze per Variable gemacht, also wenn stromleitender Block erstellt wird wird die Variable "Strom" auf 0 gesetzt. Wenn dieser stromleitenden Block, aber mit einem anderen stromleitenden Block kollidiert, bei dem die Variable eins beträgt (wird bei Kollision zu einer Stromquelle auf 1 gesetzt), ändert sich sein Sprite und seine Variable "Strom" wird uch auf 1 gesetzt. In der Theorie gut, aber die Sprites sind exakt 32x32 Pixel groß und sind solid, also stabil.
    Nun überschneiden sich die Pixel aber nicht und es wird nicht als Kollision gewertet obwohl sie sich berühren. Nun könnte ich einfach eine 33x33 Pixel große Maske erstellen, aber ich will nicht, dass sich Strom auch diagonal über die Blöcke ausbreitet. Wie kann ich das lösen. Wenn man jetzt z.B. einen kreuzförmiscgen Sprite als Maske eingeben könnte wäre das die Lösung, aber das geht mir bekanntlich nicht. Hat da jemand Erfahrung?
  • Doch das geht^^

    Mach ein Sprite im hintergrund das kreuzförmig ist und eben zB 33x33px groß ist...der hintergrund des sprites muss transparent sein...die kollisonsmaske deckt dann nur den gezeichneten kreuzförmigen bereich ab und den transparenten lässt sie frei (precise Collionsmask)

    andererseits kannst du auch mit einem check_free :action_iffree: oder check_object :action_ifobject: an den 4 kreuzpositionen nachsehen ob dort ein Objekt ist das Strom leitet...du musst ihn halt immer nachsehen lassen ob sich über, unter, links, und rechts, von ihm dieses oder jened befindet befindet...

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • nachdem ich das gepostet hab, hab ichs nochmal probiert und ein 40x40 großes kreuz gezeichnet und als Maske angegeben. Aber es ging trotzdem nicht. Jetzt kommt also mal wieder das beliebte raten nach dem Grund warum es nicht geht...
  • Okay, der Strom wird nun ordnungsgemäß weitergeleitet, lag an einem zweideutigen Befehl, der dafür sorgen sollte, dass sich der Sprite des stromleitenden Blockes wieder zurückverändert sobald die Stromquelle abgeschnitten ist. Nach dem Löschen wurde der Strom ordnungsgemäß weitergeleitet, aber geht eben nicht mehr aus sobald ich den Hebel nochmal umlege, vom Knopf wegrenne oder was auch immer. Daran arbeite ich aber noch. Das Problem mit den Zombies die sich nicht umdrehen wollen hab ich auch hingekriegt. Nur für ein weiteres Problem der Elektrizitäts-Sache (und für noch ein anderes Problem aber daran probier ich noch) fällt mir partout (oder wie an es auch schreibt) nix ein. Ich hab einen kleinen Laser erstellt, dessen Strahl ein bisschen vibrieren soll und einen dementsprechenden Sprie erstellt. Nun hab ich folgendes gemacht: Bei :event_collision: mit einem stromleitenden Block

    :action_ifvariable: (also testen ob der Block unter Strom steht)
    :action_begin:
    :action_sprite: (in den Sprite in dem der Laser aktiviert ist ist)
    :action_variable: (steht nun selbst unter Strom damit Laserstrahlen (anderes Objekt) nach dem selben Prinzip aktiviert werden)
    :action_end:

    Das Problem ist nun, dass, wie ihr euch vll schon denken könnt, dass nur as erste Bild des Sprites angezeigt wird, da bei jeder Kollision (man bedenke, dass die Blöcke permanent kollidieren) der Sprite erneut verändert wird, zwar immer in den selben aber er wird eben immer wieder "auf Anfang gestellt". Wie wäre es möglich das zu ändern, denn sobald der Strom des anderen Blocks weg ist (was bei mir im Moment immer noch nicht möglich ist) soll der Laser ja auch ausgehen, ergo muss die Variable ständig abgefragt werden, um das zu erkennen? Und bevor man mir jetzt wieder sagt: Probier doch erstmal: Das hab ich lang und breit, und in allen Facetten und Möglichkeiten die mir eingefallen sind. Darum hoffe ich nun, dass sich eure Gedankengänge als ergiebiger erwiesen.

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