Da WIKI CoderDojo Firenze.
(Configurazione)
Riga 27: Riga 27:
 
</pre>
 
</pre>
  
Per accedere al file di configurazione cliccare sul pulsante "Game Folder" in basso a destra della finestra del Laucher. All'interno della finestra che si aprirà cercare il file '''options.txt'''
+
Per accedere al file di configurazione cliccare sul pulsante "Game Folder" in basso a destra della finestra del Launcher. All'interno della finestra che si aprirà cercare il file '''options.txt'''; aprirlo con un editor e modificare il parametro come indicato sopra.
  
 
=== Collegamento al server ===
 
=== Collegamento al server ===

Versione delle 21:39, 26 mag 2016

Gli esercizi descitti in questa pagina sono stati adattati a partire da quelli messi a disposizione dal repository TeachCraft-Challenges. Si ringrazia TeachTheNet per l'interessante materiale messo a disposizione.

Prerequisiti

Deve essere stato installato l'interprete Python e il launcher Minecraft come descritto in un'altra pagina di questo sito. Deve essere disponibile un server Minecraft che disponga di un'interfaccia API in Python a cui collegarsi in modalità multiplayer.

Nel caso non lo avessete a disposizione in questo sito è disponibile una pagina che descrive come installarlo e avviarlo.

Nel seguito supponiamo che il server sia disponibile all'indirizzo IP 192.168.12.10.

Avviare il Launcher Minecraft

Per avviare il launcher Minecraft fare doppio click sull'icona Minecraft_Launcher.jar presente nella directory TeachCraft-Challenges preparare al punto precedente. In alternaltiva lanciare da terminale con il comando:

$ java -jar Minecraft_Launcher.jar

Una volta che il caricamento del launcher è terminato apparirà la seguente finestra:

File:TLauncher_1.964_217.png

Configurazione

Per evitare che tutte le volte che ci allontaniamo dalla finestra di Minecraft questa si disattivi, occorre modificare la configurazione di Minecraft. In particolare occorre aprire il file di configurazione e modificare il parametro pauseOnLostFocus impostandolo al valore false:

pauseOnLostFocus:false

Per accedere al file di configurazione cliccare sul pulsante "Game Folder" in basso a destra della finestra del Launcher. All'interno della finestra che si aprirà cercare il file options.txt; aprirlo con un editor e modificare il parametro come indicato sopra.

Collegamento al server

Cliccare su Enter the Game in basso a destra. Attendere il caricamento di Minecraft. Apparirà la seguente finestra:

File:Minecraft_1.8.8_218.png

A questo punto cliccare sul pulsante Multiplayer. Apparirà una nuova finestra con una serie di pulsanti, scegliere Direct connect. Appare un'ulteriore finestra dove inserire l'indirizzo IP del server (nel nostro caso, come esempio, 192.168.12.10):

File:Minecraft_1.8.8_219.png

Cliccare su Join Server. Se tutto andrà a buon fine ci si troverà all'interno di un paesaggio Minecraft. Possiamo finalmente iniziare gli esperimenti con Python.

Scrivere il primo programma Python

Questo esercizio insegna come aprire una connessione con il server Minecraft per realizzare una semplice operazione di scrittura sulla chat del gioco.

Aprire l'editor che si è scelto per scrivere il programma Python e inserire le seguenti righe:

  1. import mcpi.minecraft as minecraft
  2. mc = minecraft.Minecraft.create(address="192.168.12.10", name="rodmcban")
  3. mc.postToChat("Ciao Minecraft!")

Al posto dell'indirizzo assegnato alla variabile address inserire l'indirizzo del server a cui si è collegati (quello inserito nella finestra precedente nel campo server address) e come "name" utilizzare quello del proprio personaggio (inserito all'inizio nella prima schermata del launcher).

Salvare il file così scritto all'interno della directory TeachCraft-Challenges.

Eseguire il programma Python con l'interprete che si ha a disposizione. Sulla finestra di Minecraft apparirà una riga di chat con scritto "Ciao Minecraft!"

File:Minecraft_1.8.8_221.png

Vediamo nel dettaglio cosa significano le tre righe che abbiamo scritto.

  1. import mcpi.minecraft as minecraft

Questa prima riga serve per spiegare a Python che abbiamo intenzione di utilizzare la libreria mcpi che è quella che fornisce le funzionalità per comunicare con il server Minecraft. Non realizza nessuna operazione visibile, ma dice a Python che vogliamo inviare dei comandi a Minecraft.

  1. mc = minecraft.Minecraft.create(address="192.168.12.10", name="rodmcban")

Questa seconda riga dice a Python di collegarsi al server Minecraft che si trova all'indirizzo 192.168.12.10 e, su questo server, agganciarsi al personaggio di nome rodmcban.

Queste due righe, che ancora non fanno nulla di visibile, sono obbligatorie per tutti i programmi che scriveremo: senza di queste infatti Python non è in grado di sapere come interpretare i comandi che seguono.

Notare la variabile mc: in questo "contenitore" viene salvata la connessione con il personaggio che abbiamo scelto. D'ora in avanti, quando useremo questa variabile, Python capirà che vogliamo fare un'operazione con quello specifico personaggio.

Con queste prime due righe abbiamo stabilito la comunicazione con Minecraft, ma, se ci fermassimo qui, non succederebbe niente. Diciamo che avremmo scritto un programma inutile: apriamo una connessione ma poi non ci facciamo niente. Il succo di questo semplicissimo programma è nella terza istruzione:

  1. mc.postToChat("Ciao Minecraft!")

Con questa istruzione diciamo a Python di eseguire un'operazione con la variabile mc (e quindi verso il personaggio che abbiamo scelto). In particolare l'operazione che chiediamo di eseguire è postToChat che mostra un messaggio sulla chat del personaggio.

Esercizio 1: Teletrasportare il personaggio

Con questo secondo programma vediamo come inviare un comando che cambia la posizione del personaggio a cui siamo agganciati. L'esempio è tratto dalla prima lezione del sito TeachCraft-Challenges.

Il codice da scrivere stavolta è leggermente di più:

  1. # coding=utf-8
  2. import mcpi.minecraft as minecraft
  3.  
  4. # NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui
  5. # si è collegati e "rodmcban" con il nome del proprio personaggio
  6. mc = minecraft.Minecraft.create(address="192.168.12.10", name="rodmcban")
  7.  
  8. mc.player.setPos(-33, 20, 34)

Qui introduciamo i commenti che sono le righe che iniziano con il carattere #. Queste righe servono a noi per ricordarci qualcosa sul codice che stiamo scrivendo ma sono completamente ignorate dall'interprete Python. Di fatto non servono all'esecuzione del programma

A parte i commenti riconosciamo le prime due righe di codice, che altro non sono che quelle che già conosciamo e che servono a stabilire una connessione con un personaggio sul server.

La terza riga che è quella che effettua veramente un'operazione questa volta utilizza il metodo setPos per impostare la posizione del personaggio a dove vogliamo noi.

Provate a spostarvi per il mondo Minecraft dove volete e poi provate ad eseguire questo nuovo programma: tornerete tutte le volte a una posizione predefinita.

Scriviamo adesso una versione leggermente più complicata del programma utilizzando delle variabili per indicare le tre componenti della posizione:

  1. # coding=utf-8
  2. import mcpi.minecraft as minecraft
  3.  
  4. # NOTA - sostituire l'indirizzo IP 192.168.12.10 con quello del server a cui
  5. # si è collegati e "rodmcban" con il nome del proprio personaggio
  6. mc = minecraft.Minecraft.create(address="192.168.12.10", name="rodmcban")
  7.  
  8. x = -33
  9. y = 20
  10. z = 34
  11.  
  12. mc.player.setPos(x, y, z)

Esercizi:

  • Provate a modificare i valori dei tre argomenti della funzione setPos. Cosa succede?
  • Quale tra x, y e z è quello che cambia la posizione verticale del personaggio?



TO BE COMPLETED