Sonic Pi aktualnie wspiera następujące podstawowe interakcje z Minecraft Pi:
Spróbujmy przyjrzeć się każdemu 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 sprawdź, czy udało Ci się wejść do świata Minecraft i czy 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 oknie Minecraft. Gratulacje, właśnie napisałeś swój pierwszy kod w Minecraft! Prawda, to było proste.
Teraz spróbujmy odrobiny magii. Spróbujmy przeteleportować nas w inne miejsce! Sprawdź następujący kod:
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. Więc co to za liczby: 50, 50, 50
? Są to współrzędne miejsca, do którego starasz się przeteleportować. Poświęćmy krótką chwilę, aby 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
oznaczają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 trzech cyfr:
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, a następnie przełącz się do Sonic Pi. Teraz wpisz następującą linijkę:
puts mc_location
Kiedy uruchomisz przycisk Run, zobaczysz współrzędne Twojego aktualnego położenia wyświetlone w panelu z logami. Zapisz je, a 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ć 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 one działają, programowanie z API oferowanym przez Minecraft będzie dla Ciebie bułką z masłem.
Teraz gdy już wiesz, w jaki sposób znaleźć aktualną pozycję oraz w jaki sposób 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
Haha, to naprawdę była bułka z masłem! Aby obejrzeć swoje dzieło, po prostu przeteleportuj się niedaleko i zerknij na nie:
mc_teleport 35, 50, 60
Teraz obróć się dookoła, a Twoim oczom ukaże się utworzony przez Ciebie 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ąc 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 oddasz się szaleństwu programowania z Minecraft Pi, być może zainteresuje Cię 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