Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| gf2:projekte:2024:minecraft:2d1gruppe5 [2025/04/06 16:49] – glocknerl | gf2:projekte:2024:minecraft:2d1gruppe5 [2025/05/18 13:43] (aktuell) – glocknerl | ||
|---|---|---|---|
| Zeile 31: | Zeile 31: | ||
| Anleitung: | Anleitung: | ||
| - | Es ist wichtig, dass nach dem Ausführen des Codes gewartet wird, bis die Musik ertönt, bis die Welt betreten werden kann! Es darf sich nicht bewegt werden bis die Musik ertönt. | + | |
| - | Code: | + | Eine Flache Welt muss erstellt werden, in dieser Welt kann unabhängig von der Spielerposition der Code ausgeführt werden. |
| - | mauerlaenge=0# | + | In diese Welt muss per " |
| - | mauerbreite=0# | + | Um das Dorf erscheinen zu lassen muss das Word " |
| - | BigHouseWidth=0# | + | Es ist wichtig, dass nach dem Ausführen des Codes gewartet |
| - | loading=1 | + | Damit wilkommen in Thornveil der Stadt des Blütenstaubes und viel Spass. |
| - | def Stadtmauer(laenge, | + | |
| - | global mauerlaenge | + | <code python> |
| - | mauerlaenge=laenge | + | |
| - | global mauerbreite | + | mauerbreite=0# |
| - | mauerbreite=breite | + | BigHouseWidth=0# |
| - | blocks.fill(STONE_BRICKS, | + | loading=1 |
| - | blocks.fill(AIR, | + | |
| - | blocks.fill(STONE_BRICKS, | + | |
| - | if laenge%2==0:# | + | global mauerlaenge |
| - | blocks.fill(AIR, | + | mauerlaenge=laenge |
| - | else: | + | global mauerbreite |
| - | blocks.fill(AIR, | + | mauerbreite=breite |
| - | def Pfad(laenge, | + | blocks.fill(STONE_BRICKS, |
| - | if laenge%2==0: | + | blocks.fill(AIR, |
| - | blocks.fill(GRASS_PATH, | + | blocks.fill(STONE_BRICKS, |
| - | else: | + | if laenge%2==0:# |
| - | blocks.fill(GRASS_PATH, | + | blocks.fill(AIR, |
| + | else: | ||
| + | blocks.fill(AIR, | ||
| + | def Pfad(laenge, | ||
| + | if laenge%2==0: | ||
| + | blocks.fill(GRASS_PATH, | ||
| + | else: | ||
| + | blocks.fill(GRASS_PATH, | ||
| | | ||
| - | def Signal(): #Musik welche das Signal zur fertigstellung des Programms gibt. | + | |
| - | music.change_tempo_by(300) | + | music.change_tempo_by(300) |
| - | music.play_note(Note.C4, | + | music.play_note(Note.C4, |
| - | music.play_note(Note.D4, | + | music.play_note(Note.D4, |
| - | music.play_note(Note.E4, | + | music.play_note(Note.E4, |
| - | music.play_note(Note.F4, | + | music.play_note(Note.F4, |
| - | music.play_note(Note.B3, | + | music.play_note(Note.B3, |
| - | music.play_note(Note.C4, | + | music.play_note(Note.C4, |
| - | music.play_note(Note.D4, | + | music.play_note(Note.D4, |
| - | music.play_note(Note.E4, | + | music.play_note(Note.E4, |
| - | music.play_note(Note.C5, | + | music.play_note(Note.C5, |
| - | def Musik():# | + | |
| - | music.set_volume(255) | + | music.set_volume(255) |
| - | music.play_music(MusicDisc.PIGSTEP) | + | music.play_music(MusicDisc.PIGSTEP) |
| - | def BuildHouse(LAENGE, | + | |
| - | blocks.fill(PLANKS_BIRCH, | + | blocks.fill(PLANKS_BIRCH, |
| - | blocks.place(OAK_DOOR, | + | blocks.place(OAK_DOOR, |
| - | fenster_hoehe_start = 1 | + | fenster_hoehe_start = 1 |
| - | fenster_hoehe_end = 2 | + | fenster_hoehe_end = 2 |
| - | for h in range(fenster_hoehe_start, | + | for h in range(fenster_hoehe_start, |
| - | blocks.place(GLASS, | + | blocks.place(GLASS, |
| - | blocks.place(GLASS, | + | blocks.place(GLASS, |
| - | blocks.place(GLASS, | + | blocks.place(GLASS, |
| - | blocks.place(GLASS, | + | blocks.place(GLASS, |
| - | for h in range(fenster_hoehe_start, | + | for h in range(fenster_hoehe_start, |
| - | blocks.place(GLASS, | + | blocks.place(GLASS, |
| - | blocks.place(GLASS, | + | blocks.place(GLASS, |
| - | blocks.place(GLASS, | + | blocks.place(GLASS, |
| - | blocks.place(GLASS, | + | blocks.place(GLASS, |
| - | dach_hoehe = HOEHE // 2 + 2 | + | dach_hoehe = HOEHE // 2 + 2 |
| - | for i in range(dach_hoehe): | + | for i in range(dach_hoehe): |
| - | blocks.fill(PLANKS_BIRCH, | + | blocks.fill(PLANKS_BIRCH, |
| - | blocks.place(BED, | + | blocks.place(BED, |
| + | blocks.place(list[randint(0, | ||
| + | def ScatterBoneMeal(breite):# | ||
| + | agent.set_item(BONE_MEAL, | ||
| + | agent.set_assist(PLACE_ON_MOVE, | ||
| + | agent.set_assist(DESTROY_OBSTACLES, | ||
| + | agent.set_slot(1) | ||
| + | agent.teleport_to_player() | ||
| + | agent.move(FORWARD, | ||
| + | agent.move(RIGHT, | ||
| + | for i in range ((breite-BigHouseWidth)/ | ||
| + | agent.place(DOWN) | ||
| + | agent.move(LEFT, | ||
| + | agent.place(DOWN) | ||
| + | agent.move(FORWARD, | ||
| + | agent.move(RIGHT, | ||
| + | agent.teleport(pos(0, | ||
| - | def ScatterBoneMeal(breite): | + | |
| - | agent.set_item(BONE_MEAL, 64, 1) | + | x1 = player.position().get_value(Axis.X) |
| - | agent.set_assist(PLACE_ON_MOVE, | + | y1 = player.position().get_value(Axis.Y) |
| - | agent.set_assist(DESTROY_OBSTACLES, | + | z1 = player.position().get_value(Axis.Z) |
| - | agent.set_slot(1) | + | |
| - | agent.teleport_to_player() | + | |
| - | agent.move(FORWARD, | + | |
| - | agent.move(RIGHT, 3) | + | |
| - | for i in range ((breite-BigHouseWidth)/ | + | |
| - | agent.place(DOWN) | + | |
| - | agent.move(LEFT, 6) | + | |
| - | agent.place(DOWN) | + | |
| - | agent.move(FORWARD, | + | |
| - | agent.move(RIGHT, | + | |
| - | agent.teleport(pos(0, | + | |
| - | def Detection(laenge, | + | x = player.position().get_value(Axis.X) |
| - | x1 = player.position().get_value(Axis.X) | + | |
| - | | + | |
| - | | + | |
| - | x = player.position().get_value(Axis.X) | + | def on_forever(): |
| - | y = player.position().get_value(Axis.Y) | + | |
| - | z = player.position().get_value(Axis.Z) | + | |
| - | + | ||
| - | | + | |
| | | ||
| - | + | | |
| - | | + | y = player.position().get_value(Axis.Y) |
| - | y = player.position().get_value(Axis.Y) | + | z = player.position().get_value(Axis.Z) |
| - | z = player.position().get_value(Axis.Z) | + | |
| - | | + | |
| - | Musik() | + | Musik() |
| - | gameplay.time_set(12000) | + | gameplay.time_set(12000) |
| - | gameplay.title(mobs.target(NEAREST_PLAYER), | + | gameplay.title(mobs.target(NEAREST_PLAYER), |
| - | ScatterBoneMeal(breite) | + | ScatterBoneMeal(breite) |
| - | loops.forever(on_forever) | + | loops.forever(on_forever) |
| - | def Umrandung(laenge, | + | |
| - | Stadtmauer(laenge, | + | Stadtmauer(laenge, |
| - | Pfad(laenge, | + | Pfad(laenge, |
| - | Detection(laenge, | + | Detection(laenge, |
| | | ||
| - | def BigHouse(length, | + | |
| - | Xoffset=mauerlaenge/ | + | Xoffset=mauerlaenge/ |
| - | Zoffset=mauerbreite-width*2 | + | Zoffset=mauerbreite-width*2 |
| - | global BigHouseWidth | + | global BigHouseWidth |
| - | BigHouseWidth=width | + | BigHouseWidth=width |
| - | #Boden | + | #Boden |
| - | blocks.fill(WOOL, | + | blocks.fill(WOOL, |
| - | for h in range(height):# | + | for h in range(height):# |
| - | blocks.fill(PLANKS_SPRUCE, | + | blocks.fill(PLANKS_SPRUCE, |
| - | blocks.fill(PLANKS_SPRUCE, | + | blocks.fill(PLANKS_SPRUCE, |
| - | blocks.fill(MOSSY_STONE_BRICKS, | + | blocks.fill(MOSSY_STONE_BRICKS, |
| - | blocks.fill(MOSSY_STONE_BRICKS, | + | blocks.fill(MOSSY_STONE_BRICKS, |
| - | #Tür | + | #Tür |
| - | blocks.fill(AIR, | + | blocks.fill(AIR, |
| - | blocks.place(DARK_OAK_DOOR, | + | blocks.place(DARK_OAK_DOOR, |
| - | for h in range(1, 3):# | + | for h in range(1, 3):# |
| - | for x in range(7, length + 5, 4): | + | for x in range(7, length + 5, 4): |
| - | blocks.place(GLASS, | + | blocks.place(GLASS, |
| - | blocks.place(GLASS, | + | blocks.place(GLASS, |
| - | for z in range(12, width + 10, 4): | + | for z in range(12, width + 10, 4): |
| - | blocks.place(GLASS, | + | blocks.place(GLASS, |
| - | blocks.place(GLASS, | + | blocks.place(GLASS, |
| - | roof_height = height // 2 + 2 | + | roof_height = height // 2 + 2 |
| - | for i in range(roof_height):# | + | for i in range(roof_height):# |
| - | blocks.fill(MOSSY_STONE_BRICKS, | + | blocks.fill(MOSSY_STONE_BRICKS, |
| - | blocks.place(BED, | + | blocks.place(BED, |
| - | blocks.place(BED, | + | blocks.place(BED, |
| - | def Tree(x, y, z, | + | def Tree(x, y, z, |
| - | for i in range(4):# | + | for i in range(4):# |
| - | blocks.place(LOG_OAK, | + | blocks.place(LOG_OAK, |
| - | for dx in range(-2, 3):# | + | for dx in range(-2, 3):# |
| - | for dz in range(-2, 3): | + | for dz in range(-2, 3): |
| - | for dy in range(3, 6): | + | for dy in range(3, 6): |
| - | if abs(dx) + abs(dz) < 3: #Verhindert zu eckige Form | + | if abs(dx) + abs(dz) < 3: #Verhindert zu eckige Form |
| - | blocks.place(LEAVES_OAK, | + | blocks.place(LEAVES_OAK, |
| - | + | ||
| - | def Fire(Xoffset, | + | |
| - | blocks.place(CAMPFIRE, | + | |
| - | def Villagers(x,y,z): | + | |
| - | mobs.spawn(VILLAGER, pos(0+x, 0+y, 0+z)) | + | |
| - | def Loading(): | + | |
| - | def on_forever(): | + | mobs.spawn(VILLAGER, pos(0+x, 0+y, 0+z)) |
| - | if loading==1: | + | |
| - | gameplay.title(mobs.target(NEAREST_PLAYER), " | + | |
| - | gameplay.title(mobs.target(NEAREST_PLAYER), "" | + | |
| - | loops.pause(1000) | + | |
| - | else: | + | |
| - | loops.pause(infinity) | + | |
| - | loops.forever(on_forever) | + | |
| - | def Loaded():#Signal um das Wiederholen von " | + | |
| - | def on_forever(): | + | def on_forever(): |
| - | | + | |
| - | | + | gameplay.title(mobs.target(NEAREST_PLAYER), |
| - | loops.forever(on_forever) | + | gameplay.title(mobs.target(NEAREST_PLAYER), |
| + | loops.pause(1000) | ||
| + | else: | ||
| + | loops.pause(infinity) | ||
| + | loops.forever(on_forever) | ||
| - | def fin():#End Nachricht | + | |
| - | for i in range (2): | + | def on_forever(): |
| - | | + | |
| - | | + | |
| - | loops.pause(1500) | + | loops.forever(on_forever) |
| - | def BuildFountain(x, y, z, start_x, start_y, start_z):#Doppelbrunnen | + | |
| - | | + | for i in range (2): |
| - | | + | |
| - | | + | |
| - | blocks.fill(TORCH, pos(start_x, | + | loops.pause(1500) |
| - | | + | |
| - | center_x = start_x + x/2-1 | + | |
| - | center_z = start_z + z/2-1 | + | |
| - | blocks.fill(STONE_BRICKS, | + | |
| - | | + | |
| - | def Ausführen():# | + | |
| - | Loading() | + | # Unterer Brunnen |
| - | Umrandung(40,70) | + | blocks.fill(STONE_BRICKS, pos(start_x, start_y, start_z),pos(start_x + x - 1, start_y, start_z + z - 1), FillOperation.REPLACE) |
| - | BigHouse(12,12,5,10,0,30)#Xoffset und Zoffset sind hier nur Platzhalter da sie in Der funktion neu Definiert werden. | + | |
| - | | + | |
| - | Tree(10,-1,10,22,0,50) | + | |
| - | Tree(10,0, | + | |
| - | Tree(10,-1,10, | + | |
| - | Tree(10, | + | |
| - | Tree(10,0,10,17,0,-3) | + | |
| - | Tree(10,0, | + | |
| - | Tree(10,0,10,-2,0,25) | + | |
| - | Tree(10,0,10,6,0,20) | + | |
| - | Tree(10,0, | + | |
| - | Tree(10,0,10,-4,0,45) | + | |
| - | Tree(10,0, | + | |
| - | BuildHouse(5, 4, 6, 1,0, | + | |
| - | BuildHouse(5, 7, 4, 5,0,-2) | + | |
| - | BuildHouse(5, 5, 6, 6,0,30) | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | Villagers(10,0,10)# | + | |
| - | Villagers(31,0,20) | + | |
| - | Villagers(22,0,6) | + | |
| - | Villagers(16,0,35) | + | |
| - | Fire(34,0, | + | |
| - | Fire(34,0,40) | + | |
| - | Fire(17, | + | |
| - | Loaded()# | + | |
| - | Signal()# | + | |
| - | fin()# | + | |
| - | player.on_chat(" | + | |
| + | def Ausführen():# | ||
| + | Loading() | ||
| + | Umrandung(40, | ||
| + | BigHouse(12, | ||
| + | Tree(10, | ||
| + | Tree(10, | ||
| + | Tree(10, | ||
| + | Tree(10, | ||
| + | Tree(10, | ||
| + | Tree(10, | ||
| + | Tree(10, | ||
| + | Tree(10, | ||
| + | Tree(10, | ||
| + | Tree(10, | ||
| + | Tree(10, | ||
| + | Tree(10, | ||
| + | BuildHouse(5, | ||
| + | BuildHouse(5, | ||
| + | BuildHouse(5, | ||
| + | BuildHouse(5, | ||
| + | BuildHouse(5, | ||
| + | BuildFountain(5, | ||
| + | Villagers(10, | ||
| + | Villagers(31, | ||
| + | Villagers(22, | ||
| + | Villagers(16, | ||
| + | Fire(34, | ||
| + | Fire(34, | ||
| + | Fire(17, | ||
| + | Loaded()# | ||
| + | Signal()# | ||
| + | fin()# | ||
| + | player.on_chat(" | ||
| + | </ | ||