الإعلانات
هل رغبت دائمًا في تعلم الشفرة ولكنك لم تعرف من أين تبدأ؟ تعلم كيفية التحكم في Minecraft على Raspberry Pi باستخدام Python وبعض الإلكترونيات البسيطة. ها هي النتيجة النهائية:
ستحتاج إلى Pi 2 أو الأحدث لهذا المشروع ، بينما يمكنك إكمال معظم هذه المهام عبر سطر الأوامر عبر Secure Shell (SSH) ، سيركز هذا البرنامج التعليمي على الترميز مباشرةً على Pi.
جديد لماين كرافت؟ لا تقلق - ها نحن دليل المبتدئين لماين كرافت (المبتدئين) دليل المبتدئين لماين كرافتإذا كنت متأخراً عن الحفلة ، فلا تقلق - لقد غطيت دليل المبتدئين الشامل هذا. اقرأ أكثر .
مقدمة لماين كرافت بي

تم تطوير Minecraft لـ Raspberry Pi للتعلم والعبث (وهو مجاني). لأنه يأتي مع واجهة برمجة التطبيقات (API) التي توفر وسيلة لرمز للتحدث بسهولة مع Minecraft. من الرائع تعلم كيفية استخدام الشفرة في بيثون أيضًا البدء مع الالكترونيات إلكترونيات المبتدئين: 10 مهارات تحتاج إلى معرفتهاالكثير منا لم يلمس قط لحام الحديد - لكن صنع الأشياء يمكن أن يكون مجزيا بشكل لا يصدق. إليك عشرة من أبسط مهارات الإلكترونيات DIY لمساعدتك في البدء. اقرأ أكثر .
ما هو بيثون؟
الثعبان
هي لغة البرمجة. أنه تفسير، مما يعني أنه عند تشغيل ملف أو برنامج Python ، يتعين على الكمبيوتر القيام بالكثير من العمل للملف أولاً. الجانب السلبي هو أنه يمكن اعتبار بطيئة بالمقارنة لغات مترجمة.فوائد اللغات التي يتم تفسيرها هي سرعة الترميز والود. لا تحتاج إلى إخبار الكمبيوتر ماذا البيانات التي تريد تخزينها ، فقط تريد تخزين شيء ما وسيقوم الكمبيوتر باكتشاف ما يجب القيام به. هناك استثناءات ، بالطبع ، وهذه طريقة عرض مبسطة إلى حد ما ، ولكن يجب أن تكون البرمجة ممتعة! إذا بدأت بالحفر في التفاصيل الفنية المعقدة ، فقد يصبح الأمر شاقًا بعض الشيء.
بيثون حساس لحالة الأحرف. من المهم أن تعرف ذلك ، لأن بيثون لن يتعرف على الأشياء حتى لو كانت مكتوبة بشكل صحيح إذا كانت القضية خاطئة. لن تعمل "Dosomething ()" إذا كانت الطريقة تسمى فعليًا "DoSomething ()". بيثون يستخدم أيضا المسافة البادئة. قد لا تهتم لغات البرمجة الأخرى بعدد المسافات الموجودة في الكود ، بينما Python هل رعاية. يتم استخدام المسافات البادئة لإخبار بيثون عن المكان الذي ينتمي إليه الرمز. قد تستخدم لغات أخرى "Curly Braces" ({}) لتجميع الكود - Python لا يستخدم هذه. يستخدم Python علامة تجزئة (#) للتعليقات ، وتستخدم التعليقات لإخبار المطورين الآخرين أو الأشخاص الذين ينظرون إلى الشفرة بما يفعله جزء معين ، أو سبب الحاجة إليه. تتجاهل بايثون أي شيء بعد التجزئة.
أخيرًا ، هناك إصداران رئيسيان من Python - Python 2.7.x و Python 3.x. هناك بعض الاختلافات بين الاثنين (ما هي الاختلافات؟). سيستخدم هذا البرنامج التعليمي Python 3.
الإعداد الأولي
توفير بي الخاص بك هو بالفعل الإعداد وتشغيل Raspbian كيفية تثبيت نظام التشغيل على التوت بيفيما يلي كيفية تثبيت نظام التشغيل على Raspberry Pi وكيفية استنساخ الإعداد المثالي لاستعادة القدرة على العمل بعد الكوارث بسرعة. اقرأ أكثر ، ليس هناك الكثير من الإعداد الأولي المطلوب.
محطة مفتوحة (القائمة> الملحقات> الطرفية) وتشغيل هذا الأمر. من الممارسات الجيدة دائمًا تحديث قائمة المستودعات ، وسيؤدي ذلك إلى تنزيل أحدث قائمة من البرامج (لن يتم تنزيل البرامج بنفسها ، وهذا يساعد Pi في معرفة البرامج التي يتم استدعاءها وأين يمكن العثور عليها معهم).
sudo الحصول على التحديث.
الآن قم بتحديث Pi (قد يستغرق هذا بعض الوقت):
sudo الحصول على الترقية.
تم تثبيت Python و Minecraft Pi بالفعل ، ولكن إذا لم يتم تثبيت Minecraft Pi لأي سبب ، انها سهلة التركيب 5 طرق لتثبيت البرامج على التوت بيللقيام بأي شيء باستخدام Raspberry Pi ، ستحتاج إلى معرفة كيفية تثبيت نظام التشغيل والبرامج لتشغيله. إذا كنت جديدًا على نظام Linux ، فقد يكون هذا أمرًا مخيفًا. اقرأ أكثر :
sudo-apt-get install minecraft-pi
انتقل إلى المستندات وقم بإنشاء مجلد جديد يسمى "Minecraft":
وثائق مؤتمر نزع السلاح / مكدير ماين كرافت
يمكنك عرض محتويات هذا المجلد الجديد:
ليرة سورية
إليك نصيحة - إذا بدأت في الكتابة واضغطت على مفتاح TAB ، فسيحاول سطر الأوامر الإكمال التلقائي للبيان نيابة عنك.
يمكنك فحص المسار إلى الدليل الحالي باستخدام pwd ، والذي يمثل "دليل عمل الطباعة":
الأشخاص ذوي الإعاقة
بدء ماين كرافت عن طريق الذهاب إلى القائمة> الألعاب> Minecraft Pi. ستحتاج إلى هذا الركض ، لكنك ستعود إليه لاحقًا.
افتح بيثون 3 من القائمة> البرمجة> بيثون 3 (IDLE). يوفر لك هذا البرنامج طريقة لتشغيل أوامر Python وكتابة البرامج.
يمكنك الآن كتابة أوامر Python الخاصة بك هنا ، لكن هذا ليس عمليًا جدًا. اذهب إلى ملف> ملف جديد وثم ملف> حفظ واحفظ هذا في المجلد الذي قمت بإنشائه مسبقًا. (الوثائق> ماين كرافت). دعنا نسميها "hello_world.py“. لست بحاجة إلى استخدام ملحق .py ، فسيتم إضافة هذا تلقائيًا ، ولكنه يعد ممارسة جيدة.
إذا عدت مرة أخرى إلى الجهاز ، وانتقلت إلى مجلد Minecraft ، فسترى الملف الذي أنشأته للتو:
ماين كرافت / ليرة سورية
يمكنك تشغيل هذا الملف مثل هذا:
بيثون hello_world
لاحظ كيف أن "الثعبان" صغير الحجم. يجب أن يكون هذا قبل اسم الملف ، لأنه يخبر Pi أن الملف التالي هو Python ، لذلك يجب تنفيذه على هذا النحو.
العودة إلى محرر Python واكتب:
طباعة "مرحبا ، العالم!"
احفظ هذا الملف وأعد تشغيله مرة أخرى - سترى الآن "مرحبًا أيها العالم!" تظهر في سطر الأوامر - أنيق! يخبر الأمر print ببساطة Python بإخراج النص التالي في علامات تنصيص مزدوجة. هذا أمر جيد ، ولكنه ليس مفيدًا بشكل كبير لشركة Minecraft ، فلنربطه:
من mcpi.minecraft import Minecraft mc = Minecraft.create () mc.postToChat ("Hello، World!")
الآن إذا قمت بحفظ وتشغيل هذا الملف ، سترى "مرحبًا أيها العالم!" تظهر في لعبة Minecraft. دعنا نقسم الرمز:
من mcpi.minecraft استيراد Minecraft
يخبر هذا السطر بيثون أنك تريد استخدام كود من ملف آخر. تم تطوير ملف mcpi.minecraft هذا للسماح بالتحكم السهل في Minecraft.
mc = Minecraft.create ()
ينشئ هذا السطر كائنًا يسمى "mc" (Minecraft). يجب عليك إنشاء هذا للسماح بالتواصل مع لعبة Minecraft - لا يكفي فقط تضمين الملف.
mc.postToChat ("مرحبًا ، العالم!")
أخيرًا ، يطلب هذا السطر من Minecraft كتابة بعض النصوص للدردشة. حاول تغيير "مرحبا ، العالم!" إلى شيء آخر ومعرفة ما يحدث ، ولكن تذكر أن تشمل كلا من علامات الاقتباس المزدوجة. إذا كنت تواجه مشكلات في البرامج ، فهذه بعض الأخطاء الشائعة في Python و Minecraft Pi:
- AttributeError - هذا خطأ مطبعي ، مثل pint أو prnt بدلاً من الطباعة
- NameError: الاسم 'Minecraft' غير معرف - تذكر أن تستورد الوحدات التي تحتاج إليها
- NameError: الاسم "true" غير معرف - Python حساس لحالة الأحرف ، قم بالتغيير إلى "True"
- socket.error: [Errno 111] تم رفض الاتصال - تأكد من تشغيل Minecraft
مشاريع
الآن بعد أن تعرفت على أساسيات Python و Minecraft ، دعونا نجعل بعض المشاريع الرائعة. كل من الترميز يمكن تحميلها من جيثب.
بناء جسر الآلي

هذا البرنامج سوف يبني بشكل فعال جسر فوق الماء. عندما يقترب اللاعب من جسم مائي ، سيقوم البرنامج بتحويل عدة كتل إلى حجر. نظرًا لأن Minecraft يستخدم نظام الإحداثيات ، فمن السهل جدًا الحصول على موقع اللاعب ، إلى جانب نوع الكتل الموجودة حول اللاعب. Minecraft Pi محدود قليلاً ، لذا لا يمكن تحديث كتل مختلفة متعددة بكميات كبيرة. يمكنك بسهولة رمز هذا السلوك نفسك ، ولكن.
إنشاء ملف جديد (ملف> ملف جديد) واحفظه كـ "bridge_builder.py“.
من mcpi.minecraft استيراد Minecraft. mc = Minecraft.create () # إنشاء كائن Minecraft بينما True: x ، y ، z = mc.player.getPos () # موقف لاعب store # قم بتخزين الكتل المحيطة a = mc.getBlock (x، y - 1، z + 1) ب = mc.getBlock (x، y - 1، z - 1) c = mc.getBlock (x - 1، y - 1، z) d = mc.getBlock (x + 1، y - 1، z) if a == 8 أو أ = 9 أو ب == 8 أو ب == 9 أو ج == 8 أو ج == 9 أو د == 8 أو د == 9: # 8 أو 9 ماء. عيّن الكتل المحيطة على الأرض بحجر صلب (إذا تم العثور على ماء 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) mc. setBlocks (x، y - 1، z، x + 1، y - 1، z - 1، 1)
لاحظ كيف تبحث القيمة y فعليًا عن y - 1. هذا هو مستوى الطابق. إذا تم استخدام قيمة y ، سيبحث البرنامج النصي عن الكتل عند مستوى الركبة - لن يعمل جيدًا! Mc.getBlock () إرجاع معرّف كتلة للإحداثيات المحددة. نظرًا لأن x و y و z هي إحداثيات اللاعب ، يمكنك إضافتها أو طرحها للحصول على وظائف حول اللاعب. لست بحاجة إلى استخدام قيم x و y و z ، يمكنك استخدام أي رقم ، ومع ذلك قد لا تعرف مدى ارتباط هذه الكتلة المعينة بالمشغل - من الأفضل استخدام القيم المتعلقة بالمشغل. قم بتشغيل هذا الملف من سطر الأوامر ومعرفة ما يحدث.
يجب أن ترى أن مساحة صغيرة من الأرض تتحول إلى حجر بمجرد وصول اللاعب إلى جسم مائي. هذا ليس بالأمر الجيد - فأنت قادر على المشي بسرعة كافية للتسبب في مشكلة. يمكنك حل هذا عن طريق تحويل كمية أكبر من المياه إلى الأرض. الجزء الأخير من طريقة mc.setBlocks () هو معرف الكتلة. واحد هو معرف كتلة للحجر. يمكنك تغيير هذا إلى الخشب أو العشب أو أي شيء. إذا كنت ترغب في ذلك ، يمكنك بسهولة تحويل هذا إلى تصميم معقد - ربما جسر معلق!
سوبر زر التعدين

هذا المثال سوف يجعل العمل القصير من التعدين. وهو يتألف من زر مادي ، عندما تضغط عليه ، سوف تقوم بإزالة 10 كتل مكعبة. لنبدأ بالزر. على غرار الأزرار الموجودة في Arduino ، ستحتاج إلى كمية صغيرة من الأجهزة الإلكترونية ، وكلها يجب أن توجد في أ طقم بداية الأساسية ماذا يوجد في مجموعة اردوينو الخاصة بك؟ [اردوينو مبتدئين]في مواجهة صندوق مليء بالمكونات الإلكترونية ، من السهل أن تطغى عليه. فيما يلي دليل لما ستجده بالضبط في المجموعة الخاصة بك. اقرأ أكثر :
- 1 × اللوح
- 1 × التبديل لحظة
- 1 × 220 أوم المقاوم
- أنثى> كابلات القفز الذكور
- ذكر> ذكر القفز الكابلات
ها هي الدائرة:

يسمى هذا المقاوم المقاوم "هدم". إنها تساعد على التأكد من أن ما يراه Pi هو الزر الذي يتم الضغط عليه ، هو بالفعل الضغط على الزر. ليس عليك استخدام هذا ، ومع ذلك فمن المستحسن ، فقد تجد الكثير من الضوضاء والقراءات الخاطئة دون ذلك.
يتم توصيل الزر بـ 14 دبوس إدخال إخراج عام (GPIO). يمكنك استخدام أي دبوس GPIO ، ولكن انظر إلى pinout أولاً ، لأنها ليست كلها قابلة للتحكم من Pi ، وتختلف قليلاً بين الطرز.
الآن بعد أن تم توصيل الزر ، فقد حان الوقت لاختباره. قم بإنشاء ملف جديد واحفظه باسم "button_test.py“. أضف هذا الرمز ، واحفظه ، ثم قم بتشغيله في الجهاز الطرفي.
استيراد RPi. GPIO كما GPIO. وقت الاستيراد GPIO.setmode (GPIO.BCM) # أخبر Pi ما هي رؤوس الاستخدام. GPIO.setup (14 ، GPIO.IN) # أخبر Pi هذا الدبوس مدخلات بينما True: إذا GPIO.input (14) == True: # ابحث عن زر اضغط على print "BUTTON WORKS!" # سجل وقت النتيجة. نائم (0.5) # انتظر 0.5 ثانية.
صحافة التحكم + C لإيقاف البرنامج النصي. إذا كان كل شيء يعمل بشكل صحيح يجب أن تشاهد "زر يعمل!" في المحطة. لاحظ كيف يستخدم هذا الاختبار ، مثل وحدة Minecraft ، RPi. وحدات GPIO والوقت. هذه تسمح لـ Pi بالوصول إلى دبابيس الأجهزة وتوفير وظائف توقيت مفيدة.
الآن يتيح الانتهاء من بقية الكود. إنشاء ملف فيديو جديد "super_mine.py“. إليك الكود:
استيراد RPi. GPIO كما GPIO. وقت الاستيراد. من استيراد mcpi.minecraft Minecraft mc = Minecraft.create () # create Minecraft Object GPIO.setmode (GPIO.BCM) # أخبر Pi ما هي رؤوس الاستخدام. GPIO.setup (14 ، GPIO.IN) # أخبر Pi هذا الدبوس مدخلات بينما True: إذا GPIO.input (14) == True: # ابحث عن زر اضغط x ، y ، z = mc.player.getPos ( ) # قراءة اللاعب الموضع mc.setBlocks (x، y، z، x + 10، y + 10، z + 10، 0) # mine 10 blocks mc.setBlocks (x، y، z، x - 10، y + 10، z - 10 ، 0) # الألغام 10 كتل الوقت. النوم (0.5) # الانتظار 0.5 ثواني.
mc.player.getPos () إرجاع إحداثيات اللاعبين الحالية ، والتي يتم تخزينها بعد ذلك في x و y و z. ال setBlocks () يخبر الأسلوب Minecraft بملء جميع الكتل بين البداية والنهاية بالكتلة التالية. الصفر هو معرف كتلة للهواء. يمكنك تغيير هذا إلى معرف كتلة آخر لملء منطقة صلبة. يمكنك أيضًا تغيير الإحداثيات إلى كتل +100 أو حتى 1000+ ، ومع ذلك ، قد يبدأ Pi في الكفاح إذا كنت مجنونًا جدًا. لاحظ كيف تكون y + 10 هي نفسها لكلا الخطين. يمكنك تغيير هذا إلى y - 10 إذا أردت إزالة الكتل تحت الأرض.
تلبورتينغ

استخدام بسيط آخر لهذا الزر يمكن أن يكون "النقل الفضائي". يوفر Minecraft Pi Api طريقة لتعيين موضع اللاعب. الكود التالي "سوف ينقل المشغل" إلى موقع محدد مسبقًا:
mc.player.setPos (0، 0، 0)
لاحظ أن طريقته تقبل ثلاثة معايير ؛ x و y و z - حتى تتمكن من ضبطها على أي شيء لنقل اللاعب على الفور إلى هذا الموقع.
إنشاء نسخة من ملف super_mine (ملف> حفظ نسخ باسم) وتعديله عن طريق استبدال if بما يلي:
إذا كان GPIO.input (14) == صواب: # ابحث عن زر اضغط mc.player.setPos (0، 0، 0) # teleport player time.sleep (0.5) # wait 0.5 seconds.
يجب أن يبدو هذا الملف الآن كما يلي:
استيراد RPi. GPIO كما GPIO. من mcpi.minecraft استيراد Minecraft. وقت الاستيراد mc = Minecraft.create () # create Minecraft Object GPIO.setmode (GPIO.BCM) # أخبر Pi ما هي رؤوس الاستخدام. GPIO.setup (14 ، GPIO.IN) # أخبر Pi هذا الدبوس مدخلات بينما True: if GPIO.input (14) == True: # ابحث عن زر اضغط mc.player.setPos (0 ، 0 ، 0) # وقت لاعب النقل الفضائي. النوم (0.5) # انتظر 0.5 ثواني.
احفظه باسم "teleport.py" و اهرب.
قد تجد أن اللاعب عالق داخل بعض الكتل عند استخدام هذا ، وفي هذه الحالة ستحتاج إلى ذلك اضبط الإحداثيات إلى مساحة مفتوحة معروفة (يظهر أعلى يسار الشاشة الحالي موقعك).
ابني منزل

المهمة الأخيرة لهذا الزر هي بناء منزل. يشبه إلى حد كبير مثال التعدين السريع أعلاه ، سيحل هذا ببساطة محل القطع المحيطة باللاعب لإنشاء منزل. سيتم استخدام معرفات بلوك مختلفة للمواد المختلفة (النوافذ ، الجدران ، إلخ). لتسهيل عملية تشفير الأشياء ، سيتم إنشاء كتلة صلبة ، ثم إزالتها من الداخل (ضبط الكتلة في الهواء) ، سيؤدي ذلك إلى إنشاء غلاف مجوف. يمكنك إضافة إضافات مثل السرير أو الباب ، ومع ذلك فإن مشروع Minecraft Pi غير مكتمل قليلاً ، وبينما تعمل هذه الأشياء عند وضعها من قِبل اللاعب ، فإنها ليست رائعة عند استخدام Python.
من mcpi.minecraft استيراد Minecraft. استيراد RPi. GPIO كما GPIO. وقت الاستيراد mc = Minecraft.create () # create Minecraft Object GPIO.setmode (GPIO.BCM) # أخبر Pi ما هي رؤوس الاستخدام. GPIO.setup (14 ، GPIO.IN) # أخبر Pi هذا الدبوس مدخلات بينما 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) # اجعل shell mc.setBlocks (x + 3، y، z + 3، x + 6، y + 2، z + 7، 0) # remove داخل mc.setBlocks (x + 2، y، z + 5، x + 2 ، y + 1، z + 5، 0) # make doorway mc.setBlocks (x + 4، y + 1، z + 8، x + 5، y + 1، z + 8، 102) # make window 1 mc.setBlocks (x + 4، y + 1، z + 2، x + 5، y + 1، z + 2، 102) # make window 2 mc.setBlocks (x + 7، y + 1، z + 4، x + 7، y + 1، z + 6، 102) # make window 3.
احفظ هذا باسم "house.py" و اهرب. كل شيء على ما يرام ، يجب أن ترى منزل صغير يظهر (قد تحتاج إلى الالتفاف للعثور عليه). إنه بسيط للغاية ، فتحة وبعض النوافذ. من الناحية النظرية ، لا يوجد حد لمدى بناء أو بناء مجمع كبير.
اصنع لعبة صغيرة

بعد ذلك ، لنصنع لعبة صغيرة! سيكون هذا الأمر بسيطًا جدًا ، عندما يخطو اللاعب على كتلة من الرمال ، سيتحول إلى حمم بعد فترة زمنية عشوائية. إنها لعبة جيدة تصنعها ، حيث يمكنك تصميم مستوياتك الخاصة أو تعديلها لجعل الأمور أكثر صعوبة. لن تحتاج الزر لهذا المثال.
قم بإنشاء ملف جديد واحفظه باسم "mini_game.py“. إليك الكود:
من mcpi.minecraft استيراد Minecraft. استيراد عشوائي. وقت الاستيراد mc = Minecraft.create () # إنشاء كائن Minecraft بينما True: x، y، z = mc.player.getPos () block_under_player = mc.getBlock (x، y - 1، z) if block_under_player == 12: # لاعب يقف على الرمال ، قم ببدء تشغيل الموقت random_time = random.uniform (0.1 ، 2.5) # قم بإنشاء عدد مرات عشوائي. (random_time)؛ # انتظر mc.setBlock (س ، ص - 1 ، ض ، 11) # تحويله إلى الحمم البركانية.
هذا الرمز هو بداية جيدة على عشوائية () وظيفة: عشوائي. موحدة (0.1 ، 2.5) سيتم إنشاء رقم عشوائي بين 0.1 (1/10 ثانية) و 2.5 (2 1/2 ثانية). زيادة هذه الأرقام ستجعل اللعبة أسهل.
حاول! قف على كتلة من الرمال ، وسوف يتحول قريباً إلى حمم. هذا يمكن أن يكون أساس لعبة أكثر تعقيدا.
اصنع لعبة صغيرة أخرى

الفرضية الأساسية لهذه اللعبة بسيطة - لا تقف على الأرضية الخشبية عندما ينتهي الوقت. يتم نقل اللاعب إلى "حلبة". يجبرون على الوقوف ساكنا حتى تبدأ اللعبة. بمجرد البدء ، ستتحول الأرضية إلى الماء بمجرد نفاد المؤقت. يجب أن يقف اللاعب في المنطقة الآمنة (كتل الماس) للبقاء على قيد الحياة. كل مستوى يقلل الموقت بمقدار ثانية واحدة. بعد كل مستوى ناجح تصبح المنطقة الآمنة أكبر. تحقق من الكود أدناه:
وقت الاستيراد. استيراد عشوائي. من mcpi.minecraft import Minecraft mc = Minecraft.create () # create Minecraft Object # clear area. mc.setBlocks (-10 ، 1 ، -10 ، 25 ، 5 ، 25 ، 0) # create shell shell. mc.setBlocks (0 ، 0 ، 0 ، 25 ، 10 ، 25 ، 17) # أجوف خارج الساحة. mc.setBlocks (1 ، 1 ، 1 ، 24 ، 10 ، 24 ، 0) # انقل اللاعب إلى الحلبة. mc.player.setPos (14 ، 25 ، 20) # لاعب النقل الفضائي # جعلهم يبقون في وضع. # لاعب النقل الفضائي لبدء موقف كل ثانية 1/10. # قم بذلك لمدة 5 ثوانٍ ثم ابدأ اللعبة. وقت النوم (2) total_wait = 0. mc.postToChat ("في انتظار البدء") بينما total_wait <5: mc.player.setPos (14 ، 1 ، 20) # لاعب النقل الفضائي time.sleep (0.1) total_wait + = 0.1 mc.postToChat ("BEGIN!") # 10 مستويات. للمستوى في النطاق (10): x ، y ، z = mc.player.getPos () level_time = 10 - المستوى # يقلل الوقت بمقدار ثانية واحدة لكل مستوى mc.postToChat ("المستوى -" + str (المستوى + 1) + "بدء") # mc.setBlocks الكلمة بناء (0 ، 0 ، 0 ، 25 ، 0 ، 25 ، 17) # جعل منطقة آمنة 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 بينما elapsed_time <10: x، y، z = mc.player.getPos () time.sleep (0.25) elapsed_time + = 0.25 # تحقق لاعب ما زال على الأرض إذا y <0.75: mc.postToChat ("Game بعد الإستراحة؛ else: # remove floor mc.setBlocks (-10، 0، -10، 25، 0، 25، 8) # ضع المنطقة الآمنة mc.setBlocks (safe_area_start ، 0 ، safe_area_end ، safe_area_start + level ، 0 ، safe_area_end + level ، 57) time.sleep (2.5) مواصلة كسر.
احفظ هذا باسم "mini_game_2.py"ومنحها المدى.
يحتوي Pi 2 على بعض مشكلات الأداء أثناء تشغيل Minecraft. الرسم البياني لاستخدام وحدة المعالجة المركزية (CPU)الزاوية العليا اليمنى) لا تظهر أي عبء ثقيل ، لذلك يجب أن يكون السبب في ذلك هو سوء التصميم والتحسينات من قبل المطورين. لا ترتبط هذه المشكلات بالكود قيد التشغيل (حيث تستمر عندما لا يعمل Python) ، ومع ذلك فهي تتفاقم بسبب هذه اللعبة المصغرة. إذا كان لديك Pi يكافح حقًا ، فقد ترغب في تقليل حجم الساحة أو فيركلوك بي الخاص بك لا يكفي عصير؟ ضغط بك التوت بي عن طريق رفع تردد التشغيلإذا كان هناك أي أجهزة تم إصدارها في عام 2012 والتي من المحتمل أن تقع في حبك ، فهناك جهاز Raspberry Pi ، وهو عبارة عن كمبيوتر صغير تم تصميمه وصنعه في المملكة المتحدة ، وقد تم شحنه في جميع أنحاء ... اقرأ أكثر .
كاشف الماس

دعونا نصنع دائرة أخرى. سيؤدي ذلك إلى استخدام الصمام الثنائي الباعث للضوء (LED) للإضاءة عندما يكون هناك ماس أسفل (ضمن 15 كتلة). إليك ما تحتاجه:
- 1 × اللوح
- 1 × الصمام
- 1 × 220 أوم المقاوم
- أنثى> كابلات القفز الذكور
- ذكر> ذكر القفز الكابلات
ها هي الدائرة:

قم بتوصيل الأنود (الساق الطويلة) بـ GPIO Pin 14. هذا دبوس يعمل مثل + 5V. ربط الكاثود (ساق قصيرة) إلى الأرض.
لقد استخدمت لعبة خام خام وقمت بتعديلها عن طريق إزالة الغطاء الخلفي والإلكترونيات ، ثم وضعت مؤشر LED أسفلها. يمكنك بسهولة جعل هذا دائم مع الغراء الساخن أو شيء من هذا القبيل.

احفظ هذا الرمز كـ "diamonds.py“:
استيراد RPi. GPIO كما GPIO. وقت الاستيراد. من استيراد mcpi.minecraft Minecraft mc = Minecraft.create () # إنشاء كائن Minecraft led_pin = 14 # قم بتخزين رقم دبوس GPIO GPIO.setmode (GPIO.BCM) # أخبر Pi ما هي رؤوس الاستخدام. GPIO.setup (14 ، GPIO.OUT) # أخبر Pi أن هذا الدبوس هو ناتج بينما True: # كرر إلى أجل غير مسمى x ، y ، z = mc.player.getPos () لأني في النطاق (15): # انظر إلى كل كتلة حتى block 15 if mc.getBlock (x، y - i، z) == 56: GPIO.output (led_pin، True) # turn LED on time.sleep (0.25) # wait GPIO.output (led_pin، False) # turn LED خارج الوقت. النوم (0.25) # انتظر.
عندما يكون هناك كتلة خام ماسية أسفل المشغل (ضمن 15 كتلة) ، سيومض الضوء.
هل قمت بشيء رائع مع Minecraft Pi؟ واسمحوا لي أن أعرف في التعليقات ما الذي قمت بإجرائه أو إلى أي مدى أنتجته في الألعاب.
تخرج جو في علوم الكمبيوتر من جامعة لينكولن بالمملكة المتحدة. إنه مطور برامج محترف ، وعندما لا يطير بطائرات بدون طيار ولا يكتب موسيقى ، يمكن العثور عليه في كثير من الأحيان يلتقط صوراً أو ينتج مقاطع فيديو.