Schnellstart (für Programmierer): Unterschied zwischen den Versionen

Aus Scalablegamedesign
Zur Navigation springen Zur Suche springen
Zeile 10: Zeile 10:
* Du änderst etwas am Level und '''startest das Spiel ohne abzuspeichern'''. Die Änderungen sind damit verloren, du hast nur noch den Zustand des Levels, in dem er sich aktuell im Spiel befindet, sowie natürlich die zuletzt gespeicherte Version.
* Du änderst etwas am Level und '''startest das Spiel ohne abzuspeichern'''. Die Änderungen sind damit verloren, du hast nur noch den Zustand des Levels, in dem er sich aktuell im Spiel befindet, sowie natürlich die zuletzt gespeicherte Version.
* Du '''speicherst versehentlich''' eine neue Version des Levels, zum Beispiel nach dem Spielen. Der vorher gespeicherte Zustand wird jetzt überschireben und existiert nicht mehr.
* Du '''speicherst versehentlich''' eine neue Version des Levels, zum Beispiel nach dem Spielen. Der vorher gespeicherte Zustand wird jetzt überschireben und existiert nicht mehr.
Es lohnt sich, dass man sich relativ rasch an die Funktionsweise der "Speichern"-Schaltfläche gewöhnt. Nach einigen Versuchen ist das üblicherweise kein Problem mehr.


= Agenten =
= Agenten =


Bei AgentCubes orientiert sich die Programmierung an so genannten Agenten, also an Spielfiguren, die auf einem Schachbrett-Muster angeordnet sind. Programmanweisungen laufen nur als Teil von Agenten.
Die Programmierung lehnt sich somit eher an die Programmierung von Benutzeroberflächen, wo man Programmcode an Schaltflächen und andere Elemente anfügt. Es gibt in AgentCube keine Möglichkeit, Programmcode zentral zu entwickeln, der dann unabhängig von den Spielfiguren läuft. Wenn man solchen Code benötigt, muss man ihn an einen Agenten hängen.
Zentral benötigten Code kann man beispielsweise wie folgt umsetzen:
* Man hängt ihn an die Spielfigur. Diese existiert typischerweise genau ein Mal und enthält ansonsten nur wenig Programmcode.
* Man hängt ihn an einen eigenen Agenten, zum Beispiel einen roten Block. Man kann diesen Block dann beispielsweise als Schaltfläche verwenden, mit der man den Level zurücksetzen kann.
* Wenn der Code nur zu Spielbeginn verwendet wird, kann man ihn auch an einen eigenen Agenten hängen und diesen dann am Schluss des Codes vom Spielfeld löschen. Das stellt sicher, dass der Code genau ein Mal ausgeführt wird.


= If-Then (Bedingungen) =
= If-Then (Bedingungen) =
AgentCubes basiert auf '''IF - THEN''' Anweisungen. Ein Typischer Codeblock sieht wie folgt aus:
<blockquote>
  '''WENN'''  gedrückt (Pfeil nach rechts)  '''DANN'''  bewege (rechts).
  '''WENN'''  gedrückt (Pfeil nach links)  '''DANN'''  bewege (links).
  '''WENN'''  gedrückt (Pfeil nach rechts)  '''DANN'''  bewege (rechts).
  '''WENN'''  gedrückt (Pfeil nach rechts)  '''DANN'''  bewege (rechts).
</blockquote>
Wichtig ist: '''Die Anweisungen werden nur so lange evaluiert, bis die erste Bedingung erfüllt ist'''. Vollständig ausgeschrieben wären die Anweisungen mit IF-THEN-ELSE-Blöcken realisiert:
<blockquote>
  '''WENN'''  gedrückt (Pfeil nach rechts)  '''DANN'''  bewege (rechts).
      '''SONST'''
  '''WENN'''  gedrückt (Pfeil nach links)  '''DANN'''  bewege (links).
      '''SONST'''
  '''WENN'''  gedrückt (Pfeil nach rechts)  '''DANN'''  bewege (rechts).
      '''SONST'''
  '''WENN'''  gedrückt (Pfeil nach rechts)  '''DANN'''  bewege (rechts).
</blockquote>





Version vom 31. Mai 2017, 15:59 Uhr

AgentCubes setzt viele Aspekte des Programmierens um und eignet sich besonders für komplette Anfängerinnen und Anfänger. Diese Seite enthält die wichtigsten Punkte, die zu beachten sind, wenn man bereits eine Programmiersprache oder Entwicklungsumgebung kennt.

Speichern

AgentCubes hat zwei Modi des Speicherns:

  • Der Programmcode wird fortlaufend gespeichert, auch ohne dass man etwas drücken oder einstellen muss.
  • Die Levels werden durch Drücken auf die Schaltfläche Speichern abgespeichert.

Dieses Verhalten kann in zwei Fällen zu Mehrarbeit führen:

  • Du änderst etwas am Level und startest das Spiel ohne abzuspeichern. Die Änderungen sind damit verloren, du hast nur noch den Zustand des Levels, in dem er sich aktuell im Spiel befindet, sowie natürlich die zuletzt gespeicherte Version.
  • Du speicherst versehentlich eine neue Version des Levels, zum Beispiel nach dem Spielen. Der vorher gespeicherte Zustand wird jetzt überschireben und existiert nicht mehr.

Es lohnt sich, dass man sich relativ rasch an die Funktionsweise der "Speichern"-Schaltfläche gewöhnt. Nach einigen Versuchen ist das üblicherweise kein Problem mehr.


Agenten

Bei AgentCubes orientiert sich die Programmierung an so genannten Agenten, also an Spielfiguren, die auf einem Schachbrett-Muster angeordnet sind. Programmanweisungen laufen nur als Teil von Agenten.

Die Programmierung lehnt sich somit eher an die Programmierung von Benutzeroberflächen, wo man Programmcode an Schaltflächen und andere Elemente anfügt. Es gibt in AgentCube keine Möglichkeit, Programmcode zentral zu entwickeln, der dann unabhängig von den Spielfiguren läuft. Wenn man solchen Code benötigt, muss man ihn an einen Agenten hängen.

Zentral benötigten Code kann man beispielsweise wie folgt umsetzen:

  • Man hängt ihn an die Spielfigur. Diese existiert typischerweise genau ein Mal und enthält ansonsten nur wenig Programmcode.
  • Man hängt ihn an einen eigenen Agenten, zum Beispiel einen roten Block. Man kann diesen Block dann beispielsweise als Schaltfläche verwenden, mit der man den Level zurücksetzen kann.
  • Wenn der Code nur zu Spielbeginn verwendet wird, kann man ihn auch an einen eigenen Agenten hängen und diesen dann am Schluss des Codes vom Spielfeld löschen. Das stellt sicher, dass der Code genau ein Mal ausgeführt wird.

If-Then (Bedingungen)

AgentCubes basiert auf IF - THEN Anweisungen. Ein Typischer Codeblock sieht wie folgt aus:

WENN gedrückt (Pfeil nach rechts) DANN bewege (rechts). WENN gedrückt (Pfeil nach links) DANN bewege (links). WENN gedrückt (Pfeil nach rechts) DANN bewege (rechts). WENN gedrückt (Pfeil nach rechts) DANN bewege (rechts).

Wichtig ist: Die Anweisungen werden nur so lange evaluiert, bis die erste Bedingung erfüllt ist. Vollständig ausgeschrieben wären die Anweisungen mit IF-THEN-ELSE-Blöcken realisiert:

WENN gedrückt (Pfeil nach rechts) DANN bewege (rechts). SONST WENN gedrückt (Pfeil nach links) DANN bewege (links). SONST WENN gedrückt (Pfeil nach rechts) DANN bewege (rechts). SONST WENN gedrückt (Pfeil nach rechts) DANN bewege (rechts).


Stapel und Ebenenen

Ereignisse und Ereignisbehandlung

Variablen