Minecraft Pi Edition ile Python ve Elektroniği Öğrenin

  • Michael Fisher
  • 0
  • 3473
  • 311
reklâm

Her zaman kodlamayı öğrenmek istedin ama nereden başlayacağını bilemedin mi? Raspberry Pi'de Minecraft'ı Python ve bazı basit elektronik aletlerle nasıl kontrol edebileceğinizi öğrenin. İşte sonuç:

Bu proje için bir Pi 2 veya daha yenisine ihtiyacınız olacak ve bu görevlerin çoğunu Secure Shell (SSH) komut satırıyla tamamlayabilseniz de, bu eğitim doğrudan Pi kodlamasına odaklanacak.

Minecraft'ta yeni misiniz? Endişelenmeyin - işte Minecraft Acemi Başlangıç ​​Kılavuzu (Son Gelenler) Yeni Başlayanlar Minecraft'ın İfadesi (Erken Gelenler) Başlangıç ​​Kılavuzu Minecraft'ın İlerleme Partiye geç kaldıysanız, endişelenmeyin - bu kapsamlı başlangıç ​​kılavuzu sizce. .

Minecraft Pi'ye Giriş

Ahududu Pi için Minecraft, öğrenme ve eğitim için geliştirilmiştir (ve ücretsizdir). Kodun Minecraft ile kolayca konuşması için bir yol sağlayan bir Uygulama Programlama Arayüzü (API) ile birlikte gelir. Python'da nasıl kod yazılacağını öğrenmek ve aynı zamanda elektronik ile başlamak için mükemmeldir. Acemi Elektronik: Bilmeniz Gereken 10 Beceri Acemi Elektronik: Bilmeniz Gereken 10 Beceri Birçoğumuz hiçbir zaman lehim havyası bile kullanmadı - inanılmaz ödüllendirici. İşte başlamanıza yardımcı olacak en temel DIY elektronik becerilerinden biri. .

Python Nedir??

Python bir programlama dilidir. Bu yorumlanır, Bu, bir Python dosyasını veya programını çalıştırdığınızda, bilgisayarın önce dosyaya küçük bir çalışma yapması gerektiği anlamına gelir. Dezavantajları, derlenmiş dillerle karşılaştırıldığında yavaş sayılabilir..

Tercüme edilen dillerin faydaları, kodlamanın hızı ve onların dostu olmalarıdır. Bilgisayara söylemene gerek yok ne saklamak istediğiniz verileri, bir şeyi saklamak istediğinizi ve bilgisayar ne yapacağınızı çözecektir. Elbette istisnalar da var ve bu biraz basitleştirilmiş bir görünüm, ancak programlama eğlenceli olmalı! Karmaşık teknik ayrıntılara kazmaya başlarsanız, biraz zahmetli olabilir.

Python küçük harfe duyarlıdır. Python nesneleri tanımayacağından, bunu bilmek önemlidir. doğru yazılsa bile dava yanlışsa. “Bir şey yap()” yöntem aslında denirse işe yaramaz “Bir şey yap()”. Python ayrıca girinti kullanır. Diğer programlama dilleri, kodunuzun kaç tane girintiye sahip olduğunu umursamayabilir, Python ise yapar bakım. Girintiler, Python'a kodun nereye ait olduğunu bildirmek için kullanılır. Diğer diller kullanabilir “Kıvırcık Parantez” () grup koduna - Python bunları kullanmaz. Python, yorumlar için bir karma işareti (#) kullanır ve yorumlar, diğer geliştiricilere veya koda bakan kişilere belirli bir bölümün ne yaptığını veya neden gerekli olduğunu söylemek için kullanılır. Python bir karmaşanın ardından her şeyi görmezden gelir.

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 (farklar nelerdir?). Bu eğitim Python 3'ü kullanacak.

İlk kurulum

Pi'niz zaten kuruluyor ve çalışıyor durumda Raspbian çalışıyor Raspberry Pi'nizde İşletim Sistemi Nasıl Kurulur Raspberry Pi'nizde İşletim Sistemi Kurulur İşte Raspberry Pi'nizde bir işletim sistemi nasıl kurulur ve hızlı bir felaket kurtarma için mükemmel kurulumunuzu nasıl klonlarsınız? . , ilk kurulum gerekli değil.

Terminali Aç (Menü> Aksesuarlar> Terminal) ve bu komutu çalıştırın. Depo listesini güncel tutmak her zaman iyi bir uygulamadır ve bu program en son programların indirilmesini sağlar (programların kendilerini indirmeyecek, bu Pi'nin hangi programların çağrıldığını ve nerede bulacağını bilmesine yardımcı olacaktır).

sudo apt-get update 

Şimdi Pi'yi güncelleyin (bu biraz zaman alabilir):

sudo apt-get upgrade 

Python ve Minecraft Pi zaten kuruludur, ancak Minecraft Pi'nin herhangi bir nedenden ötürü kurulmaması durumunda, 5 Ahududu Pi'ye Yazılım Yüklemenin 5 Yolu Ahududu Pi Üzerine Yazılım Yüklemenin 5 Yolu Ahududu Pi ile Her Şey Yapmak Bir işletim sisteminin nasıl kurulacağını ve üzerinde çalışacak yazılımı bilmeniz gerekir. Linux'ta yeniyseniz, bu korkutucu olabilir. :

sudo apt-get install minecraft-pi

Belgelere gidin ve yeni bir klasör oluşturun. “Minecraft”:

cd Belgeler / mkdir Minecraft

Bu yeni klasörün içeriğini görüntüleyebilirsiniz:

ls

İşte size bir ipucu - yazmaya başlar ve SEKME tuşuna basarsanız, komut satırı ifadeyi sizin için otomatik olarak tamamlamaya çalışır..

Çalışma Dizini Yazdır çalışma dizini olan pwd'yi kullanarak geçerli dizine giden yolu inceleyebilirsiniz:

pwd

Minecraft’a giderek Menü> Oyunlar> Minecraft Pi. Bu koşuya ihtiyacınız olacak, ancak daha sonra geri döneceksiniz.

Python 3’ü Menü> Programlama> Python 3 (IDLE). Bu program Python komutlarını çalıştırmanız ve program yazmanız için bir yol sağlar..

Şimdi Python komutlarınızı buraya yazabilirsiniz, ancak bu pek pratik değil. Git Dosya> Yeni Dosya ve sonra Dosya> Kaydet ve bunu daha önce oluşturduğunuz klasöre kaydedin. (Belgeler> Minecraft). Haydi arayalım “hello_world.py“. .Py uzantısını kullanmak zorunda değilsiniz, bu otomatik olarak eklenecektir, ancak bu iyi bir uygulamadır.

Terminale geri dönüp Minecraft klasörüne göz atarsanız, az önce oluşturduğunuz dosyayı görmelisiniz:

cd Minecraft / ls

Bu dosyayı şöyle çalıştırabilirsiniz:

python Instagram Hesabındaki Resim ve Videoları hello_world

Nasıl olduğunu fark et “piton” tüm küçük harf. Bu, Pi'nin aşağıdaki dosyanın Python olduğunu söylediği için, dosya adından önce olması gerekir, bu şekilde çalıştırılmalıdır..

Python editörüne geri dönün ve şunu yazın:

yazdır "Merhaba, Dünya!"

Bu dosyayı kaydedin ve tekrar çalıştırın - şimdi görmelisiniz “Selam Dünya!” komut satırında görünür - temiz! Print komutu Python'a aşağıdaki metni çift tırnakla basmasını söyler. Bu iyi, fakat Minecraft için çok faydalı değil, hadi bağlantı kuralım:

mcpi.minecraft import Minecraft mc = Minecraft.create () mc.postToChat ("Merhaba, Dünya!") 

Şimdi bu dosyayı kaydedip çalıştırırsanız, görmelisiniz. “Selam Dünya!” Minecraft oyunda görünür. Hadi kodu kıralım:

mcpi.minecraft İthalat Minecraft

Bu satır Python'a başka bir dosyadan kod kullanmak istediğinizi bildirir. Bu mcpi.minecraft dosyası Minecraft'ın kolay kontrolünü sağlamak için geliştirilmiştir.

mc = Minecraft.create ()

Bu çizgi denilen bir nesne yaratır. “mc” (Minecraft). Bunu Minecraft oyunuyla iletişime izin vermek için oluşturmanız gerekir - sadece dosyayı eklemek yeterli değildir.

mc.postToChat ("Merhaba, Dünya!")

Son olarak, bu satır Minecraft'a sohbete bir metin yazmalarını söyler. Değiştirmeyi dene “Selam Dünya!” başka bir şeye ve ne olduğunu görün, ancak her iki alıntıyı da eklemeyi unutmayın. Yazılım sorunlarınız varsa, bunlar bazı genel 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 almayı unutmayın
  • NameError: 'true' adı tanımlanmadı - Python büyük / küçük harf duyarlıdır, “Doğru”
  • 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, harikulade projeler yapalım. Kodekerin tümü Github'dan indirilebilir..

Otomatik Köprü Oluşturucu

Bu program etkili bir şekilde su üzerinde bir köprü kuracak. Oyuncu bir su kütlesine yaklaştığında, program birkaç bloğu taşa dönüştürür. Minecraft bir koordinat sistemi kullandığından, oynatıcının yerini ve oynatıcının etrafındaki blok türünü bulmak çok kolaydır. Minecraft Pi biraz sınırlıdır, bu nedenle birden fazla bloğu toplu olarak güncellemek mümkün değildir. Bununla birlikte, bu davranışı kendiniz kolayca kodlayabilirsiniz..

Yeni bir dosya oluştur (Dosya> Yeni Dosya) ve kaydedin “bridge_builder.py“.

mcpi.minecraft import Minecraft mc = Minecraft.create () # true iken Minecraft Nesnesi oluşturun: x, y, z = mc.player.getPos () # saklamak oyuncu pozisyonu # çevreleyen blokları saklamak a = mc.getBlock (x, y - 1, z + 1) b = mc.getBlock (x, y - 1, z - 1) c = mc.getBlock (x - 1, y - 1, z) d = mc.getBlock (x + 1, y - 1, z) eğer bir == 8 veya a == 9 veya b == 8 veya b == 9 veya c == 8 veya c == 9 veya d == 8 veya d == 9 ise: # 8 veya 9 sudur. Su mc.setBlocks (x, y - 1, z, x + 1, y - 1, z + 1, 1) bulunursa zemindeki blokları katıya (taş) ayarlayın. 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) mc.setBlocks (x, y - 1, z, x + 1, y - 1, z - 1, 1) 

Y değerinin gerçekte y - 1'e nasıl baktığını görün. Y'nin değeri kullanılsaydı, senaryo diz seviyesindeki blokları arardı - çok iyi çalışmazdı! 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ında konum elde etmek için bunlardan ekleme veya çıkarma yapabilirsiniz. X, y ve z değerlerini kullanmak zorunda değilsiniz, herhangi bir sayıyı kullanabilirsiniz, ancak belirli bir bloğun oyuncu ile olan ilişkisini bilmiyor olabilirsiniz - oyuncuya göre değerleri kullanmak daha iyidir. Bu dosyayı komut satırından çalıştırın ve ne olacağını görün.

Oyuncu bir su kütlesine ulaştığında, küçük bir zeminin taşa döndüğünü görmelisiniz. Harika değil - bir soruna neden olacak kadar hızlı yürüyebiliyorsunuz. Bunu daha büyük miktarda suyu toprağa dönüştürerek çözebilirsiniz. Mc.setBlocks () yönteminin son bölümü blok kimliğidir. Bir tanesi taş için blok kimliği. Bunu tahtaya, çime veya başka bir şeye değiştirebilirsin. İsterseniz bunu kolayca karmaşık bir tasarıma, belki de bir asma köprüye dönüştürebilirsiniz.!

Süper Maden Düğmesi

Bu örnek madenciliğin kısa çalışmasını sağlayacaktır. Bu, basıldığında 10 küp küp çıkacak olan fiziksel bir düğmeden oluşur. Düğmeyle başlayalım. Arduino'daki düğmelere benzer şekilde, tümü temel bir başlangıç ​​kitinde bulunması gereken küçük bir elektronik bileşene ihtiyacınız olacak. Arduino Başlangıç ​​Kitinizde Neler Var? [Arduino Yeni Başlayanlar] Arduino Başlangıç ​​Kitinizde Neler Var? [Arduino Yeni Başlayanlar] Elektronik bileşenlerle dolu bir kutu ile karşı karşıya kaldıklarında bunalmış olmak kolaydır. Kitinizde tam olarak ne bulacağınıza dair bir kılavuz. :

  • 1 x Breadboard
  • 1 x anlık anahtar
  • 1 x 220 ohm direnç
  • Dişi> erkek atlama kabloları
  • Erkek> Erkek atlama kabloları

İşte devre:

Bu direnç denir “aşağı çek” direnç. Pi'nin düşündüğünün düğmeye basıldığını, gerçekten de düğmeye basıldığından emin olmaya yardımcı olur. Bunu kullanmak zorunda değilsiniz, ancak tavsiye edilmez, çünkü çok fazla gürültü ve yanlış okuma bulabilirsiniz..

Düğme, Genel Amaçlı Giriş Çıkışı (GPIO) pim 14'e bağlanmıştır. Herhangi bir GPIO pimi kullanabilirsiniz, ancak Pi'den kontrol edilemediklerinden ilk önce pin çıkışı inceleyebilir ve modeller arasında biraz farklılık gösterebilir.

Şimdi düğme bağlı olduğu zaman, test etme zamanı geldi. Yeni bir dosya oluşturun ve kaydedin. “button_test.py“. Bu kodu ekleyin, kaydedin ve Terminalde çalıştırın.

RPI.GPIO'yu GPIO olarak içe aktarma zamanı içe aktar GPIO.setmode (GPIO.BCM) #, Pi'ye GPIO.setup (14, GPIO.IN) kullanmak için hangi başlıkların kullanılacağını söyleyin # Pi'ye bu pimin True iken bir girdi olduğunu söyleyin: (14) == Doğru: # "BUTON ÇALIŞIYOR!" # log sonuç time.sleep (0.5) # 0,5 saniye bekle 

Basın Kontrol + C komut dosyasını durdurmak için. Her şey doğru çalışıyorsa görmelisiniz “DÜĞME İŞLERİ!” Terminalde Minecraft modülü gibi bu testin RPi.GPIO ve zaman modüllerini nasıl kullandığına dikkat edin. 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 filecalled oluştur “super_mine.py“. İşte kod:

RPI.GPIO'yu GPIO olarak alma süresi mcpi.minecraft'tan içe aktar Minecraft mc = Minecraft.create () # create Minecraft Object GPIO.setmode (GPIO.BCM) # Pi'ye GPIO.setup (14, GPIO.IN kullanacağınız başlıkları kullan ) # Pi'ye bu pinin bir giriş olduğunu söyleyin Doğru: if GPIO.input (14) == Doğru: # x, y, z = mc.player.getPos () # tuşlarına basın # # mc.setBlocks oyuncu pozisyonunu okuyun (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) # maden 10 blok time.sleep (0.5) # 0,5 saniye bekle 

mc.player.getPos () oyunculara o anki x, y ve z olarak kaydedilen koordinatları verir. setBlocks () yöntem, Minecraft'a başlangıç ​​ve bitiş arasındaki tüm blokları aşağıdaki blokla doldurmasını söyler. Sıfır, havanın blok kimliğidir. Bir alanı katı doldurmak için bunu başka bir blok kimliğiyle değiştirebilirsiniz. Ayrıca koordinatları +100 veya hatta +1000 blok olarak değiştirebilirsiniz, ancak çok fazla delirirseniz Pi mücadele etmeye başlayabilir. Her iki satırda da y + 10'un 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 olabilir “ışınlanma”. Minecraft Pi Api, oyuncu pozisyonunu ayarlamak için bir yol sağlar. Aşağıdaki kod “ışınlanma” Müzikçalar önceden belirlenmiş bir yere:

mc.player.setPos (0, 0, 0)

Yönteminin üç parametre kabul ettiğini unutmayın; x, y ve z - böylece müzikçaları bu konuma anında ışınlayacak bir şeye koyabilirsiniz.

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:

eğer GPIO.input (14) == Doğru: # tuşa basınız mc.player.setPos (0, 0, 0) # teleport oynatıcı time.sleep (0.5) # bekleyiniz 0.5 saniye 

Bu dosya şimdi şöyle görünmelidir:

mcpi.minecraft'dan GPIO olarak RPi.GPIO içeri aktarma Minecraft içe aktarma süresi mc = Minecraft.create () # yarat Minecraft Nesne GPIO.setmode (GPIO.BCM) # Pi'ye GPIO.setup (14, GPIO.IN kullanacağınız başlıkları kullan ) # Pi'ye bu pinin bir giriş olduğunu söyleyin Doğru: if GPIO.input (14) == Doğru: # tuşa basın mc.player.setPos (0, 0, 0) # teleport player time.sleep (0.5) # 0,5 saniye bekle 

Olarak kaydet “teleport.py” ve koş.

Bunu kullanırken oyuncunun bazı blokların içinde sıkışmış olduğunu görebilirsiniz; bu durumda koordinatları bilinen bir açık alana ayarlamanız gerekir (ekranın sol üstündeki geçerli konumunuzu gösterir)..

Ev inşa et

Bu düğme için son görev, bir ev inşa etmektir. Yukarıdaki hızlı araştırma örneğindeki gibi, bu sadece oyuncuyu çevreleyen blokların yerini bir ev haline getirecek. Farklı malzemeler (pencere, duvar vb.) İçin farklı blok kimlikleri kullanılacaktır. Kodlama işlerini kolaylaştırmak için sağlam bir blok oluşturulacak ve daha sonra içerden çıkarılacak (bloğu havaya ayarlanmış), bu içi boş bir kabuk oluşturacaktır. Bir yatak veya kapı gibi ekstralar ekleyebilirsiniz, ancak Minecraft Pi projesi biraz eksik ve bu nesneler oyuncu tarafından yerleştirilirken çalışsa da Python kullanırken zekice değiller..

mcpi.minecraft import Minecraft import RPI.GPIO GPIO alma zamanı olarak mc = Minecraft.create () # create Minecraft Object GPIO.setmode (GPIO.BCM) # Pi'ye GPIO.setup (14, GPIO.IN kullanacağınız başlıkları kullan ) # Pi’ye bu pinin True iken bir girdi olduğunu söyleyin: eğer GPIO.input (14) == Doğru: x, y, z = mc.player.getPos () mc.setBlocks (x + 2, y - 1, z +2, x + 7, y + 3, z + 8, 5) # kabuk yap mc.setBlocks (x + 3, y, z + 3, x + 6, y + 2, z + 7, 0) # kaldır mc.setBlocks içinde (x + 2, y, z + 5, x + 2, y + 1, z + 5, 0) # kapıyı aç mc.setBlocks (x + 4, y + 1, z + 8, x + 5, y + 1, z + 8, 102) # 1 penceresini yapar. 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 3'ü ayarla 

Bunu farklı kaydet “house.py” ve koş. Her şey yolunda, küçük bir evin göründüğünü görmelisiniz (bulmak için etrafa dönmeniz gerekebilir). Çok basit, bir açılış ve bazı pencereler. Teoride, bir binayı inşa etmenin ne kadar büyük ya da karmaşık olduğu konusunda bir sınır yoktur..

Mini Oyun Yap

Sonra bir mini oyun yapalım! Bu oldukça basit olacaktır, oyuncu bir kum blokuna basarsa, rastgele bir süre sonra lavlara dönüşür. Bu, kendi seviyenizi tasarlayabileceğiniz veya işleri zorlaştırmak için değiştirebileceğinizden, yapmak için iyi bir oyundur. Bu örnek için düğmeye ihtiyacınız olmayacak.

Yeni bir dosya oluşturun ve kaydedin. “mini_game.py“. İşte kod:

mcpi.minecraft import Minecraft import rasgele ithalat zamanı mc = Minecraft.create () #, True iken Minecraft Object yaratır: x, y, z = mc.player.getPos () block_under_player = mc.getBlock (x, y - 1, z ) Eğer block_under_player == 12: # kumun üzerinde duran oyuncu, zamanlayıcıyı başlat random_time = random.uniform (0.1, 2.5) # rastgele sayı üretir time.sleep (random_time); # mc.setBlock (x, y - 1, z, 11) bekle # lavı çevir 

Bu kod üzerinde iyi bir başlangıç Rastgele () fonksiyon: rastgele üniforma (0.1, 2.5) 0,1 (10/10 saniye) ve 2,5 (2 1/2 saniye) arasında rasgele bir sayı üretecektir. Bu sayıları arttırmak oyunu kolaylaştıracak.

Denemek! Bir kum bloğu üzerinde durun, kısa sürede lav haline gelir. Bu daha karmaşık bir oyunun temeli olabilir.

Başka Bir Mini Oyun Yap

Bu oyun için öncül basit - zaman tükendiğinde ahşap yerde durma. Oyuncu bir “arena”. Oyun başlayana kadar durmak zorunda kalıyorlar. Başladıktan sonra, zamanlayıcı bittiğinde zemin suya dönüşür. 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 kontrol edin:

mcpi.minecraft'tan içe aktarma zamanını içe aktarma içe aktarma Minecraft mc = Minecraft.create () # create Minecraft Nesne # temiz alan mc.setBlocks (-10, 1, -10, 25, 5, 25, 0) # arena kabuğu mc oluştur. setBlocks (0, 0, 0, 25, 10, 25, 17) # arena'yı oymak mc.setBlocks (1, 1, 1, 24, 10, 24, 0) # arenaya oynatıcı mc.player.setPos (14 , 25, 20) # teleport oynatıcı # kalmalarını sağlayarak # 1/10 saniyede bir pozisyona başlamak için # teleport oynatıcıyı yerleştirmelerini sağlayın. # bunu 5 saniye boyunca yapın, sonra total_wait yaparken time.sleep (2) total_wait = 0 mc.postToChat ("Başlamak için Bekle") oyununu başlatın < 5: mc.player.setPos(14, 1, 20) # teleport player time.sleep(0.1) total_wait += 0.1 mc.postToChat("BEGIN!") # 10 levels for level in range(10): x, y, z = mc.player.getPos() level_time = 10 - level # reduce time by 1 second for each level mc.postToChat("Level - " + str(level + 1) + " start") # build floor mc.setBlocks(0, 0, 0, 25, 0, 25, 17) # make safe area 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 + level, 0, safe_area_end + level, 57) elapsed_time = 0 while elapsed_time < 10: x, y, z = mc.player.getPos() time.sleep(0.25) elapsed_time += 0.25 # check player is still on floor if y < 0.75: mc.postToChat("Game Over") break; else: # remove floor mc.setBlocks(-10, 0, -10, 25, 0, 25, 8) # put safe area back mc.setBlocks(safe_area_start, 0, safe_area_end, safe_area_start + level, 0, safe_area_end + level, 57) time.sleep(2.5) continue break 

Bunu farklı kaydet “mini_game_2.py” ve kaç.

Pi 2 Minecraft'ı çalıştırırken bazı performans sorunları var. Merkezi İşlem Birimi (CPU) kullanım grafiği (sağ üst köşe) hiçbir zaman ağır bir yük göstermez, bu nedenle geliştiricilerin zayıf tasarımı ve optimizasyonlarına bağlı olmalıdır. Bu sorunların kod çalıştırma ile ilgisi yoktur (Python çalışmıyorken devam ettikçe), ancak bu mini oyun tarafından birleştirilirler. Pi'niz gerçekten zorlanıyorsa, arenanın boyutunu düşürmek veya Pi Yeterli Suyu'nuzu overclock etmek isteyebilirsiniz? Ahududu Pi'nizi Sıkarak Suyu Aşırı Hızlandırmak mı? Ahududu Pi'nizi Sıkıştırın Overclock Yaparak Eğer 2012'de piyasaya sürülecek bir donanıma sahipseniz, dünyanın her yerine gönderilen ve İngiltere'de tasarlanan ve inşa edilen şeker gibi tatlı bir Raspberry Pi… .

Elmas dedektörü

Başka bir devre yapalım. Bu, altında (15 blok içinde) elmas olduğunda yanmak için bir Işık Yayan Diyot (LED) kullanacaktır. İşte ihtiyacın olan şey:

  • 1 x Breadboard
  • 1 x LED
  • 1 x 220 ohm direnç
  • Dişi> erkek atlama kabloları
  • Erkek> Erkek atlama kabloları

İşte devre:

Anotu (uzun bacak) GPIO Pin 14'e bağlayın. Bu pin +5v gibi davranır. Katotu (kısa bacak) toprağa bağlayın.

Ucuz bir cevher oyuncağı kullandım ve arka kapağı ve elektronik parçaları sökerek modifiye ettim, sonra altına bir LED yerleştirdim. Bunu sıcak tutkal veya benzeri bir şeyle kolayca kalıcı yapabilirsiniz.

Bu kodu farklı kaydet “diamonds.py“:

RPI.GPIO'yu GPIO olarak alma süresi mcpi.minecraft'tan içe aktar 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ın kullanılacağını söyleyin GPIO.setup (14, GPIO.OUT) #, Pi'ye bu pinin bir çıktı olduğunu söyler: # süresiz olarak x, y, z = mc.player.getPos () 'i aralıktaki (15) tekrarlayın: # her birine bakın mc.getBlock (x, y - i, z) == 56 olduğunda blok 15'e kadar engelle: GPIO.output (led_pin, True) # time.sleep (0.25) üzerindeki LED'i açın # GPIO.output (led_pin, False) # bekleyin LED'i kapatın zaman kapalı. (0.25) # bekle 

Müzikçaların altında bir elmas cevher bloğu varsa (15 blok içinde) ışık yanıp söner.

Minecraft Pi ile harika bir şey mi yaptın? Yorumlarda bana ne yaptığını veya oyunlarda ne kadar uzağa koyduğunu bildir..




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.