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/04/06 16:50] glocknerlgf2: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.
 +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.C4, 0)
 +      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 2
 +              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.1743951000.txt.gz
  • Zuletzt geändert: 2025/04/06 16:50
  • von glocknerl