למד פייתון ואלקטרוניקה בעזרת מהדורת Minecraft Pi

למד פייתון ואלקטרוניקה בעזרת מהדורת Minecraft Pi

תמיד רצית ללמוד קוד אבל לא ידעת מאיפה להתחיל? למד כיצד לשלוט במיינקראפט ב- Raspberry Pi באמצעות פייתון וכמה אלקטרוניקה פשוטה. להלן התוצאה הסופית:





תזדקק ל- Pi 2 או חדש יותר לפרויקט זה, ולמרות שתוכל לבצע את רוב המשימות הללו באמצעות שורת הפקודה מעל מעטפת מאובטחת (SSH), הדרכה זו תתמקד בקידוד ישירות ב- Pi.





חדש במיינקראפט? אל תדאג - הנה שלנו מדריך למתחילים של מיינקראפט .





היכרות עם Minecraft Pi

Minecraft ל- Raspberry Pi פותח ללמידה והתעסקות (וזה בחינם). הוא מגיע עם ממשק תכנות אפליקציות (API) המספק דרך לקוד לדבר בקלות עם Minecraft. זה מבריק ללימוד קודים בפייתון, כמו גם תחילת העבודה עם אלקטרוניקה.

מהו פייתון?

פִּיתוֹן היא שפת תכנות. זה פירשתי כלומר כאשר אתה מריץ קובץ או תוכנת פייתון, המחשב צריך קודם כל לבצע מעט פעולות בקובץ. החסרונות הם שזה יכול להיחשב איטי בהשוואה לשפות מקובצות [כתובת URL שבורה הוסרה].



היתרונות של השפות המתפרשות הן מהירות הקידוד והידידותיות שלהן. אתה לא צריך לספר למחשב מה נתונים שאתה רוצה לאחסן, רק שאתה רוצה לאחסן משהו והמחשב יבין מה לעשות. ישנם יוצאים מן הכלל, כמובן, וזו ראייה קצת יותר פשוטה, אולם תכנות צריך להיות כיף! אם תתחיל לחפור בפרטים הטכניים המורכבים זה עלול להיות קצת מייגע.

פייתון הוא תלוי רישיות. חשוב לדעת זאת מכיוון שפייתון לא יזהה אובייקטים גם אם הם כתיב נכון אם המקרה שגוי. 'Dosomething ()' לא יעבוד אם השיטה נקראת למעשה 'DoSomething ()'. פייתון משתמש גם בכניסה . לשפות תכנות אחרות אולי לא אכפת כמה כניסות יש לקוד שלך, בעוד שפייתון עושה לְטַפֵּל. כניסות משמשות כדי לספר לפייתון לאן הקוד שייך. שפות אחרות עשויות להשתמש ב'סוגריים מתולתלים '({}) כדי לקבץ קוד - פייתון אינו משתמש באלה. Python משתמש ב- hash (#) לתגובות, והערות משמשות כדי לספר למפתחים אחרים או לאנשים המתבוננים בקוד מה חלק מסוים עושה, או מדוע יש צורך בו. פייתון מתעלם מכל דבר אחר לאחר חשיש.





לבסוף, ישנן שתי גרסאות עיקריות של Python - Python 2.7.x ו- Python 3.x. ישנם כמה הבדלים בין השניים ( מהם ההבדלים? ). הדרכה זו תשתמש ב- Python 3.

התקנה ראשונית

לספק את ה- Pi שלך כבר התקנה והפעלה של Raspbian , אין צורך בהגדרה ראשונית רבה.





מסוף פתוח ( תפריט> אביזרים> מסוף ) והפעל פקודה זו. זה תמיד נוהג לשמור על רשימת המאגרים מעודכנת, וזה יוריד את רשימת התוכנות העדכנית ביותר (היא לא תוריד את התוכניות עצמן, זה עוזר ל- Pi לדעת לאילו תוכניות קוראים ואיפה ניתן למצוא אותן).

sudo apt-get update

עכשיו עדכן את ה- Pi (זה עלול לקחת זמן):

sudo apt-get upgrade

Python ו- Minecraft Pi מותקנים כבר, אולם אם Minecraft Pi אינו מותקן מסיבה כלשהי, זה פשוט להתקנה:

sudo apt-get install minecraft-pi

נווט אל מסמכים וצור תיקייה חדשה בשם 'Minecraft':

cd Documents/
mkdir Minecraft

אתה יכול לצפות בתוכן התיקיה החדשה הזו:

ls

הנה טיפ - אם תתחיל להקליד ותלחץ על מקש TAB, שורת הפקודה תנסה לבצע השלמה אוטומטית של המשפט עבורך.

אתה יכול לבחון את הנתיב לספרייה הנוכחית באמצעות pwd, שמייצג מדריך עבודה להדפסה:

pwd

התחל את Minecraft על ידי מעבר אל תפריט> משחקים> Minecraft Pi . תזדקק להפעלה זו, אך תחזור אליה מאוחר יותר.

פתח את פייתון 3 מ תפריט> תכנות> פייתון 3 (IDLE) . תוכנית זו מספקת לך אפשרות להריץ פקודות Python ולכתוב תוכניות.

עכשיו אתה יכול להקליד את פקודות ה- Python שלך כאן, אבל זה לא מאוד מעשי. לך ל קובץ> קובץ חדש ואז קובץ> שמור ושמור זאת בתיקיה שיצרת קודם. ( מסמכים> מיינקראפט ). בואו נקרא לזה ' hello_world.py '. אינך צריך להשתמש בסיומת .py, זה יתווסף באופן אוטומטי, אך זהו שיטה טובה.

אם תחזור למסוף ותנווט לתיקיית Minecraft אתה אמור לראות את הקובץ שיצרת זה עתה:

cd Minecraft/
ls

אתה יכול להריץ את הקובץ כך:

python hello_world

שימו לב עד כמה 'פיתון' הוא באותיות קטנות. זה חייב להיות לפני שם הקובץ, מכיוון שהוא אומר ל- Pi שהקובץ הבא הוא Python, ולכן יש לבצע אותו ככזה.

חזור לעורך Python והקלד:

print 'Hello, World!'

שמור קובץ זה והפעל אותו שוב - כעת אתה אמור לראות 'שלום, עולם!' להופיע בשורת הפקודה - מסודר! פקודת ההדפסה פשוט אומרת לפייתון להוציא את הטקסט הבא במרכאות כפולות. זה טוב, אבל לא מאוד שימושי עבור Minecraft, בואו נקשר את זה:

from mcpi.minecraft import Minecraft
mc = Minecraft.create()
mc.postToChat('Hello, World!')

עכשיו אם אתה שומר ומריץ קובץ זה, אתה אמור לראות 'שלום, עולם!' מופיעים במשחק מיינקראפט. בואו נפרק את הקוד:

from mcpi.minecraft import Minecraft

שורה זו אומרת לפייתון שאתה רוצה להשתמש בקוד מקובץ אחר. קובץ mcpi.minecraft זה פותח על מנת לאפשר שליטה קלה על Minecraft.

mc = Minecraft.create()

קו זה יוצר אובייקט בשם 'mc' (Minecraft). עליך ליצור את זה כדי לאפשר תקשורת למשחק מיינקראפט - לא מספיק רק לכלול את הקובץ.

mc.postToChat('Hello, World!')

לבסוף, שורה זו אומרת למיינקראפט לכתוב טקסט לצ'אט. נסה לשנות 'שלום, עולם!' למשהו אחר ולראות מה קורה, אך זכור לכלול את שני הציטוטים הכפולים. אם אתה נתקל בבעיות תוכנה, אלה הן כמה שגיאות Python ו- Minecraft Pi נפוצות:

  • AttributeError - זוהי שגיאת הקלדה, כגון pint או prnt במקום הדפסה
  • NameError: שם 'Minecraft' אינו מוגדר - זכור לייבא את המודולים הדרושים לך
  • NameError: השם 'true' אינו מוגדר - Python הוא תלוי רישיות, שנה ל- 'True'
  • socket.error: [Errno 111] החיבור נדחה - ודא ש- Minecraft פועל

פרויקטים

עכשיו שאתה יודע את היסודות של פייתון ומיינקראפט, בואו נעשה כמה פרויקטים מגניבים. ניתן להוריד את כל הקודקוד מ- Github.

בונה גשרים אוטומטי

תוכנית זו תבנה למעשה גשר מעל המים. כאשר השחקן מתקרב לגוף מים, התוכנית תמיר מספר בלוקים לאבן. מכיוון שמיינקראפט משתמשת במערכת קואורדינטות, קל מאוד להשיג את המיקום של השחקן, יחד עם סוג הבלוקים סביב השחקן. Minecraft Pi מוגבל מעט, כך שלא ניתן לעדכן מספר בלוקים שונים בכמות גדולה. עם זאת, אתה יכול בקלות לקודד התנהגות זו בעצמך.

צור קובץ חדש ( קובץ> קובץ חדש ) ושמור אותו בשם ' bridge_builder.py '.

from mcpi.minecraft import Minecraft
mc = Minecraft.create() # create Minecraft Object
while True:
x, y, z = mc.player.getPos() # store player position

# store the surrounding blocks
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)
if a == 8 or a == 9 or b == 8 or b == 9 or c == 8 or c == 9 or d == 8 or d == 9:
# 8 or 9 is water. Set surrounding blocks on floor to a solid (stone) if water is found
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 בלוקים בקוביות. נתחיל עם הכפתור. בדומה ללחצנים בארדואינו, תזדקק לכמות קטנה של אלקטרוניקה, שכולם צריכים להימצא בערכת המתנע הבסיסית:

  • 1 x לוח לחם
  • 1 x מתג רגעי
  • נגד 1 x 220 אוהם
  • נקבות> כבלי קפיצה זכרים
  • זכר> כבלי קפיצה זכרים

להלן המעגל:

חיבור פי-כפתור

הנגד הזה נקרא נגד 'משיכה כלפי מטה'. זה עוזר להבטיח שמה שהפי חושב שהכפתור נלחץ, באמת הלחיצה על הכפתור. אינך צריך להשתמש בזה, אולם מומלץ, מכיוון שאתה עלול למצוא הרבה רעש וקריאות שווא בלעדיו.

הלחצן מחובר לסיכה של פלט קלט למטרה כללית (GPIO) 14. ניתן להשתמש בכל סיכת GPIO, אולם הסתכלו על pinout ראשית, מכיוון שלא כולם ניתנים לשליטה מהפי, ומשתנים מעט בין הדגמים.

עכשיו כשהכפתור מחובר, הגיע הזמן לבדוק אותו. צור קובץ חדש ושמור אותו בשם ' button_test.py '. הוסף קוד זה, שמור אותו ולאחר מכן הפעל אותו בטרמינל.

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input
while True:
if GPIO.input(14) == True: # look for button press
print 'BUTTON WORKS!' # log result
time.sleep(0.5) # wait 0.5 seconds

ללחוץ Control + C. כדי לעצור את התסריט. אם הכל עובד כמו שצריך אתה צריך לראות 'כפתור עובד!' בטרמינל. שימו לב כיצד בדומה למודול Minecraft גם בדיקה זו משתמשת במודולי RPi.GPIO וזמן. אלה מאפשרים ל- Pi לגשת לסיכות החומרה ולספק פונקציות תזמון שימושיות.

עכשיו אפשר לסיים את שאר הקוד. צור קובץ חדש שנקרא ' super_mine.py '. הנה הקוד:

import RPi.GPIO as GPIO
import time
from mcpi.minecraft import Minecraft
mc = Minecraft.create() # create Minecraft Object
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input
while True:
if GPIO.input(14) == True: # look for button press
x, y, z = mc.player.getPos() # read the player position
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) # mine 10 blocks
time.sleep(0.5) # wait 0.5 seconds

mc.player.getPos () מחזירה לשחקנים את הקואורדינטות הנוכחיות, המאוחסנות אז ב- x, y ו- z. ה setBlocks () השיטה אומרת למיינקראפט למלא את כל הבלוקים בין ההתחלה לסוף עם הבלוק הבא. אפס הוא מזהה הבלוק לאוויר. תוכל לשנות זאת לבלוק-מזהה נוסף כדי למלא שטח מוצק. אתה יכול גם לשנות את הקואורדינטות ל +100 או אפילו +1000 בלוקים, אולם ה- Pi עשוי להתחיל להיאבק אם אתה משתגע מדי. שימו לב איך y + 10 זהה לשתי השורות. אתה יכול לשנות את זה ל- y - 10 אם אתה רוצה להסיר בלוקים מתחת לאדמה.

טלפורטציה

שימוש פשוט נוסף בכפתור זה יכול להיות 'טלפורט'. ה- Minecraft Pi Api מספק דרך לקבוע את מיקום השחקן. הקוד הבא 'יעביר' את השחקן למיקום מוגדר מראש:

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

שימו לב כי השיטה שלו מקבלת שלושה פרמטרים; x, y ו- z - כך שתוכל להגדיר אותם לכל דבר כדי להעביר את השחקן באופן מיידי למיקום זה.

צור עותק של הקובץ super_mine ( קובץ> שמור העתקה בשם ) ושנה אותו על ידי החלפת ה- if עם הדברים הבאים:

if GPIO.input(14) == True: # look for button press
mc.player.setPos(0, 0, 0) # teleport player
time.sleep(0.5) # wait 0.5 seconds

כעת הקובץ אמור להיראות כך:

import RPi.GPIO as GPIO
from mcpi.minecraft import Minecraft
import time
mc = Minecraft.create() # create Minecraft Object
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input
while True:
if GPIO.input(14) == True: # look for button press
mc.player.setPos(0, 0, 0) # teleport player
time.sleep(0.5) # wait 0.5 seconds

שמור אותו בשם ' teleport.py ' ורוץ.

אתה עשוי לגלות שהשחקן נתקע בתוך כמה בלוקים בעת השימוש בו, ובמקרה זה יהיה עליך להתאים את הקואורדינטות למרחב פתוח ידוע (בפינה השמאלית העליונה של המסך מוצג המיקום הנוכחי שלך).

לבנות בית

משימה אחרונה לכפתור זה היא לבנות בית. בדומה לדוגמא לכרייה מהירה למעלה, הדבר פשוט יחליף בלוקים המקיפים את השחקן כדי ליצור בית. מזהי בלוקים שונים ישמשו עבור חומרים שונים (חלון, קירות וכו '). כדי להקל על הקידוד, ייווצר בלוק מוצק ולאחר מכן יוסר החלק הפנימי (הגדר את הבלוק לאוויר), הדבר ייצור מעטפת חלולה. אתה יכול להוסיף תוספות כמו מיטה או דלת, אולם פרויקט Minecraft Pi מעט לא שלם, ולמרות שחפצים אלה עובדים כאשר הם ממקמים על ידי השחקן, הם אינם מבריקים בעת שימוש בפייתון.

from mcpi.minecraft import Minecraft
import RPi.GPIO as GPIO
import time
mc = Minecraft.create() # create Minecraft Object
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.IN) # tell the Pi this pin is an input
while 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) # make shell
mc.setBlocks(x + 3, y, z + 3, x + 6, y + 2, z + 7, 0) # remove inside
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 '. הנה הקוד:

from mcpi.minecraft import Minecraft
import random
import time
mc = Minecraft.create() # create Minecraft Object
while True:
x, y, z = mc.player.getPos()
block_under_player = mc.getBlock(x, y - 1, z)

if block_under_player == 12:
# player standing on sand, start the timer
random_time = random.uniform(0.1, 2.5) # generate random number
time.sleep(random_time); # wait
mc.setBlock(x, y - 1, z, 11) # turn it into lava

הקוד הזה הוא התחלה טובה ב אַקרַאִי() פוּנקצִיָה: אחיד אקראי (0.1, 2.5) ייצר מספר אקראי בין 0.1 (1/10/10) ל -2.5 (2 1/2 שניות). הגדלת המספרים האלה תקל על המשחק.

נסה את זה! עמדו על גוש חול, וזה בקרוב יהפוך ללבה. זה יכול להיות הבסיס למשחק מורכב יותר.

צרו עוד מיני משחק

הנחת היסוד למשחק זה פשוטה - אל תעמוד על רצפת העץ כשהזמן אוזל. השחקן מקבל טלפורטציה ל'זירה '. הם נאלצים לעמוד במקום עד שהמשחק יתחיל. לאחר שהתחילה, הרצפה תהפוך למים ברגע שייגמר הטיימר. השחקן חייב לעמוד באזור הבטוח (אבני יהלום) כדי לשרוד. כל רמה מפחיתה את הטיימר בשנייה אחת. לאחר כל רמה מוצלחת האזור הבטוח הולך וגדל. בדוק את הקוד להלן:

import time
import random
from mcpi.minecraft import Minecraft
mc = Minecraft.create() # create Minecraft Object
# clear area
mc.setBlocks(-10, 1, -10, 25, 5, 25, 0)
# create arena shell
mc.setBlocks(0, 0, 0, 25, 10, 25, 17)
# hollow out arena
mc.setBlocks(1, 1, 1, 24, 10, 24, 0)
# move player to arena
mc.player.setPos(14, 25, 20) # teleport player
# make them stay put
# teleport player to start position every 1/10th second.
# do this for 5 seconds then start the game
time.sleep(2)
total_wait = 0
mc.postToChat('Waiting to Start')
while total_wait <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

שמור את זה בשם ' mini_game_2.py 'ולתת לו לרוץ.

ל- Pi 2 יש כמה בעיות ביצועים בזמן הפעלת Minecraft. גרף השימוש של יחידת העיבוד המרכזית (CPU) ( בפינה הימנית העליונה ) אף פעם לא מציג עומס כבד, ולכן זה חייב להיות בגלל עיצוב גרוע ואופטימיזציות של המפתחים. נושאים אלה אינם קשורים לקוד הפעלה (כפי שהם ממשיכים כאשר פייתון אינו פועל), אולם הם מורכבים על ידי משחק מיני זה. אם ה- Pi שלך באמת מתקשה, ייתכן שתרצה להקטין את גודל הזירה או לבצע שעון -יתר של ה- Pi שלך.

כיצד לצפות בסרטוני יוטיוב עם חברים באינטרנט

גלאי יהלומים

בואו נעשה מעגל נוסף. זה ישתמש בדיודה פולטת אור (LED) כדי להאיר כשיש יהלומים מתחת (בתוך 15 רחובות). הנה מה שאתה צריך:

  • 1 x לוח לחם
  • 1 x LED
  • נגד 1 x 220 אוהם
  • נקבות> כבלי קפיצה זכרים
  • זכר> כבלי קפיצה זכרים

להלן המעגל:

חבר את האנודה (רגל ארוכה) לפין GPIO 14. סיכה זו פועלת כמו +5V. חבר את הקתודה (רגל קצרה) לקרקע.

השתמשתי בצעצוע עפרות זול ושיניתי אותו על ידי הסרת המכסה האחורי ואלקטרוניקה, ואז הנחתי תחתיו LED. אתה יכול בקלות להפוך את זה לקבוע עם דבק חם או משהו דומה.

שמור את הקוד הזה בשם ' diamonds.py ':

import RPi.GPIO as GPIO
import time
from mcpi.minecraft import Minecraft
mc = Minecraft.create() # create Minecraft Object
led_pin = 14 # store the GPIO pin number
GPIO.setmode(GPIO.BCM) # tell the Pi what headers to use
GPIO.setup(14, GPIO.OUT) # tell the Pi this pin is an output
while True:
# repeat indefinitely
x, y, z = mc.player.getPos()
for i in range(15):
# look at every block until 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 off
time.sleep(0.25) # wait

כאשר יש גוש עפרות יהלום מתחת לשחקן (בתוך 15 רחובות) האור יהבהב.

עפרות יהלום של ThinkGeek Minecraft Light -Up אבן כחולה - בטוח להרחיק את החזירים קנה עכשיו ב- AMAZON

הכנתם משהו מגניב עם Minecraft Pi? הודע לי בתגובות מה עשית או כמה רחוק הגעת למשחקים.

אנו מקווים שאהבתם את הפריטים שאנו ממליצים עליהם ודנים בהם! ל- MUO שותפויות שותפות וממומנות, כך שאנו מקבלים נתח מההכנסות מכמה מהרכישות שלך. זה לא ישפיע על המחיר שאתה משלם ועוזר לנו להציע את המלצות המוצר הטובות ביותר.

לַחֲלוֹק לַחֲלוֹק צִיוּץ אימייל האם כדאי לשדרג ל- Windows 11?

Windows עוצב מחדש. אבל האם זה מספיק כדי לשכנע אותך לעבור מ- Windows 10 ל- Windows 11?

קרא הבא
נושאים קשורים
  • עשה זאת בעצמך
  • תִכנוּת
  • מיינקראפט
  • פאי פטל
  • מכשירי חשמל
  • פִּיתוֹן
על הסופר ג'ו קוברן(136 מאמרים פורסמו)

ג'ו בוגר מדעי המחשב מאוניברסיטת לינקולן שבבריטניה. הוא מפתח תוכנה מקצועי, וכשהוא לא מטיס רחפנים או כותב מוזיקה, לעתים קרובות אפשר למצוא אותו מצלם או מפיק סרטונים.

עוד מאת ג'ו קוברן

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה