Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| gf2:projekte:minecraft:tipps_bauen [2022/11/24 14:50] – lehmannr | gf2:projekte:minecraft:tipps_bauen [2023/12/04 22:31] (aktuell) – [6. Items ins Inventar eines Spielers/Agenten/Chest legen] lehmannr | ||
|---|---|---|---|
| Zeile 32: | Zeile 32: | ||
| * [[https:// | * [[https:// | ||
| + | ==== 2. Blöcke drehen ==== | ||
| + | Es gibt Blöcke, die nicht symmetrisch sind (z.B. Treppenstufen, | ||
| + | <sxh Python> | ||
| + | </ | ||
| - | ==== 2. Deny, Allow und Border-Blocks ==== | + | ==== 3. Deny, Allow und Border-Blocks ==== |
| * Wenn man möchte, dass sich die Spieler nur in einem bestimmten Bereich aufhalten können, kann man sogenannte Border-Blocks verwenden. | * Wenn man möchte, dass sich die Spieler nur in einem bestimmten Bereich aufhalten können, kann man sogenannte Border-Blocks verwenden. | ||
| Zeile 44: | Zeile 48: | ||
| Um die Welt unveränderbar zu machen, verwendet man '' | Um die Welt unveränderbar zu machen, verwendet man '' | ||
| - | |||
| Will man diese allow-, deny, oder border-Blöcke mit Code erstellen (z.B. über '' | Will man diese allow-, deny, oder border-Blöcke mit Code erstellen (z.B. über '' | ||
| Zeile 50: | Zeile 53: | ||
| In [[https:// | In [[https:// | ||
| - | ==== 3. Komplexere Strukturen effizient bauen ==== | + | ==== 4. Komplexere Strukturen effizient bauen ==== |
| Angenommen, wir wollen eine etwas komplexere Struktur bauen, die wir nicht einfach mit einer for-Schleife oder einem einfachen Programm erstellen können. Natürlich könnten wir alle Blöcke einzeln mit '' | Angenommen, wir wollen eine etwas komplexere Struktur bauen, die wir nicht einfach mit einer for-Schleife oder einem einfachen Programm erstellen können. Natürlich könnten wir alle Blöcke einzeln mit '' | ||
| Zeile 73: | Zeile 76: | ||
| Die Elemente einer solchen Tabelle (d.h. einer " | Die Elemente einer solchen Tabelle (d.h. einer " | ||
| - | ** Wie kann man den Smiley automatisch bauen lassen? ** \\ | + | ** Wie kann man den Smiley automatisch bauen lassen? ** |
| - | Wenn der Smiley mit der Liste der Zeilen codiert wurde, kann ich mit dem Befehl '' | + | |
| - | < | + | Wenn der Smiley mit der Liste der Zeilen codiert wurde, kann ich mit dem Befehl '' |
| + | |||
| + | < | ||
| Smiley2 = [[0, | Smiley2 = [[0, | ||
| - | |||
| for i in range(5): | for i in range(5): | ||
| for j in range(5): | for j in range(5): | ||
| zahl = Smiley2[i][j] # die Zahl des Pixels holen in der Liste Smiley2 (0, | zahl = Smiley2[i][j] # die Zahl des Pixels holen in der Liste Smiley2 (0, | ||
| - | if zahl == 1: | + | if zahl == 1: # wenn die Zahl 1 ist: gelber Block bauen |
| - | blocks.place(GOLD_BLOCK, | + | blocks.place(GOLD_BLOCK, |
| - | if zahl == 2: | + | if zahl == 2: # wenn die Zahl 2 ist: schwarzen Block bauen |
| blocks.place(COAL_BLOCK, | blocks.place(COAL_BLOCK, | ||
| + | # wenn die Zahl 0 ist wird nichts gebaut (Air) | ||
| + | </ | ||
| + | Es ist nicht ganz einfach, das Programm von oben zu verstehen, doch mit diesem Prinzip kann man recht elegant und effizient komplexe Strukturen bauen. Die Koordinaten muss man an die eigenen Bedürfnisse anpassen. im Beispiel von oben geht man davon aus, dass die Figur auf der " | ||
| + | |||
| + | ==== 5. Einen Block " | ||
| + | Will man, dass sich ein Block " | ||
| + | Spiele mit Bewegung laufen häufig in einem Game-Loop ab. Dies ist eine Schleife, die x Mal pro Sekunde ausgeführt wird (FPS=Frames pro Sekunde). Bei jedem Frame wird die Welt gelöscht und neu gezeichnet. Dadurch entsteht der Eindruck einer Bewegung. | ||
| + | |||
| + | <sxh python> | ||
| + | running = True # solange dies auf True ist, läuft der Game-Loop | ||
| + | |||
| + | def stopGame(): # wenn " | ||
| + | global running | ||
| + | running = False | ||
| + | |||
| + | player.on_chat(" | ||
| + | |||
| + | x = -60 | ||
| + | frame = 0 | ||
| + | while running: | ||
| + | frame += 1 | ||
| + | if (frame % 50 == 0): # immer nach 50 Frames | ||
| + | blocks.place(DIAMOND_BLOCK, | ||
| + | blocks.place(AIR, | ||
| + | x = x+1 # Position anpassen | ||
| </ | </ | ||
| + | ==== 6. Dinge in das Inventar eines Spielers/ | ||
| + | Manchmal möchte man Items oder Blöcke in das Inventar eines anderen Spielers, des Agenten oder einer Kiste legen. Dazu kann man den Chat-Befehl ''/ | ||
| [[gf2: | [[gf2: | ||