Kollision von gezeichneten Sprites

  • GM 8

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

  • Kollision von gezeichneten Sprites

    Vor kurzem habe ich die Grundfunktionen meines Inventarsystems fertiggestellt. Wenn der Spieler mit einem Item kollidiert, wird mit einer for-Schleife ein freier platz in meinem Inventar-Array gesucht und eine ID für den Typ des Objektes abgespeichert. Beim öffnen des Inventars wird alles wieder mit for-Schleifen gezeichnet. Hierbei werden aber nicht Objekte erstellt sondern lediglich die zugehörigen Sprites der eingesammelten Objekte gezeichnet.

    Das Array sieht folgendermaßen aus:

    global.inventory[1, 1] = "" //name (ID)
    global.inventory[1, 2] = 0 //amount
    global.inventory[1, 3] = 0 //Sprite
    global.inventory[1, 4] = 320 //x-Koordinaten
    global.inventory[1, 5] = 160 //y-Koordinaten

    Die Koordinaten beschreiben die Position des Inventarslots.

    Nun möchte ich noch eine Drag & Drop Funktion einbauen. Ich habe schon einige Ideen wie ich das bewerkstelligen könnte. Erst dachte ich daran, dass man einfach nur die mausposition abfragen muss wenn im offenen inventar geklickt wird. Falls sich die Maus in einem vollen "Slot" befindet wird das Sprite aus diesem gelöscht und an die Mausposition gespeichert...
    Doch die Sprites füllen ja nicht alle den gesamten Slot aus. D.h. entweder das Sprite springt auf einmal zur Maus oder es bewegt sich evtl neben der maus. Beides ist natürlich nicht gerade schön. Man könnte das gut lösen wenn man auf eine Kollision von Maus und Sprite warten könnte. Da ich nicht weiß wie das gehen soll oder ob es überhaupt geht, fällt mir nur noch ein für jedes Objekt ein zweites zu erstellen und diese in die Slots zu stellen. Vielleicht fällt euch eine bessere Lösung ein. Würde mich sehr freuen ;)
  • Benutzer online 1

    1 Besucher