====== Minecraft ====== {{:wiki:minecraft.jpg?400|}} ===== 1. Einführung ===== Eventuell kennst du das beliebte Onlinespiel "Minecraft". Es handelt sich dabei um eine Art "Lego-Spiel" im Retrolook, bei welchem die Spielfigur in einer virtuellen Welt selber kreativ ist und mithilfe von Blöcken eine eigene Welt erschaffen kann. Es gibt fünf verschiedene Spielmodi. Im "Überlebensmodus" beispielsweise, muss die Spielfigur Nahrung finden und sich gegen Gegner zur Wehr setzen, um am Leben zu bleiben. Zudem muss man Rohstoffe abbauen, um diese dann zum Bauen verwenden zu können. Wir werden ** Minecraft Education ** im sogenannten **"Kreativmodus"** verwenden. In diesem hat man unbeschränkte Rohstoffe zur Auswahl und muss sich nicht gegen irgendwelche Gegner verteidigen. Dies ist der beste Modus, um etwas selber zu konstruieren und zu erschaffen. ==== 1.1 Login und Einstellungen ==== Du kannst dich mit deinem Microsoft365-Konto einloggen. ====1.2 Spielsteuerung ==== In der folgenden Tabelle sind die wichtigsten Tastatur- und Mausbefehle zusammengefasst, die du für die Steuerung der Spielfigur, bzw. für die Konstruktion benötigst. ^Tastaturbefehl ^Bedeutung^ |Linker Mausclick | Minen/graben| |Rechter Mausclick| Block erstellen| |W|Vorwärts gehen (2x sprinten)| |S|Rückwärts gehen| |A|Nach rechts gehen| |D|Nach links gehen| |CTRL|Sprinten| |Leertaste|Springen/ (2x) fliegen| |Umschalt|Runterfliegen/schleichen| |F5|Perspektive wechseln| |E|Inventar| |Q|Gegenstand fallenlassen| |1,2,3... | Material aus Inventar ausrüsten| |H| Steuerungsbefehler ein-/ausblenden| ===== 2. Mit Python programmieren ===== Drückt man die Taste C, so kann man eine Programmierumgebung öffnen (MakeCode) und dann ein Projekt erstellen. Wählt man nun oben in der Mitte Python, so kann man Programme in Python erstellen, welche die Minecraft-Welt manipulieren. ===== 3. Agenten programmieren ===== Sobald man den Code-Editor öffnet, erscheint ein kleiner Roboter (der Agent), den man mithilfe von Programmen steuern kann. Auch der Agent hat sein Inventar. Die untenstehende Seite gibt einen Überblick über die Befehle des Agenten. [[gf2:agent|Den Agenten programmieren]] ===== 4. Blöcke platzieren/ absolute und relative Position ===== Mit dem Python-Befehl '' blocks.place '' kann man einen Block an einer beliebigen Position erstellen. Mit '' blocks.fill '' kann man einen ganzen Würfel von Blöcken auf einmal erstellen. Die Namen der verschiedenen Blöcke sind in Konstanten gespeichert. Dahinter verbergen sich einfach Zahlen, aber ein Programm wird leserlicher, wenn man die Konstante hinschreibt. So machen die folgenden Befehle genau dasselbe: blocks.place(HONEYCOMB_BLOCK, world(0, 4, 0)) blocks.place(732, world(0, 4, 0)) In der Konstanten "HONEYCOMB_BLOCK" ist nichts anderes als die Zahl 732 gespeichert (die ID des Bienenwaben-Blocks). ==== 4.1 Absolute Position ==== Gibt man eine Positon mit ** world ** an, so handelt es sich um eine absolute Position, die vom Spieler unabhängig ist. Dabei ist x Osten/Westen, y-Oben/Unten (Boden ist in der flachen Welt auf der Höhe 4), z Norden/Süden. ==== 4.2 Relative Position ==== Gibt man eine Position mit ** pos ** an, so handelt es sich um eine relative Position verglichen mit dem Spieler. So bedeutet ** pos(1,5,0) ** die Position 1 östlich und 5 oberhalb des Spielers. ==== 4.3 Namen der Blöcke ==== Am besten findet man die Namen der Blöcke, indem man die Sprache Englisch verwendet und dann im Inventar den Namen des entsprechenden Blocks findet. Leerschläge sind dabei durch Underscores zu ersetzen. Eine Übersicht über die Blöcke und die IDs findet man auch [[https://minecraft-ids.grahamedgecombe.com/|Unter dieser Seite]]. Die Objekte mit Ids mit Doppelpunkt (z.B. 1:1 Granite) haben sehr hohe ID-Werte in Python (um 65000). ===== 5. Python-Programmierkonzepte in Minecraft ===== In jeder Programmiersprache gibt es im Prinzip dieselben wichtigen Konzepte: Variablen, Datentypen, Listen, Schleifen, Bedingte Anweisungen, Funktionen [[archiv:gf:gf2020_2021:minecraft:programmierkonzepte|Python Programmierkonzepte in Minecraft]] ===== 6. Python/Minecraft Projekt ===== [[archiv:ef:ef2020_2022:minecraft:projekt:start|Projektbeschreibung]]