Fragen zu einem Eislevel

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

  • Fragen zu einem Eislevel

    Ich wollte gern mal ein Eislevel machen, aber da gibt es ein paar Objekte welche ich noch nicht programmiert bekomme.

    1. Eiszapfen, welche von an der Decke hängen und erst dann herunterkommen, wenn der Player sich in einem bestimmten Radius davon befindet.
    Da kann ich es mir noch halbwegs erklären wie das funktioniert, bestimmt wenn man die player.x Position mit der des Eiszapfen überprüft.

    2. Eisblöcke, auf denen man hin und her rutscht, da habe ich absolut keinen Plan.

    Hoffe jemand hat schon Erfahrung mit solchen Objekten?
    Schaut mal auf meinen Games vorbei (alle für Android):

    APPLE ISAAC

    JUGGLE JUNKIE

    SKY APE

    Freu mich über Meinungen, Verbesserungsvorschläge und gute Bewertungen!!!
  • Ja, bei den Eiszapfen einfach die x-Position abfragen ala "if abs(x-other.x)<32".

    Und bezüglich des Rutschens ist es am einfachsten, wenn die komplette Spielphysik mit Beschleunigung und Reibung arbeitet. Daher auf Eis einfach der Reibung und Beschleunigung einen niedrigeren Wert geben als wenn man auf normalem Boden steht.
  • Gut danke, also zu ...

    1. Im Stepevent des Eiszapfens habe ich jetzt folgenden Code:

    if abs(x-obj_player.x)<4
    {
    vspeed = 1
    }

    Das funktioniert zwar auch, aber wenn mein Playerobject zerstört wird, dann tut er jedesmal eine Fehlermeldung anzeigen.

    Und zu ...

    2. Ich mache meine Platformer immer so wie es in den meistens Tutorials erklärt wird, also mit so einer Maske im Hintergrund die für alle soliden Objekte wie bspw. den Boden zählt.

    Also die Kollisionen dann mit diesen Code:

    if place_meeting(x,y+1,obj_mask) und wenn ich da mehrere Objekte hineinschreibe wie bspw:

    if place_meeting(x,y+1,(obj_mask,obj_eisblock)) oder if place_meeting(x,y+1,obj_mask||obj_eisblock) dann funktioniert der ganze Code nicht mehr.
    Schaut mal auf meinen Games vorbei (alle für Android):

    APPLE ISAAC

    JUGGLE JUNKIE

    SKY APE

    Freu mich über Meinungen, Verbesserungsvorschläge und gute Bewertungen!!!
  • MisteryJay schrieb:

    Gut danke, also zu ...

    1. Im Stepevent des Eiszapfens habe ich jetzt folgenden Code:

    if abs(x-obj_player.x)<4
    {
    vspeed = 1
    }

    Das funktioniert zwar auch, aber wenn mein Playerobject zerstört wird, dann tut er jedesmal eine Fehlermeldung anzeigen.

    Und zu ...

    2. Ich mache meine Platformer immer so wie es in den meistens Tutorials erklärt wird, also mit so einer Maske im Hintergrund die für alle soliden Objekte wie bspw. den Boden zählt.

    Also die Kollisionen dann mit diesen Code:

    if place_meeting(x,y+1,obj_mask) und wenn ich da mehrere Objekte hineinschreibe wie bspw:

    if place_meeting(x,y+1,(obj_mask,obj_eisblock)) oder if place_meeting(x,y+1,obj_mask||obj_eisblock) dann funktioniert der ganze Code nicht mehr.

    Zu 1. Wie du schon selber gemerkt hast, sobald dein Playerobject zerstört wurde stürtz das Programm ab, da du ja sagst if abs(x-obj_player.x) <4, damit dieser Fehler nicht mehr kommt musst du Abfragen ob dein Spieler überhaupt existiert. z.B

    GML-Quellcode

    1. if (instance_exists(obj_player)){
    2. if (abs(x-obj_player.x) <4){
    3. // Do stuff
    4. }
    5. }


    Zu 2. nunja der Code funktioniert nicht mehr, da er kein valider Code mehr ist.

    Was du meinst ist eher

    GML-Quellcode

    1. if (place_meeting(x,y+1,obj_mask) || place_meeting(x,y+1,obj_eisblock ){
    2. // Mache Code
    3. }
    Wir stehen zusammen und wir fallen zusammen
  • Letzteres sieht danach aus, als könnte obj_mask ein Parent von obj_eisblock sein, dann reicht es aus nur nach obj_mask zu fragen für allgemeine Kollisionen und zum anopassen der friction speziell nach obj_eisblock.
  • Benutzer online 2

    2 Besucher

  • Tags