hspeed collisions problem

  • hspeed collisions problem

    Hay,
    also ich habe folgendes Problem. Wenn ich mit meinem Player gegen die Wand renne bleibt er kurz hängen oder bleibt kurz vor der Wand stehen und ist dann nach 1 sek direkt an der wand. Dies will ich aber nicht. könntet ihr euch das mal angucken, das wär nett.

    p.s ich möchte es gerne in hspeed behalten, mit X kannn ich es das es nicht hackt aber mit hspeed net
    Dateien
    • test.rar

      (8,96 kB, 109 mal heruntergeladen, zuletzt: )
  • Danke das wäre eine Idee, aber gibt es keine All in One Lösung? (da ja so Treppen da sind)

    edit: wie check ich den von wo der Player den block trifft?? Also ob die Collision von oben kommt, oder von links oder von rechts?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Yeah3 ()

  • versuchs ma hiermit:

    GML-Quellcode

    1. //Im "STEP-Event" einbauen
    2. if place_meeting(x+hspeed,y,object1) hspeed=0;
    3. if place_meeting(x,y+vspeed,object1) vspeed=0;

    sollte in diesem fall eine weiche kollision mit "object1"-objekten ergeben, hab ich für meinen topdownshooter verwendet, vielleicht klappts ja auch bei spielen mit gravity, probier einfach aus ;)

    "Make love, not Warcraft"

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von HuRr!cAnE ()

  • Du kombinerst den Code

    GML-Quellcode

    1. //Im "STEP-Event" einbauen
    2. if place_meeting(x+hspeed,y,object1) hspeed=0;
    3. if place_meeting(x,y+vspeed,object1) vspeed=0;


    damit

    Links=-hspeed,Rechts=+hspeed
    Oben=-vspeed,Unten=vspeed
  • Original von HuRr!cAnE
    versuchs ma hiermit:

    GML-Quellcode

    1. //Im "STEP-Event" einbauen
    2. if place_meeting(x+hspeed,y,object1) hspeed=0;
    3. if place_meeting(x,y+vspeed,object1) vspeed=0;

    sollte in diesem fall eine weiche kollision mit "object1"-objekten ergeben, hab ich für meinen topdownshooter verwendet, vielleicht klappts ja auch bei spielen mit gravity, probier einfach aus ;)


    Playa:
    //Im "STEP-Event" einbauen
    if place_meeting(x+hspeed,y,object1) hspeed=0;
    if place_meeting(x,y+vspeed,object1) vspeed=0;

    Ja ist schon klar ich bin gml-anfänger und sowas kenn ich schon :D aber
    merkste wat? meine antwort auf die antwort von HuRr!cAnE war:

    läuft etwas besser aber nicht perfekt
    gibt es vllt noch ne andere Lösung?

    p.s wie check ich den wo die collision statt findet? ob oben oder links oder rechts?