Utama Perkhidmatan Penstriman Menggodam Minecraft pada Raspberry Pi

Menggodam Minecraft pada Raspberry Pi



Raspberry Pi 2 adalah peranti yang mampu mengejutkan, memandangkan harganya yang kurang dari £ 30. Muncul dengan versi Minecraft yang sudah terpasang, bersama dengan API yang memungkinkan anda menulis kod untuk dijalankan di dunia maya. Anda melakukan ini di Python, yang mudah dipelajari. Kombinasi Pi, Python dan Minecraft memberikan peluang besar untuk mula meneroka kemungkinan pengaturcaraan. Dan kegembiraan melihat rumah membina dirinya di lanskap maya bukan hanya untuk kanak-kanak.

cara cermin telefon ke roku

Skrip dalam Minecraft

Minecraft adalah permainan kotak pasir terbuka yang tidak mempunyai garis plot untuk diikuti. Kadang-kadang ia digambarkan sebagai Lego maya, kerana pemain boleh membina apa-apa jenis struktur menggunakan blok yang ada. Versi yang digabungkan dengan Raspberry Pi mempunyai set fitur terhad yang sesuai dengan peranan pendidikannya - jadi anda tidak perlu risau untuk dikejar oleh zombie, misalnya. Berinteraksi dengan dunia ini tidak memerlukan penyediaan khas, hanya pembangunan OS Raspbian baru-baru ini dan persekitaran pengaturcaraan. Saya memilih Geany, yang boleh anda pasang dengan membuka LXTerminal dan menaip:

sudo apt-get install geany

Mari kita mulakan dengan membuat skrip untuk membangun rumah di depan pemain - tetapi daripada hanya menamparnya, kita akan menghidupkannya. Kami juga akan membangun dalam pelbagai tetapan yang dapat dikonfigurasi, yang akan membolehkan pemain bereksperimen dengan dimensi dan bahan yang berbeza. Ini juga akan menjadikan program ini modular, sehingga dapat dijadikan dasar untuk menciptakan kesejahteraan yang lebih canggih.

Untuk membuat kod berfungsi, masukkan ke Geany kemudian mulakan Minecraft dan ciptakan dunia baru. Tekan kekunci Tab untuk melepaskan kursor dari tetingkap Minecraft dan klik ikon roda gigi di Geany (atau tekan F5) untuk melancarkan skrip. Anda mesti melihat sebuah rumah berkumpul secara ajaib. Sekiranya tidak, cuba berpusing - mungkin ada di belakang anda! Anda dapat melihat skripnya beraksi di sini . Jadi bagaimana skrip berfungsi? Baiklah, pertama kali membuka pautan ke Minecraft:

import mcpi.minecraft sebagai minecraft, time mc = minecraft.Minecraft.create ()

Di Python, penting untuk memperhatikan lekukan, kerana cara itulah kod dibahagikan kepada blok. Dalam kes ini, kedua-dua garis itu rata dengan margin kiri: baris pertama mengimport perpustakaan Minecraft dan Time dan yang kedua membuat objek Minecraft untuk kita gunakan sepanjang masa. 25 baris seterusnya menetapkan beberapa pemboleh ubah untuk blok yang akan kita gunakan sehingga kita dapat merujuknya sebagai, katakanlah, papan kayu daripada ID blok mereka (5, dalam hal ini). Kami kemudian menunjukkan blok mana yang akan digunakan untuk dinding, yang mana untuk bumbung dan sebagainya. Kita boleh mengubah pembinaan rumah dengan mudah dengan menukar dinding bata untuk batu besar, misalnya. Akhirnya, kami menetapkan lebar, panjang dan tinggi kediaman yang kami mahukan.

Kami sekarang memanggil fungsi Minecraft mc.player.getTilePos () untuk mencari pemain di lanskap, dan nilai-nilai yang kembali kemudian digunakan untuk membuat dua pemboleh ubah, kiri dan bawah, untuk menggambarkan di mana sudut pertama tempat tinggal .

Selepas itu, struktur skrip sepadan dengan proses Minecraft membina rumah secara manual. Kami mulakan dengan membersihkan ruang sehingga jika pemain memilih untuk membina rumah di dalam, katakanlah, gunung, kawasan tempat tinggal tidak akan menjadi batu padat. Inilah sekatan kod - fungsi di Python - yang melakukan ini:

def clear_house (nuklear):
jika nuklear == Betul:
letupan_zon = 20
lain:
letupan_zon = 0
mc.setBlocks (zon kiri-ledakan, pemain_
tanah, bawah + zon letupan, kiri + lebar + letupan_
zon, padang pemain + tinggi + letupan_
zon + 10, zon ledakan panjang bawah, sekatan udara)

Apabila kita memanggil clear_house, kita memasukkan parameter nuklear. Ia mempunyai nilai Betul atau Salah. Anda boleh mencuba memanggilnya dengan Benar untuk membersihkan isipadu yang lebih besar di sekitar kawasan sasaran, atau memanggilnya dengan Palsu untuk membatasi jarak ke dimensi dalaman rumah. Di Minecraft, fungsi mc.setBlocks digunakan untuk membuat kubus blok dengan menyebarkannya koordinat, dalam tiga dimensi, sudut bertentangan diikuti dengan jenis blok yang ingin anda gunakan. Dalam keadaan ini, kami membersihkan ruang, jadi kami menggunakan udara.

Setelah kami mengosongkan ruang, inilah masanya untuk beralih ke pembinaan. Setiap peringkat pembinaan ini berlaku mengikut fungsinya sendiri. Pada akhir skrip, anda akan melihat fungsi yang disebut main (), yang mengawal aliran program dengan memanggil setiap fasa pembinaan secara bergantian. Dengan menamakan fungsi kami dengan bijak dan memanggilnya dari utama (), mudah untuk memahami apa yang sedang dilakukan oleh program ini:

def utama ():
clear_house (Salah)
start_pos = [kiri, bawah, pemain_
tanah]
build_floor (start_pos)
kursus = build_walls (start_pos)
add_door (pintu_posisi)
time.sleep (kelewatan * 10)
build_roof (start_pos, kursus)

Fungsi seterusnya yang dipanggil utama () membina lantai - ini menggunakan mc. setBlocks lagi untuk mengukir landasan (untuk kesan artistik) dan kemudian tambahkan kubus jubin lantai dengan kedalaman satu blok untuk membuat lantai yang kukuh di rumah kami.

cara membuang bar carian dari skrin utama

Membina tembok

Fungsi build_walls adalah nadi program. Cara paling berkesan untuk membuat cangkang rumah adalah dengan menampar batu bata yang padat dan kemudian menggunakan rumah jernih untuk mengukir bahagian dalam. Walau bagaimanapun, kami mahu rumah itu kelihatan membina sendiri, jadi kami perlu meletakkan blok satu persatu, satu demi satu. Berikut adalah versi ringkas kod bangunan dinding:

def build_course (start_pos, arah,
kursus):
blok = 1
current_horiz = start_pos [0]
current_vert = start_pos [1]

jika arah == ke atas atau
arah == ke bawah:
number_of_blocks = panjang
lain:
number_of_blocks = lebar

sementara blokmc.setBlock (current_horiz, player_
landasan + kursus, current_vert, wall_block)
jika arah == ke atas:
current_vert- = 1
arah elif == ke bawah:
current_vert + = 1
arah elif == kanan:
current_horiz + = 1
lain:

current_horiz- = 1
blok = blok + 1 # bergerak ke blok seterusnya
masa. tidur (kelewatan)

Kita mulakan dengan menyimpan kedudukan permulaan - ini akan menjadi kedudukan blok terakhir yang diletakkan dari blok sebelumnya. Kami kemudian menentukan berapa banyak blok yang akan ditempatkan, bergantung pada apakah kami akan menempuh sepanjang panjang bangunan atau lebarnya.

Fasa pembinaan terkandung dalam blok sementara - ini terus berjalan sehingga kita meletakkan semua blok. mc.setBlock meletakkan satu blok pada koordinat yang ditunjukkan, kemudian menambah salah satu koordinat tersebut bergantung pada arah di mana kita meletakkan. Kesannya ialah blok diletakkan di sepanjang dinding sebelum membelok ke sudut dan terus dalam bentuk segi empat tepat sehingga jalannya selesai.

google chrome dibuka pada windows 10 permulaan

Versi terakhir kod sedikit lebih terlibat, menambah tingkap ke setiap dinding. Tingkapnya bersaiz dinamik sehingga panjangnya separuh dinding dan berpusat. Ia juga mencatatkan kedudukan pintu; ia ditambah setelah dinding dibina. Kursus dikendalikan dari fungsi build_walls, yang mengulangi fungsi build_course untuk setiap kursus blok sehingga mencapai ketinggian akhir.

Anda juga boleh membina rumah anda di lautan atau di udara - lakukan ini dengan menekan dua kali bar ruang untuk terbang, kemudian tekan lagi untuk menaikkan diri sebelum menjalankan skrip. Ubah pemboleh ubah wall_block dan roof_block untuk melihat apa yang berlaku sekiranya anda membuat dinding atau bumbung daripada emas atau, tentu saja, lava. Anda boleh menambah blok anda sendiri dengan melihat senarai penuh di sini , dan menambahkan pemboleh ubah yang berkaitan dengan skrip. Pengubahsuaian yang lebih mencabar mungkin termasuk menambahkan beberapa tingkat ke struktur jika pemboleh ubah ketinggian ditetapkan ke nilai yang cukup besar. Cari tahu bagaimana menambah menara, dan anda mempunyai istana Minecraft.

Tweak ini mungkin terdengar sepele, tetapi saya telah memprogram secara profesional selama lebih dari 20 tahun dan saya masih mendapat kegembiraan ketika potongan kode berfungsi seperti yang diharapkan. Sekiranya anda tidak pernah diprogram sebelumnya, saya harap anda akan mencubanya - dan jika anda mempunyai kipas Minecraft di rumah tangga, saya cadangkan membiarkan mereka kehilangan kod dan melihat di mana ia membawa mereka. Anda akan mendapat pautan ke sumber Minecraft Pi di kevpartner.co.uk/programming .

Artikel Yang Menarik

Pilihan Editor

Cara Menambah Pautan dalam Notion
Cara Menambah Pautan dalam Notion
Menggunakan pautan untuk menghubungkan dua bahagian maklumat telah menjadi bahagian penting dalam setiap aktiviti pengurusan tugas. Itulah sebabnya hari ini, kami akan memberi anda arahan tentang cara menambahkan pautan di Notion. Ini adalah satu
Cara Mengubah Input pada TV Insignia
Cara Mengubah Input pada TV Insignia
Insignia TV adalah jenama peranti TV mesra bajet. Mereka hadir dalam pelbagai saiz dan pakej yang berbeza untuk memenuhi keperluan semua orang. Untuk harganya, ia memberikan nilai hebat kepada mana-mana pelanggan, dengan pilihan sambungan yang hebat dan
Tema Star Trek Voyager untuk Windows 8
Tema Star Trek Voyager untuk Windows 8
Tema Star Trek Voyager untuk Windows 8 menampilkan kertas dinding dengan seni peminat Star Trek Voyager untuk Desktop anda. Untuk mendapatkan tema ini, klik pautan muat turun di bawah, dan kemudian klik Buka. Ini akan menerapkan tema ke Desktop anda. Petua: Sekiranya anda pengguna Windows 7, gunakan Pemasang Deskthemepack kami untuk memasang dan menerapkan tema ini. Saiz:
Lebih banyak perubahan dilihat pada Windows 10 build 10576
Lebih banyak perubahan dilihat pada Windows 10 build 10576
Windows 10 build 10576 menampilkan sejumlah perubahan yang tidak muncul dalam log perubahan rasmi.
Cara Membaikinya Apabila Sarikata Tidak Berfungsi di Hulu
Cara Membaikinya Apabila Sarikata Tidak Berfungsi di Hulu
Enam belas penyelesaian yang terbukti dan pantas apabila kapsyen dan sari kata Hulu tidak berfungsi dengan betul, menunjukkan bahasa yang salah atau tidak segerak.
Cara Menambah Wang ke Google Play
Cara Menambah Wang ke Google Play
Walaupun tiada kekurangan kandungan percuma yang tersedia di Google Play, anda perlu mendapatkan dompet dari semasa ke semasa. Itulah sebabnya tidak rugi untuk menyimpan dana kecemasan pada akaun anda, di
Cara Melihat Bounties dalam Destiny 2
Cara Melihat Bounties dalam Destiny 2
Melengkapkan Bounties ialah salah satu cara terbaik untuk maju dalam permainan dan menerima peralatan yang bagus dengan cepat. Walau bagaimanapun, dengan keluaran Season of Opulence, Bounties telah dialihkan daripada Inventori, mengelirukan ramai pemain. Jika anda sedang bergelut