İlan
Her zaman kodlamayı öğrenmek istediniz, ancak nereden başlayacağınızı bilmiyor musunuz? Python ve bazı basit elektronikleri kullanarak Raspberry Pi'de Minecraft'ı nasıl kontrol edeceğinizi öğrenin. Sonuç:
Bu proje için bir Pi 2 veya daha yenisine ihtiyacınız olacak ve bu görevlerin çoğunu Güvenli Kabuk (SSH) üzerinden komut satırı aracılığıyla tamamlayabilmenize rağmen, bu eğitim doğrudan Pi'ye kodlamaya odaklanacaktır.
Minecraft'ta yeni misiniz? Endişelenme - işte bizim Minecraft Başlangıç Kılavuzu (Latecomer) Başlangıç Minecraft KılavuzuYine de partiye geç kalırsanız, endişelenmeyin - bu geniş başlangıç kılavuzu sizi kapsamaktadır. Daha fazla oku .
Minecraft Pi'ye Giriş

Ahududu Pi için Minecraft öğrenme ve tamir için geliştirilmiştir (ve ücretsizdir). Kodun Minecraft ile kolayca konuşabilmesi için bir yol sağlayan bir Uygulama Programlama Arayüzü (API) ile birlikte gelir. Python'da kod yazmanın yanı sıra elektronik ile çalışmaya başlama Başlangıç Elektroniği: Bilmeniz Gereken 10 Beceri Birçoğumuz asla bir havya bile dokunmadık - ama bir şeyler yapmak inanılmaz derecede ödüllendirici olabilir. İşte başlamanıza yardımcı olacak en temel DIY elektronik becerilerinden on tanesi. Daha fazla oku .
Python nedir?
piton bir programlama dilidir. Bu yorumlanırbaşka bir deyişle, bir Python dosyası veya programı çalıştırdığınızda, bilgisayarın önce dosyaya küçük bir iş yapması gerekir. Dezavantajları, derlenmiş diller.
Yorumlanan dillerin faydaları, kodlama hızı ve kolaylıklarıdır. Bilgisayara söylemene gerek yok ne saklamak istediğiniz veri, sadece bir şey saklamak istediğiniz ve bilgisayar ne yapacağınızı anlayacaktır. İstisnalar var elbette ve bu biraz basitleştirilmiş bir görünüm, ancak programlama eğlenceli olmalı! Karmaşık teknik detayları araştırmaya başlarsanız biraz zahmetli olabilir.
Python büyük / küçük harfe duyarlıdır. Bunu bilmek önemlidir, çünkü Python nesneleri tanımayacaktır doğru hecelenmiş olsalar bile durum yanlışsa. Yönteme gerçekten "DoSomething ()" adı verilirse “Dosomething ()” çalışmaz. Python ayrıca girinti kullanır. Diğer programlama dilleri kodunuzun kaç girintisine sahip olduğunu umursamayabilirken Python yapar bakım. Girintiler, Python'a kodun nerede olduğunu söylemek için kullanılır. Diğer diller kodu gruplamak için “Kıvırcık Parantez” ({}) kullanabilir - Python bunları kullanmaz. Python, yorumlar için bir karma (#) kullanır ve yorumlar, diğer geliştiricilere veya kodlara bakarak belirli bir parçanın ne yaptığını veya neden gerekli olduğunu söylemek için kullanılır. Python bir karmadan sonra hiçbir şeyi yok sayar.
Son olarak, Python'un iki ana sürümü vardır - Python 2.7.x ve Python 3.x. İkisi arasında bazı farklılıklar var (Farklılıklar nedir?). Bu eğitimde Python 3 kullanılacaktır.
İlk kurulum
Pi'nizi sağlamak zaten Raspbian kurulum ve çalıştırma Raspberry Pi'ye İşletim Sistemi Nasıl YüklenirRaspberry Pi'nize nasıl bir işletim sistemi yükleyeceğiniz ve hızlı olağanüstü durum kurtarma için mükemmel kurulumunuzu nasıl kopyalayacağınız aşağıda açıklanmıştır. Daha fazla oku , çok fazla başlangıç kurulumuna gerek yoktur.
Terminali Aç (Menü> Aksesuarlar> Terminal) ve bu komutu çalıştırın. Havuz listesini güncel tutmak her zaman iyi bir uygulamadır ve bu, en son program listesini indirir (programları kendileri indirmez, bu Pi'nin hangi programların çağrıldığını ve nerede bulunacağını bilmesine yardımcı olur Onları).
sudo uygun-güncelleştirme.
Şimdi Pi'yi güncelleyin (bu biraz zaman alabilir):
sudo uygun-yükseltme.
Python ve Minecraft Pi zaten kurulu, ancak Minecraft Pi herhangi bir nedenle kurulmamışsa, kurulumu basit Raspberry Pi'ye Yazılım Kurmanın 5 YoluRaspberry Pi ile herhangi bir şey yapmak için, bir işletim sisteminin nasıl kurulacağını ve üzerinde çalışacak yazılımı bilmeniz gerekir. Linux'ta yeniyseniz, bu göz korkutucu olabilir. Daha fazla oku :
sudo apt-get install minecraft-pi
Belgelere gidin ve “Minecraft” adlı yeni bir klasör oluşturun:
cd Belgeleri / mkdir Minecraft
Bu yeni klasörün içeriğini görüntüleyebilirsiniz:
ls
İşte bir ipucu - yazmaya başlayıp SEKME tuşuna basarsanız, komut satırı ifadeyi sizin için otomatik olarak tamamlamaya çalışır.
Çalışma Dizini Yazdır anlamına gelen pwd'yi kullanarak geçerli dizinin yolunu inceleyebilirsiniz:
pwd
Minecraft'ı şu adrese giderek başlatın: Menü> Oyunlar> Minecraft Pi. Bu koşuya ihtiyacınız olacak, ancak daha sonra geri dönecek.
Python 3'ü şuradan aç: Menü> Programlama> Python 3 (IDLE). Bu program, Python komutlarını çalıştırmanız ve programlar yazmanız için bir yol sağlar.
Şimdi Python komutlarınızı buraya yazabilirsiniz, ancak bu çok pratik değildir. Adresine git Dosya> Yeni Dosya ve sonra Dosya> Kaydet ve daha önce oluşturduğunuz klasöre kaydedin. (Belgeler> Minecraft). Diyelim ki “hello_world.py“. .Py uzantısını kullanmak zorunda değilsiniz, bu otomatik olarak eklenecektir, ancak iyi bir uygulamadır.
Terminale geri dönüp Minecraft klasörüne giderseniz az önce oluşturduğunuz dosyayı görmelisiniz:
cd Minecraft / ls
Bu dosyayı şu şekilde çalıştırabilirsiniz:
python Instagram Hesabındaki Resim ve Videoları hello_world
“Python” un küçük harflerinin nasıl olduğuna dikkat edin. Bu, dosya adından önce olmalıdır, çünkü Pi'ye aşağıdaki dosyanın Python olduğunu söyler, bu nedenle bu şekilde yürütülmelidir.
Python düzenleyicisine geri dönün ve şunu yazın:
yazdır "Merhaba, Dünya!"
Bu dosyayı kaydedin ve tekrar çalıştırın. Artık “Merhaba Dünya!” komut satırında görünür - temiz! Print komutu basitçe Python'a aşağıdaki metni çift tırnakla vermesini söyler. Bu iyi, ama Minecraft için çok kullanışlı değil, bağlantı kuralım:
mcpi.minecraft ithalatından Minecraft mc = Minecraft.create () mc.postToChat ("Merhaba Dünya!")
Şimdi bu dosyayı kaydedip çalıştırıyorsanız, “Merhaba Dünya!” Minecraft oyununda görünür. Kodu parçalayalım:
dan mcpi.minecraft ithalat Minecraft
Bu satır Python'a başka bir dosyadan kod kullanmak istediğinizi bildirir. Bu mcpi.minecraft dosyası, Minecraft'ın kolay kontrolüne izin vermek için geliştirilmiştir.
mc = Minecraft.create ()
Bu çizgi “mc” (Minecraft) adlı bir nesne oluşturur. Minecraft oyunuyla iletişime izin vermek için bunu oluşturmanız gerekir - sadece dosyayı dahil etmek yeterli değildir.
mc.postToChat ("Merhaba Dünya!")
Son olarak, bu satır Minecraft'a sohbete bazı metinler yazmasını söyler. "Merhaba Dünya!" başka bir şeye bakın ve ne olduğunu görün, ancak her iki çift tırnak işareti eklemeyi unutmayın. Yazılım sorunlarınız varsa, bunlar bazı yaygın Python ve Minecraft Pi hatalarıdır:
- AttributeError - Bu, baskı yerine pint veya prnt gibi bir yazım hatasıdır
- NameError: "Minecraft" adı tanımlanmadı - ihtiyacınız olan modülleri içe aktarmayı unutmayın
- NameError: "true" adı tanımlanmadı - Python büyük / küçük harfe duyarlıdır, "True" olarak değiştirin
- socket.error: [Errno 111] Bağlantı reddedildi - Minecraft'ın çalıştığından emin olun
Projeler
Şimdi Python ve Minecraft'ın temellerini bildiğinize göre, bazı harika projeler yapalım. Tüm kodek, Github.
Otomatik Köprü Oluşturucu

Bu program su üzerinde etkili bir köprü kuracaktır. Oyuncu bir su kütlesine yaklaştığında, program birkaç bloğu taşa dönüştürecektir. Minecraft bir koordinat sistemi kullandığından, oynatıcının etrafındaki blok türüyle birlikte oynatıcının konumunu almak çok kolaydır. Minecraft Pi biraz sınırlıdır, bu nedenle birden fazla farklı bloğu toplu olarak güncellemek mümkün değildir. Ancak bu davranışı kendiniz kolayca kodlayabilirsiniz.
Yeni bir dosya oluştur (Dosya> Yeni Dosya) ve "bridge_builder.py“.
mcpi.minecraft ithalat Minecraft gelen. mc = Minecraft.create () # True iken Minecraft Nesnesi oluştur: x, y, z = mc.player.getPos () # mağaza oyuncu pozisyonu # çevreleyen blokları depola a = mc.getBlock (x, y - 1, z + 1) b = a == ise mc.getBlock (x, y - 1, z - 1) c = mc.getBlock (x - 1, y - 1, z) d = mc.getBlock (x + 1, y - 1, z) 8 veya a == 9 veya b == 8 veya b == 9 veya c == 8 veya c == 9 veya d == 8 veya d == 9: # 8 veya 9 Su. Mc.setBlocks (x, y - 1, z, x + 1, y - 1, z + 1, 1) mc.setBlocks bulunursa zemindeki çevre bloklarını katı (taş) olarak ayarlayın. (x, y - 1, z, x - 1, y - 1, z - 1, 1) mc.setBlocks (x, y - 1, z, x - 1, y - 1, z + 1, 1) mc .setBlocks (x, y - 1, z, x + 1, y - 1, z - 1, 1)
Y değerinin aslında y - 1'e nasıl baktığına dikkat edin. Bu yer seviyesidir. Eğer y değeri kullanılmışsa, betik diz seviyesinde bloklar arayacaktır - çok iyi çalışmaz! Mc.getBlock () verilen koordinatlar için bir bloğun kimliğini döndürür. X, y ve z oynatıcının koordinatları olduğundan, oynatıcının etrafındaki konumları almak için bunlara toplama ekleyebilir veya çıkarabilirsiniz. X, y ve z değerlerini kullanmak zorunda değilsiniz, herhangi bir sayı kullanabilirsiniz, ancak bu bloğun oynatıcıyla nasıl ilişkili olduğunu bilemeyebilirsiniz - oynatıcıya göre değerleri kullanmak daha iyidir. Bu dosyayı komut satırından çalıştırın ve ne olduğunu görün.
Oyuncu bir su kütlesine ulaştığında küçük bir zemin alanının taşa dönüştüğünü görmelisiniz. Harika değil - bir soruna neden olacak kadar hızlı yürüyebilirsiniz. Bunu daha büyük miktarda suyu karaya dönüştürerek çözebilirsiniz. Mc.setBlocks () yönteminin son kısmı blok kimliğidir. Biri taş için blok kimliği. Bunu ahşap, çim veya herhangi bir şeye dönüştürebilirsiniz. İsterseniz, bunu kolayca karmaşık bir tasarıma dönüştürebilirsiniz - belki bir asma köprü!
Süper Madencilik Düğmesi

Bu örnek madenciliğin kısa çalışmasını sağlayacaktır. Basıldığında 10 blok küplenmiş fiziksel bir düğmeden oluşur. Düğmeyle başlayalım. Arduino'daki düğmelere benzer şekilde, hepsi bir arada bulunması gereken az miktarda elektronik parçaya ihtiyacınız olacak. temel başlangıç kiti Arduino Başlangıç Setinizde neler var? [Arduino Yeni Başlayanlar]Elektronik bileşenlerle dolu bir kutu ile karşı karşıya kaldığınızda bunalmak kolaydır. Kitinizde tam olarak ne bulacağınıza dair bir kılavuz. Daha fazla oku :
- 1 x Breadboard
- 1 x anlık anahtar
- 1 x 220 ohm direnç
- Kadın> erkek atlama kabloları
- Erkek> Erkek atlama kabloları
Devre şu:

Bu dirence “aşağı çekme” direnci denir. Pi'nin basıldığı düğmenin, gerçekten düğmeye basıldığını düşündüğünden emin olmanıza yardımcı olur. Bunu kullanmak zorunda değilsiniz, ancak onsuz çok fazla gürültü ve yanlış okumalar bulabileceğiniz için önerilir.
Düğme Genel Amaçlı Giriş Çıkış (GPIO) pim 14'e bağlanır. Herhangi bir GPIO pinini kullanabilirsiniz, ancak Pin yapısı Birincisi, hepsi Pi'den kontrol edilemediğinden ve modeller arasında biraz farklılık gösterir.
Artık düğme bağlandığına göre, test etme zamanı. Yeni bir dosya oluşturun ve “button_test.py“. Bu kodu ekleyin, kaydedin ve sonra Terminal'de çalıştırın.
ithalat RPi. GPIO olarak GPIO. içe aktarma zamanı GPIO.setmode (GPIO.BCM) # Pi'ye hangi başlıkları kullanacağını söyler. GPIO.setup (14, GPIO.IN) # Pi'ye bu pinin bir giriş olduğunu söyleyin True: if GPIO.input (14) == True: # düğmesine basın "BUTTON WORKS!" # log sonuç time.sleep (0,5) # 0,5 saniye bekleyin.
Basın Ctrl + C komut dosyasını durdurmak için. Her şey doğru çalışıyorsa, “DÜĞME İŞLERİ” ni görmelisiniz. Terminalde. Minecraft modülü gibi bu testin RPi'yi nasıl kullandığına dikkat edin. GPIO ve zaman modülleri. Bunlar Pi'nin donanım pinlerine erişmesine ve yararlı zamanlama fonksiyonları sağlamasına izin verir.
Şimdi kodun geri kalanını bitirelim. Yeni bir çağrı yapıldı “super_mine.py“. İşte kod:
ithalat RPi. GPIO olarak GPIO. ithalat zamanı. mcpi.minecraft import from Minecraft mc = Minecraft.create () # create Minecraft Nesnesi GPIO.setmode (GPIO.BCM) # Pi'ye hangi başlıkları kullanacağını söyle. GPIO.setup (14, GPIO.IN) # Pi'ye bu iğnenin bir giriş olduğunu söyle Doğru: eğer GPIO.input (14) == Doğru: # düğmeye basın x, y, z = mc.player.getPos ( ) # oynatıcıyı oku pozisyon mc.setBlocks (x, y, z, x + 10, y + 10, z + 10, 0) # mayın 10 blok mc.setBlocks (x, y, z, x - 10, y + 10, z - 10, 0) # mayın 10 blok zaman. Uyku (0.5) # bekleme 0.5 saniye.
mc.player.getPos () oyuncuların o anki koordinatlarını döndürür; bunlar daha sonra x, y ve z'de saklanır. setBlocks () yöntemi Minecraft'a başlangıç ve bitiş arasındaki tüm blokları aşağıdaki blokla doldurmasını söyler. Sıfır, hava için blok kimliğidir. Bir alanı katı doldurmak için bunu başka bir blok kimliğiyle değiştirebilirsiniz. Koordinatları +100 hatta +1000 blok olarak da değiştirebilirsiniz, ancak Pi çok çılgınlaşırsanız mücadele etmeye başlayabilir. Her iki satır için y + 10'un nasıl aynı olduğuna dikkat edin. Yeraltındaki blokları kaldırmak istiyorsanız bunu y - 10 olarak değiştirebilirsiniz.
Teleporting

Bu düğme için bir başka basit kullanım da “ışınlanmak” olabilir. Minecraft Pi Api, oyuncu konumunu ayarlamak için bir yol sağlar. Aşağıdaki kod, oynatıcıyı önceden ayarlanmış bir konuma “ışınlar”:
mc.player.setPos (0, 0, 0)
Yönteminin üç parametre kabul ettiğini unutmayın; x, y ve z - böylece oynatıcıyı o konuma anında ışınlamak için herhangi bir şeye ayarlayabilirsiniz.
Super_mine dosyasının bir kopyasını oluşturun (Dosya> Kopyayı Farklı Kaydet) ve if ile aşağıdakileri değiştirerek değiştirin:
GPIO.input (14) == True: # düğmesine basın. mc.player.setPos (0, 0, 0) # teleport oynatıcısı time.sleep (0.5) # 0.5 saniye bekleyin.
Bu dosya şimdi şöyle görünmelidir:
ithalat RPi. GPIO olarak GPIO. mcpi.minecraft ithalat Minecraft gelen. import time mc = Minecraft.create () # Minecraft Nesnesi Oluştur GPIO.setmode (GPIO.BCM) # Pi'ye hangi başlıkları kullanacağını söyle. GPIO.setup (14, GPIO.IN) # Pi'ye bu PIN'in bir giriş olduğunu söyleyin True: if GPIO.input (14) == True: # düğmesine basın için basın mc.player.setPos (0, 0, 0) # teleport çalar time.sleep (0.5) # bekleyin 0.5 saniye.
"teleport.py" ve koş.
Bunu kullanırken oynatıcının bazı blokların içinde sıkışıp kaldığını görebilirsiniz, bu durumda koordinatları bilinen bir açık alana ayarlayın (ekranın sol üst kısmı akımınızı gösterir yer).
Ev inşa et

Bu düğme için son bir görev bir ev inşa etmektir. Yukarıdaki hızlı madencilik örneği gibi, bu da bir ev yapmak için oyuncuyu çevreleyen blokların yerini alacak. Farklı malzemeler (pencere, duvar vb.) İçin farklı blok kimlikleri kullanılacaktır. İşlerin kodlanmasını kolaylaştırmak için sağlam bir blok oluşturulacak ve daha sonra iç kısım kaldırıldı (bloğu havaya ayarlayın), bu içi boş bir kabuk oluşturacaktır. Bir yatak veya kapı gibi ekstralar ekleyebilirsiniz, ancak Minecraft Pi projesi biraz eksiktir ve bu nesneler oyuncu tarafından yerleştirildiğinde çalışır, Python kullanırken parlak değildir.
mcpi.minecraft ithalat Minecraft gelen. ithalat RPi. GPIO olarak GPIO. import time mc = Minecraft.create () # Minecraft Nesnesi Oluştur GPIO.setmode (GPIO.BCM) # Pi'ye hangi başlıkları kullanacağını söyle. GPIO.setup (14, GPIO.IN) # Pi'ye bu iğnenin bir giriş olduğunu söyler True: if GPIO.input (14) == True: x, y, z = mc.player.getPos () mc.setBlocks ( x + 2, y - 1, z + 2, x + 7, y + 3, z + 8, 5) # kabuk mc.setBlocks yap (x + 3, y, z + 3, x + 6, y + 2, z + 7, 0) # mc.setBlocks içinde kaldır (x + 2, y, z + 5, x + 2, y + 1, z + 5, 0) # giriş kapısı mc.setBlocks (x + 4, y + 1, z + 8, x + 5, y + 1, z + 8, 102) # pencere oluşturma 1 mc. SetBlocks (x + 4, y + 1, z + 2, x + 5, y + 1, z + 2, 102) # pencere 2 yap mc.setBlocks (x + 7, y + 1, z + 4, x + 7, y + 1, z + 6, 102) # pencere oluştur 3.
Bunu “house.py" ve koş. Her şey yolunda, küçük bir evin göründüğünü görmelisiniz (bulmak için geri dönmeniz gerekebilir). Çok basit, bir açıklık ve bazı pencereler. Teorik olarak, bir binayı ne kadar büyük veya karmaşık inşa edebileceğiniz konusunda bir sınır yoktur.
Mini Oyun Yap

Şimdi bir mini oyun yapalım! Bu oldukça basit olacak, oyuncu bir kum bloğuna bastığında, rastgele bir süre sonra lavlara dönüşecek. Bu, kendi seviyelerinizi tasarlayabileceğiniz veya işleri zorlaştırmak için değiştirebileceğiniz gibi yapmak için iyi bir oyundur. Bu örnek için düğmeye ihtiyacınız olmayacak.
Yeni bir dosya oluşturun ve “mini_game.py“. İşte kod:
mcpi.minecraft ithalat Minecraft gelen. rasgele içe aktar. import time mc = Minecraft.create () # True iken Minecraft Nesnesi oluşturun: x, y, z = mc.player.getPos () block_under_player = mc.getBlock (x, y - 1, z) block_under_player == 12: # oyuncu kum üzerinde duran, zamanlayıcıyı başlatın random_time = random.uniform (0.1, 2.5) # rastgele sayı üretmek time.sleep (Random_time); # wait mc.setBlock (x, y - 1, z, 11) # lav haline getirin.
Bu kod, Rastgele () fonksiyon: rastgele. üniforma (0.1, 2.5) 0.1 (1/10 saniye) ve 2.5 (2 1/2 saniye) arasında rastgele bir sayı üretecektir. Bu sayıları artırmak oyunu kolaylaştırır.
Denemek! Bir kum bloğu üzerinde durun ve kısa sürede lav haline gelecektir. Bu daha karmaşık bir oyunun temeli olabilir.
Başka Bir Mini Oyun Yap

Bu oyunun temeli basittir - zaman bittiğinde ahşap zemin üzerinde durmayın. Oyuncu bir “arenaya” ışınlanır. Oyun başlayana kadar hareketsiz durmaya zorlanırlar. Bir kez başlatıldığında, zamanlayıcı bittiğinde zemin suya döner. Oyuncunun hayatta kalabilmesi için güvenli bölgede (elmas bloklar) durması gerekir. Her seviye zamanlayıcıyı bir saniye azaltır. Her başarılı seviyeden sonra güvenli alan büyür. Aşağıdaki kodu inceleyin:
ithalat zamanı. rasgele içe aktar. mcpi.minecraft ithalat Minecraft mc = Minecraft.create () # Minecraft Nesne # açık alan oluşturun. mc.setBlocks (-10, 1, -10, 25, 5, 25, 0) # arena kabuğu oluştur. mc.setBlocks (0, 0, 0, 25, 10, 25, 17) # arena oymak. mc.setBlocks (1, 1, 1, 24, 10, 24, 0) # oyuncuyu arenaya taşı. mc.player.setPos (14, 25, 20) # ışınlanma oyuncusu # onların kalmasını sağlayın. # teleport oynatıcısı her 1/10 saniyede bir başlama pozisyonuna. # 5 saniye yapın, sonra oyuna başlayın. uyku. (2) total_wait = 0. mc.postToChat ("Başlamak için Bekliyor") total_wait <5: mc.player.setPos (14, 1, 20) # teleport oyuncusu time.sleep (0.1) total_wait + = 0.1 mc.postToChat ("BEGIN!") # 10 seviye. (10) aralığındaki seviye için: x, y, z = mc.player.getPos () level_time = 10 - seviye # her seviye için zamanı 1 saniye azaltın mc.postToChat ("Seviye -" + str (seviye + 1) + "başlat") # build floor mc.setBlocks (0, 0, 0, 25, 0, 25, 17) # güvenli alanı oluştur safe_area_start = random.uniform (0, 22) safe_area_end = random.uniform (0, 22) mc.setBlocks (safe_area_start, 0, safe_area_end, safe_area_start + seviye, 0, safe_area_end + seviye, 57) ela_ed_time = 0 elapsed_time <10: x, y, z = mc.player.getPos () time.sleep (0.25) elapsed_time + = 0.25 # y <0.75: mc.postToChat ("Oyun Over ") sonu; else: # floor. mc.setBlocks kaldır (-10, 0, -10, 25, 0, 25, 8) # güvenli alanı geri mc.setBlocks koy (safe_area_start, 0, safe_area_end, safe_area_start + seviye, 0, safe_area_end + seviye, 57) time.sleep (2.5) ara vermeye devam et.
Bunu “mini_game_2.py”Ve koşun.
Pi 2, Minecraft'ı çalıştırırken bazı performans sorunlarına sahiptir. Merkezi İşlem Birimi (CPU) kullanım grafiği (sağ üst köşe) hiçbir zaman ağır yük göstermez, bu nedenle bu geliştiriciler tarafından kötü tasarım ve optimizasyona bağlı olmalıdır. Bu sorunlar çalışan kodla ilgisizdir (Python çalışmadığı zaman devam ederler), ancak bu mini oyun tarafından birleştirilirler. Pi'niz gerçekten mücadele ediyorsa, arenanın boyutunu küçültmek isteyebilirsiniz veya Pi'nizi hızaşırtın Yeterli Meyve Suyu Değil mi? Overccking Tarafından Raspberry Pi Sıkın2012'de piyasaya sürülecek herhangi bir donanım varsa, İngiltere'de tasarlanmış ve inşa edilmiş mini bir bilgisayar olan şekerli tatlı Ahududu Pi ... Daha fazla oku .
Elmas Dedektörü

Hadi başka bir devre yapalım. Bu, altında elmaslar olduğunda (15 blok içinde) yanmak için bir Işık Yayan Diyot (LED) kullanacaktır. İhtiyacınız olan şey:
- 1 x Breadboard
- 1 x LED
- 1 x 220 ohm direnç
- Kadın> erkek atlama kabloları
- Erkek> Erkek atlama kabloları
Devre şu:

Anotu (uzun bacak) GPIO Pin 14'e bağlayın. Bu pim + 5v gibi davranır. Katot (kısa bacak) 'yı toprağa bağlayın.
Ucuz bir cevher oyuncağı kullandım ve arka kapağı ve elektroniği kaldırarak değiştirdim, daha sonra altına bir LED yerleştirdim. Bunu sıcak tutkal veya benzeri bir şeyle kolayca kalıcı hale getirebilirsiniz.

Bu kodu “diamonds.py“:
ithalat RPi. GPIO olarak GPIO. ithalat zamanı. mcpi.minecraft import from Minecraft mc = Minecraft.create () # create Minecraft Nesnesi led_pin = 14 # GPIO pin numarasını saklayın GPIO.setmode (GPIO.BCM) # Pi'ye hangi başlıkları kullanacağını söyleyin. GPIO.setup (14, GPIO.OUT) # Pi'ye bu pinin bir çıkış olduğunu söyleyin True: # aralıksız olarak tekrarlayın x, y, z = mc (play ).getPos () i (15) aralığında i: # kadar engelle mc.getBlock ise blok 15 (x, y - i, z) == 56: GPIO.output (led_pin, Doğru) # time.sleep (LED_pin, True) # dönüş LED'i kapalı zaman. uyku (0.25) # Bekle.
Müzikçaların altında bir elmas cevheri bloğu olduğunda (15 blok içinde) ışık yanıp söner.
Minecraft Pi ile harika bir şey yaptın mı? Yorumlarda, oyunlarda ne yaptığınızı veya ne kadar ilerlediğinizi bana bildirin.
Joe, İngiltere Lincoln Üniversitesi Bilgisayar Bilimi mezunudur. Profesyonel bir yazılım geliştiricisidir ve uçağı uçurmadığı veya müzik yazmadığı zamanlarda, genellikle fotoğraf çekerken veya video üretirken bulunabilir.