Sonic Pi aktualnie wspiera następujące podstawowe interakcje z Minecraft Pi:
Spróbujmy przyjrzeć się każemu z nich po kolei.
Zobaczmy jak łatwo jest kontrolować Minecraft Pi z Sonic Pi. Najpierw, upewnij się, że zarówno Minecraft Pi jak i Sonic Pi są jednocześnie otwarte a także, upewnij się, że udało Ci się wejść do świata Minecraft i możesz się poruszać.
W czystym buforze Sonic Pi po prostu wprowadź poniższy kod:
mc_message "Hello from Sonic Pi"
Kiedy naciśniesz przycisk Run, zobaczysz migającą wiadomość w ekranie Minecraft. Gratulacje, właśnie napisałeś swój pierwszy kod w Minecraft! To było proste, prawda?
Teraz, spróbujmy odrobine magii. Spróbujmy przeteleportować nas w inne miejsce. Spróbuj następującego kodu:
mc_teleport 50, 50, 50
Kiedy naciśniesz Run - bum! Zostajesz błyskawicznie przetransportowany
w nowe miejsce. Bardzo prawdopodobne jest to, że to gdzieś w powietrzu
i spadniesz w dół na suchy ląd lub do wody. Teraz, co to za liczby:
50, 50, 50
? Są to współrzędne miejsca do którego starasz się
przetleportować. Poświęćmy krótką chwilę żeby dowiedzieć się czym są
współrzędne i jak działają, ponieważ są one naprawdę ważne w programowaniu
Minecraft.
Wyobraź sobie mapę piratów z wielkim X
oznacającym miejsce jakiegoś
skarbu. Dokładna lokalizacja X
może być opisana przez podanie
dwóch liczb - jak daleko na mapie od lewej do prawej oraz jak daleko
od dołu mapy w górę. Na przykład 10cm
wszerz i 8cm
w górę. Te dwie
liczby 10
i 8
to współrzędne. Możesz bardzo łatwo wyobrazić sobie
opisywanie sekretnych miejsc ze skarbami za pomocą innej pary liczb.
Być może bardzo duża skrzynia złota znajduje się na 2
w poprzek
9
w górę.
Teraz, w Minecraft dwie liczby to za mało. Potrzebujemy także wiedzieć o tym, jak wysoko się znajdujemy. Dlatego też potrzebujemy 3 liczb:
x
z
y
Jeszcze jedna rzecz - zazwyczaj opisujemy te współrzędne w następującej
kolejności x
, y
, z
.
Spróbujmy pobawić się współrzędnymi. Przenieść się do jakiegoś ładnego miejsca na mapie Minecraft następnie przełącz się do Sonic Pi. Teraz wpisz następującą linijkę:
puts mc_location
Kiedy uruchomisz przycis Run zobaczysz współrzędne twojego aktualnego położenia wyświetlone w panelu z logami. Zapisz je, następnie spróbuj przemieścić się do przodu w świecie i spróbuj jeszcze raz. Zauważ, że współrzędne się zmieniły! Teraz, zalecam Ci poświęcić Ci trochę czasu na powtórzenie tego kilka razy - przenieś się gdzieś kawałek w twoim świecie, zerknij na współrzędne i powtórz. Próbuj tego do momentu, w którym poczujesz jak zmieniają się współrzędne gdy się poruszasz. Gdy już zrozumiesz jak działają współrzędne, programowanie z API oferowanym przez Minecraft będzie dla Ciebie bułką z masłem.
Teraz gdy już wiesz w jaki sposob znaleźć aktualną pozycje oraz w jaki
sposob możesz się teleportować korzystając z współrzędnych, posiadasz
już wszystkie narzędzia, których potrzebujesz aby zacząć budować rzeczy
w Minecraft za pomocą kodu. Powiedzmy, że chciałbyś stworzyć blok ze szkła
o współrzędnych 40
, 50
, 60
. Proste:
mc_set_block :glass, 40, 50, 60
Tak, tak, to naprawde jest takie proste. Aby obejrzeć swoje dzieło po prostu przeteleportuj się niedaleko i zerknij na nie:
mc_teleport 35, 50, 60
Teraz obróć się i powinieneś zobaczyć twój blok ze szkła. Spróbuj zmienić go w diament:
mc_set_block :diamond, 40, 50, 60
Jeśli patrzyłeś w odpowiednim kierunku to być może nawet zauważyłeś jak zmienił się na twoich oczach! To początek czegoś ekscytującego…
Spróbujmy spojrzeć na ostatnią rzecz zanim zaczniemy coś bardziej angażującego. Podająć zestaw współrzędnych możemy zapytać Minecraft o to jakiego typu jest specyficzny blok. Spróbujmy tego z naszym blokiem diamentu, który stworzyłeś przed chwilą:
puts mc_get_block 40, 50, 60
Łał! To diament (:diamond
)!. Spróbuj ponownie zmienić go w szkło
i jeszcze raz zapytać o typ - czy teraz pokazał szkło (:glass
).
Jestem pewien, że tak :-)
Zanim udasz oddasz się szaleństwu programowania z Minecraft Pi, być może zainteresuje Cie poniższa lista dostępnych typów bloków:
:air
:stone
:grass
:dirt
:cobblestone
:wood_plank
:sapling
:bedrock
:water_flowing
:water
:water_stationary
:lava_flowing
:lava
:lava_stationary
:sand
:gravel
:gold_ore
:iron_ore
:coal_ore
:wood
:leaves
:glass
:lapis
:lapis_lazuli_block
:sandstone
:bed
:cobweb
:grass_tall
:flower_yellow
:flower_cyan
:mushroom_brown
:mushroom_red
:gold_block
:gold
:iron_block
:iron
:stone_slab_double
:stone_slab
:brick
:brick_block
:tnt
:bookshelf
:moss_stone
:obsidian
:torch
:fire
:stairs_wood
:chest
:diamond_ore
:diamond_block
:diamond
:crafting_table
:farmland
:furnace_inactive
:furnace_active
:door_wood
:ladder
:stairs_cobblestone
:door_iron
:redstone_ore
:snow
:ice
:snow_block
:cactus
:clay
:sugar_cane
:fence
:glowstone_block
:bedrock_invisible
:stone_brick
:glass_pane
:melon
:fence_gate
:glowing_obsidian
:nether_reactor_core