archiv:gf:gf2020_2021:minecraft:projekt:nielsnoelsava:hochhaus

Haupseite von Niels, Noel & Sava

Das Code-Verzeichnis für das Hochhaus

Auf dieser Unterseite findet man alle Code für die Programmierung des Hochhauses. Dieses ist das aufwendigste Element in unserem Minecraft-Projekt und nahm am meisten Zeit in Anspruch. Das Haus haben wir in 4.Hauptschritten programmiert. Der Code wurde so erstellt, dass das Haus von einem bestimmten Punkt des Spielers erstellt wird. (Das Grundgerüst wurde programmiert, die Innendekoration und Möbel wurden nicht programmiert.)

Die einzelnen Code sind in den jeweiligen Abschnitten zu finden. Falls etwas unverständlich ist, kann man auch noch die Schritte anschauen, die schriftlich dokumentiert wurden, die erklären, was wir während dem Programmieren gemacht haben.

Der Code für das Haus wurde zunächst so programmiert, dass das Gebäude von dem Spieler/Programmierer aus erzeugt wurde. Dies führte zum Problem das wenn sich der Spieler beim programmieren bewegt, das Haus verschoben gebaut wird und der Code eigentlich auf einen Punkt fokussiert ist und nicht definiert werden kann. Mit Hilfe von Herr Lehmann konnten wir das Problem lösen, indem wir den Spieler in den Code einbauen und ihn an eine Gewisse Stelle teleportieren kann, also bestimmt man einen Punkt wo das Haus gebaut wird.

1.1 Der Code

def boden():
    blocks.fill (PINK_CONCRETE, pos (1, 0, 1), pos (10, 0, 10))
    blocks.fill (PLANKS_DARK_OAK, pos (2,0,2), pos (9, 0, 9))
    
def fenster():
    blocks.fill (MAGENTA_STAINED_GLASS_PANE, pos (1, 1, 1), pos (10, 3, 10))
    blocks.fill (AIR, pos (2,1,2), pos (9, 3, 9))

def decke():
    blocks.fill (PINK_CONCRETE, pos (1, 4, 1), pos (10, 4, 10))

def gehweg():
    blocks.fill (QUARTZ_SLAB, pos (-1, 0, -1), pos (12, 0, 12))

def türe():
    blocks.place (DARK_OAK_DOOR, pos (5, 1, 1))
    blocks.place(blocks.block_with_data(DARK_OAK_DOOR, 4), pos (5, 1, 1))

    blocks.place(blocks.block_with_data(DARK_OAK_DOOR,4), pos (6, 1, 1))

def umrandung():
    blocks.fill (PINK_CONCRETE, pos (4, 3, 1), pos (7, 0, 1))
    
def baum():
    blocks.place (DARK_OAK_FENCE, pos (4, 0, 0))
    blocks.place (DARK_OAK_FENCE, pos (7, 0, 0))

    blocks.place (LEAVES_JUNGLE, pos (4, 1, 0))
    blocks.place (LEAVES_JUNGLE, pos (7, 1, 0))

    blocks.place (LEAVES_JUNGLE, pos (4, 2, 0))
    blocks.place (LEAVES_JUNGLE, pos (7, 2, 0))

def vordach():
    blocks.place (BLOCK_OF_QUARTZ, pos (5, 3, 0))
    blocks.place (BLOCK_OF_QUARTZ, pos (6, 3, 0))

    blocks.place (QUARTZ_SLAB, pos (4, 3, 0))
    blocks.place (QUARTZ_SLAB, pos (7, 3, 0))

    blocks.place (QUARTZ_SLAB, pos (5, 3, -1))
    blocks.place (QUARTZ_SLAB, pos (6, 3, -1))

    
def eingang():
    gehweg()
    boden()
    fenster()
    decke()
    umrandung()
    türe()
    baum()
    vordach()

1.2 Schritte während dem programmieren

1. Als erstes haben wir den Boden programmiert.

2. Dann wurde das Glas hinzugefügt.

3. Der dritte Schritt war dann, das Dach auf die bisherigen Elemente zu programmieren.

4. Der vierte Schritt war, den Gehweg drumherum zu programmieren.

5. Der fünfte Schritt war, die Türen und die Bäume einzuprogrammieren

2.1 Code für den ersten Stock


def etagenboden():
    blocks.fill (PINK_CONCRETE, pos (1, 5, 1), pos (10, 5, 10))
    blocks.fill (PLANKS_DARK_OAK, pos (2,5,2), pos (9, 5, 9))

def etagenfenster():
    blocks.fill (MAGENTA_STAINED_GLASS_PANE, pos (1, 6, 1), pos (10, 8, 10))
    blocks.fill (AIR, pos (2,6,2), pos (9, 8, 9))

def etagendecke():
     blocks.fill (PINK_CONCRETE, pos (1, 9, 1), pos (10, 9, 10))

def etage1():
    etagenboden()
    etagenfenster()
    etagendecke()

2.2 Code für den zweiten Stock

def etagendecke2():
    blocks.fill (PINK_CONCRETE, pos (1, 14, 1), pos (10, 14, 10))

def etagenfenster2():
    blocks.fill (MAGENTA_STAINED_GLASS_PANE, pos (1, 11, 1), pos (10, 13, 10))
    blocks.fill (AIR, pos (2,11,2), pos (9, 13, 9))

def etagenboden2():
    blocks.fill (PINK_CONCRETE, pos (1, 10, 1), pos (10, 10, 10))
    blocks.fill (PLANKS_DARK_OAK, pos (2,10,2), pos (9, 10, 9))

def etage2():
    etagendecke2()
    etagenfenster2()
    etagenboden2()

2.3 Schritte während dem programmieren

0. Wir haben für die Etagen, das Grundgerüst des Erdgeschosses übernommen und dann alles (x,y+5,z) gerechnet, damit es genau auf das Erdgeschoss programmiert wird.

1. Als erstes haben wir dann den Etagenboden programmiert.

2. Als zweites haben wir die Etagenfenster hinzugefügt

3. als drittes haben wir dann die Decke hinzugefügt.

4. Für den zweiten Stock haben wir den Code von der ersten Etage übernommen, dafür aber dann den y-Wert +5 genommen.

3.1 Der Code

def dachboden():
    blocks.fill (PINK_CONCRETE, pos (1, 15, 1), pos (10, 15, 10))
    blocks.fill (PLANKS_DARK_OAK, pos (2,15,2), pos (9, 15, 9))

def geländer():
    blocks.fill (MAGENTA_STAINED_GLASS_PANE, pos (1, 16, 1), pos (10, 16, 10))
    blocks.fill (AIR, pos (2,16,2), pos (9, 16, 9))

def dachbaum():
    blocks.place (DARK_OAK_FENCE, pos (2, 16, 2))
    blocks.place (DARK_OAK_FENCE, pos (9, 16, 2))
    blocks.place (DARK_OAK_FENCE, pos (2, 16, 9))
    blocks.place (DARK_OAK_FENCE, pos (9, 16, 9))

    blocks.place (LEAVES_JUNGLE, pos (2, 17, 2))
    blocks.place (LEAVES_JUNGLE, pos (9, 17, 2))
    blocks.place (LEAVES_JUNGLE, pos (2, 17, 9))
    blocks.place (LEAVES_JUNGLE, pos (9, 17, 9))

    blocks.place (LEAVES_JUNGLE, pos (2, 18, 2))
    blocks.place (LEAVES_JUNGLE, pos (9, 18, 2))
    blocks.place (LEAVES_JUNGLE, pos (2, 18, 9))
    blocks.place (LEAVES_JUNGLE, pos (9, 18, 9))

def sofa1():
    blocks.place(blocks.block_with_data(PRISMARINE_BRICK_STAIRS, 3), pos (6, 16, 2))
    blocks.place(blocks.block_with_data(PRISMARINE_BRICK_STAIRS, 3), pos (5, 16, 2))
    blocks.place (PRISMARINE_BRICK_STAIRS, pos (7, 16, 2))
    blocks.place(blocks.block_with_data(PRISMARINE_BRICK_STAIRS, 1), pos (4, 16, 2))

def sofa2():
    blocks.place(blocks.block_with_data(PRISMARINE_BRICK_STAIRS, 2), pos (6, 16, 9))
    blocks.place(blocks.block_with_data(PRISMARINE_BRICK_STAIRS, 2), pos (5, 16, 9))
    blocks.place(blocks.block_with_data(PRISMARINE_BRICK_STAIRS, 8), pos (7, 16, 9))
    blocks.place(blocks.block_with_data(PRISMARINE_BRICK_STAIRS, 1), pos (4, 16, 9))

def sofa3():
    blocks.place(blocks.block_with_data(PRISMARINE_BRICK_STAIRS, 8), pos (9, 16, 6))
    blocks.place(blocks.block_with_data(PRISMARINE_BRICK_STAIRS, 8), pos (9, 16, 5))
    blocks.place(blocks.block_with_data(PRISMARINE_BRICK_STAIRS, 3), pos (9, 16, 4))
    blocks.place(blocks.block_with_data(PRISMARINE_BRICK_STAIRS, 2), pos (9, 16, 7))

def sofa4():
    blocks.place(blocks.block_with_data(PRISMARINE_BRICK_STAIRS, 1), pos (2, 16, 6))
    blocks.place(blocks.block_with_data(PRISMARINE_BRICK_STAIRS, 1), pos (2, 16, 5))
    blocks.place(blocks.block_with_data(PRISMARINE_BRICK_STAIRS, 3), pos (2, 16, 4))
    blocks.place(blocks.block_with_data(PRISMARINE_BRICK_STAIRS, 2), pos (2, 16, 7))

def tisch():
    blocks.fill (IRON_BARS, pos (5,16,5), pos (6, 16, 6))
    blocks.fill (WHITE_CARPET, pos (5,17,5), pos (6, 17, 6))
    
def sofas():
    sofa1()
    sofa2()
    sofa3()
    sofa4()

def dach():
    dachboden()
    geländer()
    dachbaum()
    sofas()
    tisch()

3.2 Schritte während dem programmieren

0. Das Grundgerüst, die Fenster und die Bäume konnten wir von dem Erdgeschoss übernehmen. Bei den Fenstern haben wir dann (x,y+15,z) genommen, um auf die richtige Grösse zu kommen.

1. Als erstes haben wir dann das Dach und den Dachboden programmiert.(ACHTUNG:Dachboden ist nicht ein Stock sondern ein Boden.)

2. Danach haben wir die Sofas programmiert und die Bäume hinzugefügt.

3. Als drittes haben wir dann den Tisch programmiert.

4.1 Der Code

def haus():
    eingang()
    etage1()
    etage2()
    dach()
    
haus()

4.2 Schritte während dem programmieren

1. Nun mussten wir nur noch alle def …() zusammenfügen. Jetzt können wir in nur einem Klick unser Haus einsetzten.

  • archiv/gf/gf2020_2021/minecraft/projekt/nielsnoelsava/hochhaus.txt
  • Zuletzt geändert: 2022/08/27 18:08
  • von lehmannr