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:48] – 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: | ||
| - | mauerlaenge=0# | ||
| - | mauerbreite=0# | ||
| - | BigHouseWidth=0# | ||
| - | loading=1 | ||
| - | def Stadtmauer(laenge, | ||
| - | global mauerlaenge | ||
| - | mauerlaenge=laenge | ||
| - | global mauerbreite | ||
| - | mauerbreite=breite | ||
| - | blocks.fill(STONE_BRICKS, | ||
| - | blocks.fill(AIR, | ||
| - | blocks.fill(STONE_BRICKS, | ||
| - | if laenge%2==0:# | ||
| - | 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.play_note(Note.C4, | ||
| - | music.play_note(Note.D4, | ||
| - | music.play_note(Note.E4, | ||
| - | music.play_note(Note.F4, | ||
| - | music.play_note(Note.B3, | ||
| - | music.play_note(Note.C4, | ||
| - | music.play_note(Note.D4, | ||
| - | music.play_note(Note.E4, | ||
| - | music.play_note(Note.C5, | ||
| - | def Musik():# | + | Eine Flache Welt muss erstellt werden, in dieser Welt kann unabhängig von der Spielerposition der Code ausgeführt werden. |
| - | music.set_volume(255) | + | In diese Welt muss per " |
| - | music.play_music(MusicDisc.PIGSTEP) | + | Um das Dorf erscheinen zu lassen muss das Word " |
| + | Es ist wichtig, dass nach dem Ausführen des Codes gewartet und Stillgestanden wird, bis der Befehl gegeben wird wieder Bewegen zu dürfen! | ||
| + | Damit wilkommen in Thornveil der Stadt des Blütenstaubes und viel Spass. | ||
| - | def BuildHouse(LAENGE,BREITE,HOEHE,Xoffset,Yoffset,Zoffset): | + | <code python> |
| - | blocks.fill(PLANKS_BIRCH, pos(5+Xoffset,-1+Yoffset, 10+Zoffset), pos(5+Xoffset+ LAENGE, 0+Yoffset+HOEHE, | + | mauerlaenge=0# |
| - | blocks.place(OAK_DOOR, pos(7+Xoffset, 0+Yoffset, 10+Zoffset)) | + | mauerbreite=0# |
| - | fenster_hoehe_start = 1 | + | BigHouseWidth=0# |
| - | fenster_hoehe_end = 2 | + | loading=1 |
| - | for h in range(fenster_hoehe_start, fenster_hoehe_end | + | list=[BARREL,CRAFTING_TABLE, |
| - | blocks.place(GLASS, pos(6+Xoffset, h+Yoffset, 10+Zoffset)) # Fenster links vorne | + | def Stadtmauer(laenge, |
| - | blocks.place(GLASS, pos(9+Xoffset, h+Yoffset, 10+Zoffset)) # Fenster rechts vorne | + | |
| - | blocks.place(GLASS, pos(6+Xoffset, h+Yoffset, 10 + BREITE+Zoffset)) # Fenster links hinten | + | mauerlaenge=laenge |
| - | blocks.place(GLASS, pos(9+Xoffset, h+Yoffset, 10 + BREITE+Zoffset)) # Fenster rechts hinten | + | global mauerbreite |
| - | for h in range(fenster_hoehe_start, fenster_hoehe_end + 1): # Höhe von 1 bis 2 | + | mauerbreite=breite |
| - | blocks.place(GLASS, pos(5+Xoffset, h+Yoffset, 12+Zoffset)) # Fenster links außen | + | |
| - | blocks.place(GLASS, pos(5+Xoffset, h+Yoffset, 14+Zoffset)) # Fenster links außen | + | blocks.fill(AIR,pos(1,0,1), pos(0+laenge-1,7,0+breite-1)) |
| - | blocks.place(GLASS, pos(5+Xoffset+LAENGE,h+Yoffset, 12+Zoffset)) # Fenster rechts außen | + | blocks.fill(STONE_BRICKS,pos(3,0,0), pos(0+laenge-3,7,0)) |
| - | blocks.place(GLASS, pos(5+Xoffset+LAENGE, h+Yoffset, 14+Zoffset)) # Fenster rechts außen | + | if laenge%2==0: |
| - | | + | blocks.fill(AIR, pos(0+laenge/2-1, 0, 0), pos(0+laenge/2+1, 3, 0), FillOperation.REPLACE) |
| - | for i in range(dach_hoehe): | + | |
| - | | + | |
| - | | + | def Pfad(laenge,breite):#Pfad in der mitte des Dorfes, immer in der Mitte durch Modulo.# |
| + | if laenge%2==0: | ||
| + | blocks.fill(GRASS_PATH, pos(0+laenge/2-1, -1, 1), pos(0+laenge/2+1, -1, 0+breite), FillOperation.REPLACE) | ||
| + | | ||
| + | | ||
| + | |||
| + | def Signal(): #Musik welche das Signal zur fertigstellung des Programms gibt.#Leo | ||
| + | | ||
| + | | ||
| + | music.play_note(Note.D4, 0) | ||
| + | music.play_note(Note.E4, 0) | ||
| + | music.play_note(Note.F4, 0) | ||
| + | music.play_note(Note.B3, 0) | ||
| + | music.play_note(Note.C4, 0) | ||
| + | music.play_note(Note.D4, | ||
| + | music.play_note(Note.E4, 0) | ||
| + | music.play_note(Note.C5, 0,1000) | ||
| - | def ScatterBoneMeal(breite): | + | |
| - | agent.set_item(BONE_MEAL, | + | music.set_volume(255) |
| - | agent.set_assist(PLACE_ON_MOVE, | + | music.play_music(MusicDisc.PIGSTEP) |
| - | 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 Detection(laenge,breite): | + | |
| - | | + | |
| - | y1 = player.position().get_value(Axis.Y) | + | blocks.place(OAK_DOOR, |
| - | | + | fenster_hoehe_start |
| + | fenster_hoehe_end = 2 | ||
| + | for h in range(fenster_hoehe_start, | ||
| + | blocks.place(GLASS, pos(6+Xoffset, | ||
| + | blocks.place(GLASS, pos(9+Xoffset, | ||
| + | blocks.place(GLASS, | ||
| + | | ||
| + | for h in range(fenster_hoehe_start, | ||
| + | blocks.place(GLASS, pos(5+Xoffset, | ||
| + | blocks.place(GLASS, | ||
| + | | ||
| + | blocks.place(GLASS, | ||
| + | dach_hoehe | ||
| + | for i in range(dach_hoehe): | ||
| + | blocks.fill(PLANKS_BIRCH, | ||
| + | blocks.place(BED, pos(1+Xoffset+LAENGE, | ||
| + | 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, | ||
| - | x = player.position().get_value(Axis.X) | + | def Detection(laenge, |
| - | | + | x1 = player.position().get_value(Axis.X) |
| - | | + | |
| + | | ||
| - | | + | x = player.position().get_value(Axis.X) |
| - | | + | y = player.position().get_value(Axis.Y) |
| + | z = player.position().get_value(Axis.Z) | ||
| + | |||
| + | def on_forever(): | ||
| | | ||
| - | | + | |
| - | 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, | + | blocks.place(CAMPFIRE, |
| - | def Villagers(x, | + | |
| - | mobs.spawn(VILLAGER, | + | mobs.spawn(VILLAGER, |
| - | def Loading(): | + | |
| - | def on_forever(): | + | def on_forever(): |
| - | if loading==1: | + | if loading==1: |
| - | gameplay.title(mobs.target(NEAREST_PLAYER), | + | gameplay.title(mobs.target(NEAREST_PLAYER), |
| - | gameplay.title(mobs.target(NEAREST_PLAYER), | + | gameplay.title(mobs.target(NEAREST_PLAYER), |
| - | loops.pause(1000) | + | loops.pause(1000) |
| - | else: | + | else: |
| - | loops.pause(infinity) | + | loops.pause(infinity) |
| - | loops.forever(on_forever) | + | loops.forever(on_forever) |
| - | def Loaded():# | + | |
| - | def on_forever(): | + | def on_forever(): |
| - | global loading | + | global loading |
| - | loading=2 | + | loading=2 |
| - | loops.forever(on_forever) | + | loops.forever(on_forever) |
| - | def fin():#End Nachricht | + | |
| - | for i in range (2): | + | for i in range (2): |
| - | gameplay.title(mobs.target(NEAREST_PLAYER), | + | gameplay.title(mobs.target(NEAREST_PLAYER), |
| - | gameplay.title(mobs.target(NEAREST_PLAYER), | + | gameplay.title(mobs.target(NEAREST_PLAYER), |
| - | loops.pause(1500) | + | loops.pause(1500) |
| - | def BuildFountain(x, | + | |
| - | # Unterer Brunnen | + | # Unterer Brunnen |
| - | blocks.fill(STONE_BRICKS, | + | blocks.fill(STONE_BRICKS, |
| - | blocks.fill(AIR, | + | blocks.fill(AIR, |
| - | blocks.fill(TORCH, | + | blocks.fill(TORCH, |
| - | blocks.fill(WATER, | + | blocks.fill(WATER, |
| - | center_x = start_x + x/2-1 | + | center_x = start_x + x/2-1 |
| - | center_z = start_z + z/2-1 | + | center_z = start_z + z/2-1 |
| - | blocks.fill(STONE_BRICKS, | + | blocks.fill(STONE_BRICKS, |
| - | blocks.place(WATER, | + | blocks.place(WATER, |
| - | def Ausführen():# | + | |
| - | Loading() | + | Loading() |
| - | Umrandung(40, | + | Umrandung(40, |
| - | BigHouse(12, | + | 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, |
| - | 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, | + | BuildHouse(5, |
| - | BuildHouse(5, | + | BuildHouse(5, |
| - | BuildHouse(5, | + | BuildHouse(5, |
| - | BuildFountain(5, | + | BuildFountain(5, |
| - | Villagers(10, | + | Villagers(10, |
| - | Villagers(31, | + | Villagers(31, |
| - | Villagers(22, | + | Villagers(22, |
| - | Villagers(16, | + | Villagers(16, |
| - | Fire(34, | + | Fire(34, |
| - | Fire(34, | + | Fire(34, |
| - | Fire(17, | + | Fire(17, |
| - | Loaded()# | + | Loaded()# |
| - | Signal()# | + | Signal()# |
| - | fin()# | + | fin()# |
| - | player.on_chat(" | + | player.on_chat(" |
| + | </ | ||