Frage von Wettkampf13, 69

Spiel selbst programmieren, wie kann man gegenstände einsammeln?

Hi, ich muss für meinen Informatik Kurs selbst ein Spiel programmieren. ich habe mich mit meiner Freundin für ein Adenventure HTML entschieden. Die Bilder haben wir selbst gemalt, nun wäre meine Frage: Wie kann man Gegenstände einsammeln, also der Spieler soll jetzt in einem Zimmer ein Blatt einsammeln und im nächsten Zimmer ein Handy, wie kriege ich es ihn das er nur das Spiel gewinnt wenn er die vorgegebenen Sachen einsammelt? Danke =P

Antwort
von PWolff, 33

Z. B.: Die Gegenstände als eigene Objekte (mit eigenen Sprites oder wie auch immer ihr Gegenstände darstellt) an die betreffenden Orte legen.

Für das Aufnehmen erhält das Objekt einen anderen Ort, nämlich die Tasche des Spielers.

Für die Darstellung hat am besten jeder Ort eine Liste mit den Gegenständen, die an ihm als Ort liegen.

Oder: Jeder Ort hat eine Eigenschaft "Gegenstand, der hier liegt". Diese Eigenschaft wird auf "nichts" (z. B. null) gesetzt, wenn der Spieler ihn aufsammelt, gleichzeitig muss natürlich der Zähler dieser Gegenstandsart in der Tasche des Spielers erhöht werden.

Ich kenne ein Spiel, bei dem es offensichtlich so ist, dass jeder Ort mehrere Eigenschaften hat - eine Eigenschaft für seinen Untergrundbeschaffenheit, eine für das Landscape-Element, das auf ihm liegt, eine für die Art nutzbarer Gegenstände, die auf ihm liegt und eine für die Anzahl dieser Gegenstände. (Anzahl von 0 bis 5 - für diese Anzahlen sind Sprites vorhanden)

Antwort
von ShmuelRotkraut, 29

Einsammeln: Koordinaten der Spielfigur mit Koordinaten des Handys vergleichen. Die Spielfigur und das Handy sind eigentlich nur rechteckige Bilder, also sollte das folgendermaßen aussehen (Ich nehme hier an, dass x jeweils die Kante links beider Rechtecke darstellt). Achtung, den Code nicht so übernehmen, da ihr die Variablen sicher anders benannt habt und ich mich mit JavaScript nicht auskenne - Logische Operationen könnten anders funktionieren als in ? “meiner“ Programmiersprache.

if x_spieler + kantenlänge_spieler (Kantenlänge in x-Richtung. Kommt der Spieler von links und man lässt die Kantenlänge bei dieser Rechnung außer Acht, wird es nur eingesammelt, wenn er schon daran vorbeigelaufen ist - Es zählt dann nämlich nur sein Rücken) > x_handy and x_spieler + kantenlänge_spieler < x_handy + kantenlänge_handy then

handy_gesammelt =true

endif

Ich hoffe, dass ist verständlich. Müsst ihr in JavaScript arbeiten? Ich hätte eine Sprache mit Engine für euch, die viel besser für Spiele geeignet wären, vor allem für Anfänger.

Keine passende Antwort gefunden?

Fragen Sie die Community