Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
gf2:projekte:2024:minecraft:2d1gruppe5 [2025/03/31 14:33] braeggerdgf2:projekte:2024:minecraft:2d1gruppe5 [2025/05/18 13:43] (aktuell) glocknerl
Zeile 1: Zeile 1:
-Gruppe 5+Thornveil – die Stadt des Blütenstaubes 
 + 
 +Gruppe 5 
  
 Projekt Idee: Projekt Idee:
Zeile 29: Zeile 31:
  
 Anleitung:  Anleitung: 
-Es ist wichtig, dass nach dem Ausführen des Codes gewartet wird, bis die Musik ertöntbis 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. 
 +In diese Welt muss per "Erweiterungen" die Erweiterung "make-code-minecraft-music" eingefügt werden. Zu finden im Code Editor-"Erweiterungen" 
 +Um das Dorf erscheinen zu lassen muss das Word "Blütenstaub" in den Chat geschrieben werden. 
 +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. 
 + 
 +<code python> 
 +  mauerlaenge=0#Platzhalter nummer, wird in der Funktion "Stadtmauer" Definiert.#Leo 
 +  mauerbreite=0#Platzhalter nummer, wird in der Funktion "Stadtmauer" Definiert 
 +  BigHouseWidth=0#Platzhalter nummer, wird in der Funktion "ScatterBoneMeal" Definiert 
 +  loading=1   #Fake Boolean um mit 1 und 0 Wahr und Falsch darzustellen, wird in "Loading" verwendet. 
 +  list=[BARREL,CRAFTING_TABLE,STONECUTTER] 
 +  def Stadtmauer(laenge,breite):#Generation der Stadtmauer welche das Dorf umrandet#Leo 
 +      global mauerlaenge 
 +      mauerlaenge=laenge 
 +      global mauerbreite 
 +      mauerbreite=breite 
 +      blocks.fill(STONE_BRICKS,pos(0,0,0), pos(0+laenge,6,0+breite),FillOperation.HOLLOW) 
 +      blocks.fill(AIR,pos(1,0,1), pos(0+laenge-1,7,0+breite-1)) 
 +      blocks.fill(STONE_BRICKS,pos(3,0,0), pos(0+laenge-3,7,0)) 
 +      if laenge%2==0:#Tür der Stadtmauer, immer in der Mitte durch Modulo. 
 +          blocks.fill(AIR, pos(0+laenge/2-1, 0, 0), pos(0+laenge/2+1, 3, 0), FillOperation.REPLACE) 
 +      else: 
 +          blocks.fill(AIR, pos(0+laenge/2, 0, 0), pos(0+laenge/2+1, 2, 0), FillOperation.REPLACE) 
 +  def Pfad(laenge,breite):#Pfad in der mitte des Dorfes, immer in der Mitte durch Modulo.#Leo 
 +      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) 
 +      else: 
 +          blocks.fill(GRASS_PATH, pos(0+laenge/2-0.5, 0-1, 1), pos(0+laenge/2+0.5, -1, 0+breite), FillOperation.REPLACE) 
 +         
 +  def Signal(): #Musik welche das Signal zur fertigstellung des Programms gibt.#Leo 
 +      music.change_tempo_by(300) 
 +      music.play_note(Note.C40) 
 +      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, 0) 
 +      music.play_note(Note.E4, 0) 
 +      music.play_note(Note.C5, 0,1000) 
 + 
 +  def Musik():#Musik die spielt sobald der Spieler ins Dorf eintitt.#Leo 
 +      music.set_volume(255) 
 +      music.play_music(MusicDisc.PIGSTEP) 
 + 
 +  def BuildHouse(LAENGE,BREITE,HOEHE,Xoffset,Yoffset,Zoffset):#Dominique#Leo#Victoria#Julien 
 +      blocks.fill(PLANKS_BIRCH, pos(5+Xoffset,-1+Yoffset, 10+Zoffset), pos(5+Xoffset+ LAENGE, 0+Yoffset+HOEHE, 10+BREITE+Zoffset), FillOperation.HOLLOW)         
 +      blocks.place(OAK_DOOR, pos(7+Xoffset, 0+Yoffset, 10+Zoffset)) 
 +      fenster_hoehe_start = 1 
 +      fenster_hoehe_end = 2 
 +      for h in range(fenster_hoehe_start, fenster_hoehe_end + 1):  # Höhe von 1 bis 
 +              blocks.place(GLASS, pos(6+Xoffset, h+Yoffset, 10+Zoffset))  # Fenster links vorne 
 +              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 
 +              blocks.place(GLASS, pos(9+Xoffset, h+Yoffset, 10 + BREITE+Zoffset))  # Fenster rechts hinten 
 +      for h in range(fenster_hoehe_start, fenster_hoehe_end + 1):  # Höhe von 1 bis 2 
 +              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.place(GLASS, pos(5+Xoffset+LAENGE,h+Yoffset, 12+Zoffset))  # Fenster rechts außen 
 +              blocks.place(GLASS, pos(5+Xoffset+LAENGE, h+Yoffset, 14+Zoffset))  # Fenster rechts außen 
 +              dach_hoehe = HOEHE // 2 + 2 
 +      for i in range(dach_hoehe): 
 +              blocks.fill(PLANKS_BIRCH, pos(5+Xoffset + i, HOEHE + i+Yoffset, 10+Zoffset), pos(5+Xoffset + LAENGE - i, HOEHE + i+Yoffset, 10 + BREITE+Zoffset), FillOperation.REPLACE)    
 +      blocks.place(BED, pos(1+Xoffset+LAENGE, 0+Yoffset, 8+Zoffset+BREITE)) 
 +      blocks.place(list[randint(0,2)],pos(1+Xoffset+LAENGE+2, 0+Yoffset, 9+Zoffset+BREITE)) 
 +  def ScatterBoneMeal(breite):#Victoria #Leo 
 +      agent.set_item(BONE_MEAL, 64, 1) 
 +      agent.set_assist(PLACE_ON_MOVE, False) 
 +      agent.set_assist(DESTROY_OBSTACLES, False) 
 +      agent.set_slot(1) 
 +      agent.teleport_to_player() 
 +      agent.move(FORWARD, 1) 
 +      agent.move(RIGHT, 3) 
 +      for i in range ((breite-BigHouseWidth)/3-3): 
 +          agent.place(DOWN) 
 +          agent.move(LEFT, 6) 
 +          agent.place(DOWN) 
 +          agent.move(FORWARD, 3) 
 +          agent.move(RIGHT, 6) 
 +      agent.teleport(pos(0, 60, 0), SOUTH) 
 + 
 +  def Detection(laenge,breite):#Leo 
 +      x1 = player.position().get_value(Axis.X) 
 +      y1 = player.position().get_value(Axis.Y) 
 +      z1 = player.position().get_value(Axis.Z) 
 + 
 +      x = player.position().get_value(Axis.X) 
 +      y = player.position().get_value(Axis.Y) 
 +      z = player.position().get_value(Axis.Z) 
 + 
 +def on_forever(): 
 +     
 +          x = player.position().get_value(Axis.X) 
 +          y = player.position().get_value(Axis.Y) 
 +          z = player.position().get_value(Axis.Z) 
 + 
 +          if(x-laenge/2-1<x1<x-laenge/2+1) and (-70<y<5) and (z==z1): 
 +              Musik() 
 +              gameplay.time_set(12000) 
 +              gameplay.title(mobs.target(NEAREST_PLAYER), "Thornveil", "Die Stadt des Blütenstaubes"
 +              ScatterBoneMeal(breite) 
 +      loops.forever(on_forever) 
 + 
 +  def Umrandung(laenge,breite):#Leo 
 +      Stadtmauer(laenge, breite) 
 +      Pfad(laenge, breite) 
 +      Detection(laenge, breite) 
 +     
 +  def BigHouse(length, width, height, Xoffset, Yoffset, Zoffset):#Julien#Victoria#Leo#Dominique 
 +      Xoffset=mauerlaenge/2-length 
 +      Zoffset=mauerbreite-width*2 
 +      global BigHouseWidth 
 +      BigHouseWidth=width 
 +      #Boden 
 +      blocks.fill(WOOL, pos(5+Xoffset, -1+Yoffset, 10+Zoffset), pos(5 + length + Xoffset, -1+Yoffset, 10 + width+Zoffset), FillOperation.REPLACE) 
 +      for h in range(height):#Wände 
 +          blocks.fill(PLANKS_SPRUCE, pos(5+Xoffset, h+Yoffset, 10+Zoffset), pos(5 + length+Xoffset, h+Yoffset, 10+Zoffset), FillOperation.REPLACE) 
 +          blocks.fill(PLANKS_SPRUCE, pos(5+Xoffset, h+Yoffset, 10 + width+Zoffset), pos(5 + length+Xoffset, h+Yoffset, 10 + width+Zoffset), FillOperation.REPLACE) 
 +          blocks.fill(MOSSY_STONE_BRICKS, pos(5+Xoffset, h+Yoffset, 10+Zoffset), pos(5+Xoffset, h+Yoffset, 10 + width+Zoffset), FillOperation.REPLACE) 
 +          blocks.fill(MOSSY_STONE_BRICKS, pos(5 + length+Xoffset, h+Yoffset, 10+Zoffset), pos(5 + length+Xoffset, h+Yoffset, 10 + width+Zoffset), FillOperation.REPLACE) 
 +      #Tür 
 +      blocks.fill(AIR, pos(9+Xoffset, 0+Yoffset, 10+Zoffset), pos(9+Xoffset, 1+Yoffset, 10+Zoffset), FillOperation.REPLACE) 
 +      blocks.place(DARK_OAK_DOOR, pos(9+Xoffset, 0+Yoffset, 10+Zoffset)) 
 +      for h in range(1, 3):#Fenster 
 +          for x in range(7, length + 5, 4): 
 +              blocks.place(GLASS, pos(x+Xoffset, h+Yoffset, 10+Zoffset)) 
 +              blocks.place(GLASS, pos(x+Xoffset, h+Yoffset, 10 + width+Zoffset)) 
 +          for z in range(12, width + 10, 4): 
 +              blocks.place(GLASS, pos(5+Xoffset, h+Yoffset, z+Zoffset)) 
 +              blocks.place(GLASS, pos(5 + length+Xoffset, h+Yoffset, z+Zoffset)) 
 +      roof_height = height // 2 + 2 
 +      for i in range(roof_height):#Dach 
 +          blocks.fill(MOSSY_STONE_BRICKS, pos(4 + i+Xoffset, height + i+Yoffset, 9+Zoffset), pos(6 + length - i+Xoffset, height + i+Yoffset, 11 + width+Zoffset), FillOperation.REPLACE) 
 +      blocks.place(BED, pos(Xoffset+length/2, 0+Yoffset, 0+width*2+Zoffset-3)) 
 +      blocks.place(BED, pos(Xoffset+length/2+1, 0+Yoffset, 0+width*2+Zoffset-3)) 
 +  def Tree(x, y, z,Xoffset,Yoffset,Zoffset):#Julien#Victoria 
 +      for i in range(4):#Stamm bauen 
 +          blocks.place(LOG_OAK, pos(x+Xoffset,y + i+Yoffset, z+Zoffset)) 
 +      for dx in range(-2, 3):#Blätterkrone bauen 
 +          for dz in range(-2, 3): 
 +              for dy in range(3, 6): 
 +                  if abs(dx) + abs(dz) < 3: #Verhindert zu eckige Form 
 +                      blocks.place(LEAVES_OAK, pos(x + dx+Xoffset, y + dy+Yoffset, z + dz+Zoffset)) 
 + 
 +  def Fire(Xoffset,Yoffset,Zoffset):#Leo#Dominique 
 +      blocks.place(CAMPFIRE, pos(0+Xoffset,0+Yoffset, 0+Zoffset)) 
 + 
 +  def Villagers(x,y,z):#Leo#Dominique 
 +      mobs.spawn(VILLAGER, pos(0+x, 0+y, 0+z)) 
 + 
 +  def Loading():“Leo 
 +      def on_forever(): 
 +          if loading==1: 
 +              gameplay.title(mobs.target(NEAREST_PLAYER), "Laden...", "Bitte nicht bewegen"
 +              gameplay.title(mobs.target(NEAREST_PLAYER), "", "Bitte nicht bewegen"
 +              loops.pause(1000) 
 +          else:    
 +              loops.pause(infinity) 
 +      loops.forever(on_forever) 
 + 
 +  def Loaded():#Signal um das Wiederholen von "Laden" zu verhindern.“Leo 
 +      def on_forever(): 
 +          global loading 
 +          loading=2 
 +      loops.forever(on_forever) 
 + 
 +  def fin():#End Nachricht#Leo 
 +      for i in range (2): 
 +          gameplay.title(mobs.target(NEAREST_PLAYER), "Geladen", "Viel Spass"
 +          gameplay.title(mobs.target(NEAREST_PLAYER), "", "Viel Spass"
 +          loops.pause(1500) 
 + 
 +  def BuildFountain(x, y, z, start_x, start_y, start_z):#Doppelbrunnen#Victoria#Leo#Julien 
 +      # Unterer Brunnen 
 +      blocks.fill(STONE_BRICKS, pos(start_x, start_y, start_z),pos(start_x + x - 1, start_y, start_z + z - 1), FillOperation.REPLACE) 
 +      blocks.fill(AIR, pos(start_x + 1, start_y, start_z + 1),pos(start_x + x - 2, start_y, start_z + z - 2), FillOperation.REPLACE) 
 +      blocks.fill(TORCH, pos(start_x, start_y + 1, start_z), pos(start_x + x - 1, start_y + 1, start_z + z - 1), FillOperation.REPLACE) 
 +      blocks.fill(WATER, pos(start_x + 1, start_y, start_z + 1),pos(start_x + x - 2, start_y, start_z + z - 2), FillOperation.REPLACE) 
 +      center_x = start_x + x/2-1 
 +      center_z = start_z + z/2-1 
 +      blocks.fill(STONE_BRICKS, pos(center_x, start_y, center_z),pos(center_x, start_y + y, center_z), FillOperation.REPLACE) 
 +      blocks.place(WATER, pos(center_x, start_y+y+1, center_z)) 
 + 
 +  def Ausführen():#Ausführung des Codes bei Chat eingabe.#Leo 
 +      Loading() 
 +      Umrandung(40,70) 
 +      BigHouse(12,12,5,10,0,30)#Xoffset und Zoffset sind hier nur Platzhalter da sie in Der funktion neu Definiert werden. 
 +      Tree(10,0,10,18,0,25)#Baum Kopien mit verschiedenen Positionen. 
 +      Tree(10,-1,10,22,0,50) 
 +      Tree(10,0,10,25,0,10) 
 +      Tree(10,-1,10,5,0,10) 
 +      Tree(10,0,10,-1,0,-5) 
 +      Tree(10,0,10,17,0,-3) 
 +      Tree(10,0,10,0,0,18) 
 +      Tree(10,0,10,-2,0,25) 
 +      Tree(10,0,10,6,0,20) 
 +      Tree(10,0,10,27,0,40) 
 +      Tree(10,0,10,-4,0,45) 
 +      Tree(10,0,10,4,0,39) 
 +      BuildHouse(5, 4, 6, 1,0,10)#Häuser kopien mit verschiedenen Positionen. 
 +      BuildHouse(5, 7, 4, 5,0,-2) 
 +      BuildHouse(5, 5, 6, 6,0,30) 
 +      BuildHouse(5, 4, 5, 20,0,5) 
 +      BuildHouse(5, 4, 4, 25,0,16) 
 +      BuildFountain(5,4,10,27,0,42)#Brunnen 
 +      Villagers(10,0,10)#Dorfbewohner für etwas Lebendigkeit 
 +      Villagers(31,0,20) 
 +      Villagers(22,0,6) 
 +      Villagers(16,0,35) 
 +      Fire(34,0,7)#Lagerfeuer 
 +      Fire(34,0,40) 
 +      Fire(17,0,33) 
 +      Loaded()#Text um dem Spieler anzuzeigen das der Code fertig generiert hat. 
 +      Signal()#Musik weann code ausgeführt 
 +      fin()#Signal den Text zu "Geladen" zu ändern. 
 +  player.on_chat("Blütenstaub", Ausführen) 
 +</code>
  • gf2/projekte/2024/minecraft/2d1gruppe5.1743424426.txt.gz
  • Zuletzt geändert: 2025/03/31 14:33
  • von braeggerd