3 Blöcke

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

  • Da hab ich gleich noch ein Problem. Diesmal versuch ich mich besser verständlich zu machen :D.

    Ich habe 3 Blöcke(wenn es möglich ist die gleichen Objekte). Diese sollen sich und das/ die Andere/n zerstören wenn sie nebeneinannder liegen. Wenn sich aber nur 2 berühren sollen auch nur diese beiden zerstört werden und nicht alle 3.

    Das hört sich jetzt simpel an ist aber meiner Meinung nach nicht ganz einfach. Darum würde ich mir wünschen das ihr immer auch das was ihr schreibt auch ausprobiert.
  • müsste auch eigentlich einfach ein. probiere es mal damit:

    GML-Quellcode

    1. if collision_circle(x,y,20,false,false) and other.id != id then
    2. {
    3. with other instance_destroy();
    4. instance_destroy();
    5. }


    ------------
    edit:
    was seh ich da? 63 mal editiert, was ist den da vorgefallen? ^^
    :) Nobody is perfect (-:

    "Dummköpfe sind Denkerköpfen weit überlegen. Zahlenmäßig." Ernst Ferstl

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Nobody-86 ()

  • soll das so ein spiel werden wie colors1/2?
    dann musst du das anders anpacken....
    im step event schaust du ob links/rechts/oben/untern nochmal ein block ist, wenn ja dann zerstört der block sich selber. im destroy event schaust du ob links/rechts/oben/unten ein block ist(wie vorher) aber zerstörst den anderen block (mit with(other)). der andere schaut dann auch wieder ob ein block angrenzt und zerstört diesen.....und so weiter.....
    dann sollte das gehen.....

    Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • Ne es wir kein spiel wie colors oder tetris oder ähnlichen. Es wird ein Knobel spiel mit sschon jetzt sehr geilen rätseln. Werden die dann genau gleichzeitig zerstört. denn falls der eine zuerst zerstört wird dann wird das andere gar nicht ausgefüllt. aber da laber ich und laber ich und probier noch nicht mal aus.:D
  • es gibt eine kettenreaktion...alle werden der reihe nach zerstört....
    probieren solltest du es schon wenn sich andere schon die mühe geben dir zu helfen :no:
    falls du es nicht schaffst mach ich dir ein example..a.ber zuerst probieren

    Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • Original von des.eagle
    Ne es wir kein spiel wie colors.....

    Na das will ich dir aber auch geraten haben!!! :D

    Aber so was ähnliches wollte ich für Colors2 auch machen.
    Nämlich, dass wenn 3 gleichfarbene Kugeln nebeneinander liegen, sich zerstören und extra Punkte geben. Aber das hab ich nicht hingekriegt.
    Und hier zu fragen hab ich auch vergessen. :D

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

  • schick mir mal die gm6 datei ... oder stell sie hier rein. ich schau sie dann mal an, vielleicht finde ich etwas. ich hatte sowas auch schon mal....weiss aber nicht mehr was dazu geführt hat

    Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • schonmal vorweg:
    id ist nicht die object id!
    Es ist eine Instance ID die man bereits im Room-Editor sehen kann.
    Deshalb würde es nichts bringen wenn man, zb, will, dass sich 2 gleiche Kugeln beim Treffen zerstören sollen,
    Denn es gibt nur eine id.
    Benutzt dafür object_index.


    Zum Fehler.
    Es fehlt ein Argument (indem fall das OBjekt ;) )

    GML-Quellcode

    1. if collision_circle(x,y,20,OBJECT,false,false) and other.id != id then
    2. {
    3. with other instance_destroy();
    4. instance_destroy();
    5. }
  • Hier mal die gm6-datei wegen dem Problem mit dem abstürzen der Spiele:

    web-upload.com/uploads/boxes.gm6

    Vieleicht bekommt es ja einer hin. merkwürdig ist das aber oder ein bug vom gm.

    Edit: zur steuerung müsst ihr auf die toten blöcke klicken und nach rechts oder links ziehen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von des.eagle ()

  • fehler gefunden....es war ein notfallsystem des GM........
    lösung:
    im create event: kill=0;
    im destroy event: musst du ne abfrage machen ob kill=0 ist, wenn ja dann stellt es zuerst kill auf 1 und dann fürht es den code aus

    Dragoon

    edit.erklärung.notfallsystem:
    es gab ne destroy-schlaufe......obj1 zerstört obj2, im destry event wird obj1 erstört, welches weil das event nochmal stattfindet nochmals obj2 zerstört und so weiter bis der GM abbricht....aus sicherheitsgründen
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!

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

  • das ist auch falsch =P
    im destroy hast du schon einen code.........VOR disen code kommt das if statement BIS NACH diesem code.........du musst den code einschliessen, sodass er nur ein mal auseführt werden kann

    Dragoon

    Edit: Namen vergessen^^
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!

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