-
Notifications
You must be signed in to change notification settings - Fork 0
Prototyp Tamagochi
Das originale Tamagochi wurde in Japan von dem Unternehmen Bandai entwickelt und kam das erste Mal im November 1996 auf dem Markt und erreichte 1997 an großer Popularität. Es handelt sich dabei um ein kleines uhrengroßes Elektronikspielzeug, bei dem man sich um ein virtuelles Haustier kümmert. Das Haustier hat Bedürfnisse wie schlafen, essen, trinken und Zuneigung und hat sogar eine eigene Persönlichkeit. Ich überlege mir nun ein Spiel, das sich an dem originalen Tamagochi orientiert, die Spielmechaniken jedoch frei von mir erfunden sind. Ich versuche es nicht allzu kompliziert zu machen. Da ich mir die Spielmechaniken ad-hoc überlege, kann eine gute Spielerfahrung nicht garantiert werden.
Das Haustier hat zwei Status-Werte: Energie und Liebe. Energie und Liebe verringern sich langsam in einem konstanten Tempo. Hat das Tier keine Liebe mehr, dann ist das Spiel vorbei. Ist die Energie unter einem bestimmten Niveau, schläft das Tier und füllt seine Energie wieder etwas auf. Während das Tier schläft, kann nicht mehr mit dem Tier interagiert werden. Energie kann durch Essen wieder aufgefüllt werden. Da gibt es zum einem den Brokkoli, der die Energie auffüllt doch die Liebe verringert. Und es gibt den Kuchen, der auch die Energie auffüllt, das Tier dann aber mit einer bestimmten Wahrscheinlichkeit krank wird. Ist das Tier krank, so verringert sich seine Energie schneller. Die Krankheit hält nur für eine bestimmte Zeit an. Liebe kann aufgefüllt werden, indem mit dem Tier gespielt wird. Das Spielen verbraucht jedoch eine feste Anzahl an Energie.
Folgende Bedingungen müssen eingehalten werden:
- Die zwei Status-Werte Energie und Liebe haben einen Wertebereich von 0 bis 100, sind am Anfang beide auf 75 und werden angezeigt.
- Energie und Liebe verringern sich standardmäßig um jeweils 1 pro Sekunde.
- Wenn auf den Brokkoli geklickt wird, dann verringert sich die Liebe um 10 und die Energie steigt um 15.
- Wenn auf den Kuchen geklickt wird, dann steigt die Energie um 15.
- Wenn auf den Kuchen geklickt wird, dann gibt es eine 30%-Chance, dass das Tier krank wird. Die Krankheit dauert 15 Sekunden und wird angezeigt.
- Während das Tier krank ist, verringert sich seine Energie um 3 pro Sekunde.
- Während das Tier krank ist, kann es kein Kuchen mehr essen und es kann nicht mehr mit ihm gespielt werden.
- Wenn die Energie kleiner gleich 10 ist, schläft das Tier für 10 Sekunden. Dabei regeneriert die Energie um 2 pro Sekunde. Außerdem ist es dann nicht mehr krank.
- Wenn auf das Herz geklickt wird, dann wird mit dem Tier gespielt. Dabei verringert sich die Energie um 15 und die Liebe erhöht sich um 10.
- Ist die Liebe auf 0, dann ist das Spiel vorbei.
- Ist das Spiel vorbei, dann wird die „Lebenszeit“ des Tiers in Sekunden angezeigt.
- Wenn das Spiel vorbei ist, kann es über die Spieloberfläche neu gestartet werden.
Für die 3 Interaktionen:
- Spielen (Herz)
- Gemüse essen (Brokkoli)
- Kuchen essen (Kuchen)
werden 3 Bausteine vom Typ Bild benötigt. Diese haben zwei Kostüme. Ein Kostüm, das das Bild ganz normal zeigt und ein anderes Kostüm, wo das Bild durchgestrichen ist, sodass dem Spieler angezeigt wird, dass diese Interaktion gesperrt ist.
Für die 3 Symbole wird im Ereignis-Editor folgender Code geschrieben, der macht, dass bei einem Klick eine Nachricht gesandt wird:
Herz (Ereignis-Editor)
Klick:
$ Herz $;
.
Gesund:
wechsel zu Kostüm (0)!
.
Krank:
wechsel zu Kostüm (1)!
.
Schlaf:
wechsel zu Kostüm (1)!
.
Brokkoli (Ereignis-Editor)
Klick:
$ Brokkoli $;
.
Gesund:
wechsel zu Kostüm (0)!
.
Schlaf:
wechsel zu Kostüm (1)!
.
Kuchen (Ereignis-Editor)
Klick:
$ Kuchen $;
.
Gesund:
wechsel zu Kostüm (0)!
.
Krank:
wechsel zu Kostüm (1)!
.
Schlaf:
wechsel zu Kostüm (1)!
.
Beim Tier werden für die 3 Zustände jeweils ein eigener Baustein erstellt. Die Zustandsänderung geschieht dann dadurch, dass der Baustein durch einen anderen Baustein über die Syntax ^<Typ> ersetzt wird.
Aktionen-Editor
begrenze Werte:
? Liebe < 0:
Liebe: setze Zahl auf (0)!
.
? Energie < 0:
Energie: setze Zahl auf (0)!
.
? Liebe > 100:
Liebe: setze Zahl auf (100)!
.
Liebe < 0:
Liebe: setze Zahl auf (0)!
.
.
Ereignis-Editor
Start:
Energie: setze Zahl auf 75!
Liebe: setze Zahl auf 75!
.
Ersetzt:
$ Gesund $
.
Update (Zahl dt):
Energie: ändere um (-dt)!
Liebe: ändere um (-dt)!
begrenze Werte!
? Energie <= 10:
^TierSchlafend;
.
.
Herz:
Liebe: ändere um (10)!
Energie: ändere um (-15)!
begrenze Werte!
.
Brokkoli:
Liebe: ändere um (-10)!
Energie: ändere um (15)!
begrenze Werte!
.
Kuchen:
Energie: ändere um (15)!
begrenze Werte!
? Zufall->Zahl < 0,3:
^TierKrank;
.
.
Aktionen-Editor
begrenze Werte:
? Liebe < 0:
$ GameOver $;
.
? Energie < 0:
Energie: setze Zahl auf (0)!
.
? Liebe > 100:
Liebe: setze Zahl auf (100)!
.
Energie > 100:
Energie: setze Zahl auf (100)!
.
.
Ereignis-Editor
Ersetzt:
Zeit: setze Zahl auf 0!
$ Krank $;
.
Update (Zahl dt):
Zeit: ändere um (dt)!
Energie: ändere um (-dt * 3)!
Liebe: ändere um (-dt)!
begrenze Werte!
? Energie <= 10:
^TierSchlafend;
.
? Zeit >= 15:
^TierGesund;
.
.
Brokkoli:
Liebe: ändere um (-10)!
Energie: ändere um (15)!
begrenze Werte!
.
Aktionen-Editor
begrenze Werte:
? Liebe < 0:
Liebe: setze Zahl auf (0)!
.
? Energie < 0:
Energie: setze Zahl auf (0)!
.
? Liebe > 100:
Liebe: setze Zahl auf (100)!
.
Liebe < 0:
Liebe: setze Zahl auf (0)!
.
.
Ereignis-Editor
Ersetzt:
$ Schlaf $;
Zeit: setze Zeit auf 0!
.
Update (Zahl dt):
Zeit: ändere um (dt)!
Energie: ändere um (dt * 2)!
Liebe: ändere um (-dt)!
begrenze Werte!
? Zeit >= 10:
^TierGesund;
.
.
Die Welt sendet die Nachricht Update an das Tier, bis GameOver ist.
Aktions-Editor
aktualisiere:
[]:
§ 'DeltaZeit' ist ein bestimmter Wert, der zurückgibt, wie viele Sekunden seit der letzen Schleifeniteration vergangen sind. §
Zeit: ändere um (DeltaZeit)!
$ Update (DeltaZeit) $;
.
.
Ereignis-Editor
Start:
GameOverText: verstecke dich!
Zeit: setze Position auf (0) (-300)!
aktualisiere!
.
GameOver:
GameOverText: zeige dich!
Zeit: setze Position auf (200) (-300)! §Setze die Position der Zeit so, dass sie neben dem GameOverText steht§
+-; § Terminiere §
.