Kollision + taste drücken???

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

  • Kollision + taste drücken???

    hallo ich bins again

    ich hab gerade folgendes Problem.

    wenn ich durch das Portal das mich in den nächsten raum befördert gehe, hab ich das so geregelt das bei kolision zwichen portal und player der zweite raum geöffnet wird. Im zweiten ruam befindet sich auch ein portal das wieder in den ersten raum führt. wenn ich dieses jetzt betrete, dann komm ich in den ersten raum und sovort wieder in den zweiten raum, weil im ersten raum die kollison mit dem portal noch besteht. Denn ich hab das wegen meinen Pause menue so eingestellt, das wenn ich den raum wieder betrete alles so ist wie ich ihn verlassen habe. Kann ich das ihrgendwie machen das ich das portal berühren muss und z.B. enter drücken muss um in den nächsten raum zu kommen? oder gibt es da noch eine elegantere lösung ohne das man was drücken muss, aber das mein problem nicht weiter besteht?

    und ich möchte computer gesteuerte einheiten einbinden, wie kann ich es erreichen das sie bei kollision und der taste enter eine sprechblase zeigen?

    so erstmal genug fragen für den anfang.

    ps ich hab die lite version

    gruß Grün


  • ins kollisions event des portals:

    GML-Quellcode

    1. if keyboard_check(vk_enter)//wenn man die taste Enter drückt dann
    2. {
    3. //hier würde ich den spieler in die entgegengesetze richtung des portals schieben
    4. x-=32//nach links schieben
    5. x+=32//nach rechts schieben
    6. y-=32//nach oben schieben
    7. y+=32//nach unten schieben
    8. room_goto(raum_angeben)
    9. }


    so müsste es eigentlich klappen ^^
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)
  • du kannsd ja machen dass das portal nur dann benutzt wird, wenn man gegen es läuft , also dass der collisionscheck nur ausgeführt wird, wenn du dnen spieler bewegts (dann ohne drag und drop sondern mit gml),

    oder du kannsd bei der collision mit einem portal eine variable 1 setzen (oder true) die sonst 0 ist (oder false) und dann beim drag and drop event key-pressed (so dass es nicht nochmal passiert wenn du es gedrückt hälst) abfrage if var=1 (ooder true),

    noch ne möglichkeit, vor dem betreten des nöchsten raumes, aber im collisionscheck bewegst du den spieler rückwärts um eine schrittweite, je nachdem wie weit den spieler eben läuft
  • ok super danke hat geklappt :)

    Und wie kann ich das erreichen, das wenn ich mit dem player ein comp_player berühre das der computerplayer eine sprechblase öffnet und was sagt?

    also die sprechblase würde ich mit einem neuen sprite dann realisieren, aber was muss ich eingeben, damit ich den computerplayer berühren muss UND enter drücken muss, damit das sprite mit der sprechblase geladen wird, und dann aber auch nur so lange aufbleibt bis man erneut enter drückt?

    gruß grün


  • erst erstellst du eine variable bsw

    GML-Quellcode

    1. sprechen=1

    im kollison event des KIs

    GML-Quellcode

    1. if keyboard_check_pressed(vk_enter)
    2. {
    3. if sprechen=1{sprechen=2}else if sprechen=2{sprechen=1}
    4. }

    im draw event:

    GML-Quellcode

    1. if sprechen=2
    2. {
    3. draw_sprite(deine_sprechblase,0,x,y-128)
    4. }


    das kannst du auch so erhöhen das du mehrere verschiedene sprechblasen benutzen kannst ;) aber das kannste ja erstma selber ausprobieren :P
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)
  • ihrgendwie funktioniert das nicht
    wenn ich das alles eingebe verschwindet mein compplayer
    im draw event:


    GML

    if sprechen=2
    {
    draw_sprite(deine_sprechblase,0,x,y-128 )
    }
    und das bild wird auch nicht gezeigt. Was bedeutet draw_sprite(deine_sprechblase,0,x,y-128 )??? ich kann mir da nichts draus reimen, wofür steht die null? und warum hat x keine angaben und y -128? ich hab da jetz paar tage rumgepopelt, aber des funktioniert iwie nicht


    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Gruen ()

  • das ist normal (keine ahnung wieso xD)^^ du musst dann das sprite zeichnen lassen

    GML-Quellcode

    1. draw_sprite(sprite_index,image_index,x,y)
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)
  • So wenn ich das objekt berühre und enter drücke, dann kommt diesmal das gewünschte sprite, aber ich muss raten wo sich das Computer_objekt befindet, weil ich es von beginn des Spiel's nicht sehen kann.

    GML-Quellcode

    1. draw_sprite(sprite_index,image_index,x,y)


    was muss ich bei image_index schreiben? ich hab da den namen des sprites meines objektes hingeschrieben, aber da passiert nichts.
    er ist also die ganze zeit unsichtbar...

    und wenn ich erneut enter drücke, kommt das sprechblasen sprite nicht wieder. das kommt nur beim erstenmal o_O


  • hier ein kleines example wie es aussehen könnte :)
    Dateien
    • Example.rar

      (10,16 kB, 92 mal heruntergeladen, zuletzt: )
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)
  • ok danke dir das du dir die mühe gemacht hast, ich brauch noch ein bischen um da durch zu blicken, aber läuft :)

    kurze andere frage noch...

    ich hab jetzt ein "create a skript" gemacht um kollisionen besser zu begegnen, weil dieses bounce den spieler in die endgegengesetzte richtung weiter laufen lässt.
    geschrieben hab ich also...

    GML-Quellcode

    1. if (keyboard_lastkey = vk_right)
    2. {
    3. x -= 6;
    4. }
    5. else if ( keyboard_lastkey = vk_left )
    6. {
    7. x += 6;
    8. }
    9. else if ( keyboard_lastkey = vk_up )
    10. {
    11. y += 6;
    12. }
    13. else if ( keyboard_lastkey = vk_down )
    14. {
    15. y -= 6;
    16. }
    Alles anzeigen


    funktioniert auch top muss ich sagen, aber manchmal wenn man dann die pfeiltaste in die endgegengesetzte richtungdrückt, dann bleibt der mit dem rücken an der wand hängen (siehe bild). kann ich da noch ihrgendwie gegenwirken=??

    ps ich mache ein spiel aus der vogel perspektive, also du schaust auf den kopf deines charackters...
    Bilder
    • 1.gif

      49,7 kB, 142×116, 179 mal angesehen


  • ich würde das so lösen:

    GML-Quellcode

    1. if (keyboard_lastkey = vk_right){if place_free(x-6,y) {x-=6}}
    2. if (keyboard_lastkey = vk_left){if place_free(x+6,y) {x+=6}}
    3. if (keyboard_lastkey = vk_up){if place_free(x,y-6) {y-=6}}
    4. if (keyboard_lastkey = vk_down){if place_free(x,y+6) {y+=6}}
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)
  • ja hat das problem jetzt nicht gelöst, aber hängt sicher mit dem sprite zusammen. weil wenn du dich danach umdrehst, dann berührt er manschmal zufällig die wand und bleibt kleben, aber ich teste noch bissle wenn ich echt nich weiter komm frag ich nochens :)