gf2:projekte:minecraft:2d1gruppe1

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:minecraft:2d1gruppe1 [2023/02/05 16:40] emmeneggermgf2:projekte:minecraft:2d1gruppe1 [2023/02/26 07:31] (aktuell) marroc
Zeile 1: Zeile 1:
-<code python>+<code python MaxAlan.py>
 X=0 X=0
 Y=0 Y=0
Zeile 10: Zeile 10:
 Hind3=False Hind3=False
 Hind4=False Hind4=False
-Hind5=False +Hind5=False
 Hind6=False Hind6=False
 zaehler2=1 zaehler2=1
Zeile 38: Zeile 38:
     blocks.place(AIR, world(X, Z, Y+5))     blocks.place(AIR, world(X, Z, Y+5))
     blocks.place(AIR, world(X+4, Z, Y+5))     blocks.place(AIR, world(X+4, Z, Y+5))
-    + 
 def dialog1(): # Text an Spieler einige Zeilen angenehmer zum Lesen def dialog1(): # Text an Spieler einige Zeilen angenehmer zum Lesen
     player.say("Sei Gegrüsst Fremde*r")     player.say("Sei Gegrüsst Fremde*r")
Zeile 56: Zeile 56:
     if (zaehler==4):     if (zaehler==4):
         player.say("Tipp 3: Die Blöcke sind in zweimal in Modulo angeordnet von Süd nach Nord.")         player.say("Tipp 3: Die Blöcke sind in zweimal in Modulo angeordnet von Süd nach Nord.")
 + 
     if (zaehler==5):     if (zaehler==5):
         player.say("Schau mit deinem 3 Auge nach Süden") # Hilf an der Wandtafel hinten         player.say("Schau mit deinem 3 Auge nach Süden") # Hilf an der Wandtafel hinten
Zeile 68: Zeile 68:
    
    
-def on_travelled_walk(): +def on_travelled_walk():  
-    x = player.position().get_value(Axis.X)+    x = player.position().get_value(Axis.X) 
     z = player.position().get_value(Axis.Y)     z = player.position().get_value(Axis.Y)
     y = player.position().get_value(Axis.Z)     y = player.position().get_value(Axis.Z)
Zeile 79: Zeile 79:
         global Teil2         global Teil2
         Teil2 = True         Teil2 = True
-    if (x==X+10) and (z>Z-1):+    if (x==X+10) and (z>Z-1):# Raum 2 schweben
         mobs.apply_effect(LEVITATION, mobs.target(NEAREST_PLAYER), 10, 1)         mobs.apply_effect(LEVITATION, mobs.target(NEAREST_PLAYER), 10, 1)
-    if  (x==X+13) and (Z+14==z):+    if (x==X+13) and (Z+14==z):
         player.execute("spawnpoint @s 18 163 0")         player.execute("spawnpoint @s 18 163 0")
-    if ((X+21==x) or (x==X+22)) and ((Y+5==y) or (Y+6==y)) and (z==Z+14): +    if ((X+21==x) or (x==X+22)) and ((Y+5==y) or (Y+6==y)) and (z==Z+14):# Ab hier, die bewegenden  Blöcke, immer gleiches Muster   
-        global Hind1 +        global Hind1  
-        Hind1=False +        Hind1=False     # alte Funktion wird abgestellt  
-        global Hind2 +        global Hind2  
-        Hind2= True +        Hind2= True     # die neue Funktion wird aktiviert  
-        player.execute("spawnpoint @s 21 164 6")+        player.execute("spawnpoint @s 21 164 6"# neuer Spawnpoint falls man stirbt 
     if (z==Z+10) and (X+23==x) or (X+24==x) and (y==Y+20) or (y==Y+21):     if (z==Z+10) and (X+23==x) or (X+24==x) and (y==Y+20) or (y==Y+21):
         global Hind2         global Hind2
Zeile 95: Zeile 95:
         Hind3= True         Hind3= True
         player.execute("spawnpoint @s 23 160 21")         player.execute("spawnpoint @s 23 160 21")
-        if (zaehler2==1):+        if (zaehler2==1): # damit man nur eine Enderperle bekommt
             global zaehler2             global zaehler2
             zaehler2= zaehler2 +2             zaehler2= zaehler2 +2
Zeile 131: Zeile 131:
      blocks.place(OBSIDIAN, world(10+X,Z-1,Y))      blocks.place(OBSIDIAN, world(10+X,Z-1,Y))
    
-def blöckebewegen (M,x,z,y,x2,z2,y2,richx,richy,richz,länge,intervalldauer):# sie ist nich so schön fliessend jedoch meist besser geeignet+def blöckebewegen (M,x,z,y,x2,z2,y2,richx,richy,richz,länge,intervalldauer):# sie ist nicht so schön fliessend jedoch meist besser geeignet
     running = True     running = True
     intervall=1     intervall=1
Zeile 148: Zeile 148:
                             intervall= intervall + 1                             intervall= intervall + 1
    
-def blöckebewegen2 (M,x,z,y,x2,z2,y2,richx,richy,richz,länge,intervalldauer):# sie ist nich so schön fliessend jedoch meist besser geeignet+def blöckebewegen2 (M,x,z,y,x2,z2,y2,richx,richy,richz,länge,intervalldauer):# sie ist nicht so schön fliessend jedoch meist besser geeignet
     running = True     running = True
     intervall=1     intervall=1
Zeile 164: Zeile 164:
                             z2=z2+richz                             z2=z2+richz
                             intervall= intervall + 1                             intervall= intervall + 1
 + 
 def blöckebewegen3 (M,x,z,y,x2,z2,y2,richx,richy,richz,länge,intervalldauer):# das der hintere Block nicht verschwindet (wachsende Form) def blöckebewegen3 (M,x,z,y,x2,z2,y2,richx,richy,richz,länge,intervalldauer):# das der hintere Block nicht verschwindet (wachsende Form)
     running = True     running = True
Zeile 189: Zeile 189:
     blocks.fill(STONE, world(X+21,Z+13,Y+5), world(X+22,Z+13,Y+6))     blocks.fill(STONE, world(X+21,Z+13,Y+5), world(X+22,Z+13,Y+6))
     blocks.place(OBSIDIAN, world(X+12, Z+13, Y+3))     blocks.place(OBSIDIAN, world(X+12, Z+13, Y+3))
-    while Hind1: +    while Hind1: # die verschiedenen Blöcke, die sich bewegen
         blöckebewegen(STONE_BRICKS,X+14,Z+13,Y+2,X+13,Z+13,Y+3,2,0,0,70,10)         blöckebewegen(STONE_BRICKS,X+14,Z+13,Y+2,X+13,Z+13,Y+3,2,0,0,70,10)
     while Hind2:     while Hind2:
Zeile 209: Zeile 209:
         player.say("Du hast dich wacker geschlagen.")         player.say("Du hast dich wacker geschlagen.")
         player.say("JEDOCH BIST DU KEIN MAGIER*in")         player.say("JEDOCH BIST DU KEIN MAGIER*in")
-        player.say("Angesicht deines Talentes gesttaten wir dir weiterzuleben.")+        player.say("Angesichts deines Talentes gesttaten wir dir weiterzuleben.")
         player.say("Um weiter zum Schatz vorzudringen sag:aperta.")         player.say("Um weiter zum Schatz vorzudringen sag:aperta.")
-        player.say("Wenn du klugerweise dich zurückziehen möchtest sag:beam mich hoch scotty."+        player.say("Wenn du klugerweise dich zurückziehen möchtest sag: beam mich hoch scotty."
- +  
-def antworttod():+def antworttod(): # wenn er/sie den Schatz verfolen will
     player.teleport(world(X+11, Z-48, Y))     player.teleport(world(X+11, Z-48, Y))
     player.execute("spawnpoint @s 11 102 0")     player.execute("spawnpoint @s 11 102 0")
     player.say("Wir sind so freundlich und geben dir den Schatz!")     player.say("Wir sind so freundlich und geben dir den Schatz!")
     player.say("Ich hoffe du kanst ihn essen")     player.say("Ich hoffe du kanst ihn essen")
-    player.say(" Wir garen dich schon etwas, dann ist deine Zeit in der Hähle kürzer ") +    player.say(" Wir garen dich schon etwas, dann ist deine Zeit in der Höhle kürzer ") 
-    player.say("Leb Wohl, du Totgeweihter")+    player.say("Leb wohl, du Totgeweihter")
     mobs.apply_effect(HUNGER, mobs.target(NEAREST_PLAYER), 1000000, 20)     mobs.apply_effect(HUNGER, mobs.target(NEAREST_PLAYER), 1000000, 20)
     mobs.apply_effect(FIRE_DAMAGE, mobs.target(NEAREST_PLAYER), 1000000, 1)     mobs.apply_effect(FIRE_DAMAGE, mobs.target(NEAREST_PLAYER), 1000000, 1)
Zeile 227: Zeile 227:
         mobs.give(mobs.target(NEAREST_PLAYER), Materialien[n], 128)         mobs.give(mobs.target(NEAREST_PLAYER), Materialien[n], 128)
         n=n+1         n=n+1
-                 +  
-def antwortend(): +def antwortend(): # wenn er/sie aufhören möchte  
-    player.say("Gratulation du hast überlebt")+    player.say("Gratulationdu hast überlebt")
     player.teleport(positions.ground_position(pos(0,0,0)))     player.teleport(positions.ground_position(pos(0,0,0)))
-    + 
 spielbediungen() spielbediungen()
 raum1() raum1()
Zeile 251: Zeile 251:
  
 **Ideen für das Projekt** **Ideen für das Projekt**
 +
 Unser ursprünglicher Gedanke war eine Schatzsuche in einer mittelalterlichen Burg und oder die Entschärfung einer Bombe. Unser ursprünglicher Gedanke war eine Schatzsuche in einer mittelalterlichen Burg und oder die Entschärfung einer Bombe.
 Dabei muss man sich durch verschiedene Räume kämpfen.  Dabei muss man sich durch verschiedene Räume kämpfen. 
Zeile 263: Zeile 264:
  
 **Ergebnisse aus den Ideen** **Ergebnisse aus den Ideen**
 +
 Bei der aktuellen Version muss man sich durch drei Räume durchkämpfen. Wenn man das jeweilige Rätsel gelöst hat, öffnet sich der nächste Raum. Dabei wird man durch den Chat angeleitet. Bei ersten muss man sich einem Rätsel stellen. Beim Zweiten fliegt man hoch und muss Blöcken ausweichen. Beim Dritten ist es erforderlich sich über einen Lavasee zu bewegen. Am Schluss muss man sich entscheiden, ob man den Schatz weiter verfolgen will oder ob man die Mission abbrechen möchte. Wer sich für den Schatz entscheidet, bekommt ihn auch. Jedoch bekommt man auch Hunger und stirbt. Man könnte zwar den Boden zerstören und rausspringen. Jedoch stirbt man dann am Fallschaden. Wer sich dagegen für den Abbruch entscheidet, wird weg transferiert und überlebt.  Bei der aktuellen Version muss man sich durch drei Räume durchkämpfen. Wenn man das jeweilige Rätsel gelöst hat, öffnet sich der nächste Raum. Dabei wird man durch den Chat angeleitet. Bei ersten muss man sich einem Rätsel stellen. Beim Zweiten fliegt man hoch und muss Blöcken ausweichen. Beim Dritten ist es erforderlich sich über einen Lavasee zu bewegen. Am Schluss muss man sich entscheiden, ob man den Schatz weiter verfolgen will oder ob man die Mission abbrechen möchte. Wer sich für den Schatz entscheidet, bekommt ihn auch. Jedoch bekommt man auch Hunger und stirbt. Man könnte zwar den Boden zerstören und rausspringen. Jedoch stirbt man dann am Fallschaden. Wer sich dagegen für den Abbruch entscheidet, wird weg transferiert und überlebt. 
  
Zeile 269: Zeile 271:
  
 **Blöcke Bewegen:** **Blöcke Bewegen:**
 +
 Das Problem bestand darin, die Blöcke in verschiedenen Geschwindigkeiten zu bewegen. Dabei sollen sie nur eine bestimmte Bewegung vollführen und nicht unbegrenzt auf einer Achse weglaufen. Das Problem bestand darin, die Blöcke in verschiedenen Geschwindigkeiten zu bewegen. Dabei sollen sie nur eine bestimmte Bewegung vollführen und nicht unbegrenzt auf einer Achse weglaufen.
  
Zeile 274: Zeile 277:
  
 **Fehlende Blöcke:** **Fehlende Blöcke:**
 +
 Einige Blöcke, die im Inventar und auch in den Chatbefehlen vorhanden sind, stehen beim Programmieren nicht zur Verfügung. Das ist ärgerlich. Einige Blöcke, die im Inventar und auch in den Chatbefehlen vorhanden sind, stehen beim Programmieren nicht zur Verfügung. Das ist ärgerlich.
  
 **Absolute und relative Koordinaten:** **Absolute und relative Koordinaten:**
 +
 Zuerst haben wir relative Koordinaten verwendet, was auch kein Problem war. Als wir aber Blöcke durch eine Interaktion ersetzen wollten, mussten wir auf absolute Koordinaten zurückgreifen. Sonst erscheinen die Blöcke nicht am gewünschten Ort, sondern an verschiedenen Orten, je nach der Position der Spielerfigur. Zuerst haben wir relative Koordinaten verwendet, was auch kein Problem war. Als wir aber Blöcke durch eine Interaktion ersetzen wollten, mussten wir auf absolute Koordinaten zurückgreifen. Sonst erscheinen die Blöcke nicht am gewünschten Ort, sondern an verschiedenen Orten, je nach der Position der Spielerfigur.
  
 **Programm Fehler:** **Programm Fehler:**
 +
 Wir haben den Code kopiert und in verschiedenen Welten ausgeführt. Es zeigte sich, dass die Spawnpoints, aber auch Positionen der Blöcke, nicht immer gleich funktionierten. Wir haben die Ursache nicht ermitteln können. Es ist doch der exakt gleiche Code, in gleich konzipierten Welten.  Wir haben den Code kopiert und in verschiedenen Welten ausgeführt. Es zeigte sich, dass die Spawnpoints, aber auch Positionen der Blöcke, nicht immer gleich funktionierten. Wir haben die Ursache nicht ermitteln können. Es ist doch der exakt gleiche Code, in gleich konzipierten Welten. 
 +
 +===== Presentation =====
 +https://eduetatfr.sharepoint.com/teams/CSCR-C-2D1Informatik/_layouts/15/Doc.aspx?sourcedoc={5A3CA059-7FE5-4865-A2CB-497F1CB7429B}
 +
  
  • gf2/projekte/minecraft/2d1gruppe1.1675611639.txt.gz
  • Zuletzt geändert: 2023/02/05 16:40
  • von emmeneggerm