Closed SebiPf closed 3 years ago
Das Inventar liefert dir als "Ergebnis" die verbrauchten Items, die musst Du auswerten. Oder geht es dir darum, dass das Inventar offen bleibt, während Du die Klicks auswertest?
Wie werte ich die aus? Ich hab dazu nirgends was gefunden. Das einzige auf das ich gekommen bin wäre was im fudgestory.js zu ändern aber da wollte ich mich erstmal nicht dran wagen.
Schau mal was da in der Console rauspurzelt
console.log(await ƒS.Inventory.open());
ja gut da wird mir was ausgegeben wie ich das abfang ist aber trotzdem nicht klar und sehr entwicklerfreundlich(intuitiv) ist die Ausgabe auch nicht also ich will ja nicht in jeder Szene die ganze zeit überprüfen ob das gemacht wurde.
Nun, es ist ein String-Array der verbrauchten Items, was wäre entwicklerfreundlicher?
Wo öffnest Du das Inventar? Das wäre dann auch der Ort für die Auswertung. Du müsstest deinen Anwendungsfall genauer beschreiben, damit ich erkennen kann, was genau Du brauchst.
Genau, der Ort der Auswertung wäre das Inventar. Durch den mit Klick ausgelöstem Konsum des Items werden Events ausgelöst, wie z.B. health+5. Somit wäre das Inventar währenddessen durchgehend geöffnet.
& ja, das Inventar wird per Tastendruck geöffnet
Somit wäre das Inventar währenddessen durchgehend geöffnet
Das wäre die entscheidende Information, nach der ich gefragt hatte.
Jetzt hast Du sie :p
Dann würde ich vorschlagen, dass man bei der Item-Definition optional noch einen Handler mitgeben kann, der bei Pointer-Up und Pointer-Down aufgerufen wird. Der empfängt ein Custom-Event mit dem Item-Namen als Datenlast. Dann kann man sich einen Handler bauen und dort machen, was man will, auch während das Inventar geöffnet ist.
das hört sich doch gut an
Ok, da muss ich mir Gedanken über eine gute Struktur dafür machen. Was habt ihr bislang mit Signalen gemacht? Vielleicht bietet sich das an.
Lediglich kurze Verzögerungen eingebaut.
Ok, stinknormale Handler passen besser. Ist eingebaut, bitte testen. Beispiel:
{
name: "Fudge Item",
description: "A delicious cube of fudge, adds 10 to your health",
image: "Images/Fudge_48.png",
static: false,
handler: hndItem
}
function hndItem(_event: CustomEvent): void {
console.log(_event);
}
_event.type kann die Werte pointerUp oder pointerDown haben, den Namen des Items findet man in _event.detail
okay also ich hab das jetzt getestet und für meine zwecke funktioniert es perfekt
Ich glaube, dass der Handler zurzeit nicht optional ist. Ich bekomme einen Error, da ich den Handler nicht verwende. Wäre cool, wenn das noch geändert werden könnte.
jetzt ist er optional @JirkaDellOro
Ups... vergessen. Danke!
Eine Funktion die abfängt welches Item im Inventar angeklickt wurde um als Resultat ein Event auszulösen(z.b. eine Variable wird geändert). Also z.b. wenn man ein Trank anklickt wird er benutzt und als Resultat wird eine Variable(Lebenspunkte) um 5 oder so erhöht.