עיקרי שירותי הזרמה פריצת מיינקראפט ב- Raspberry Pi

פריצת מיינקראפט ב- Raspberry Pi



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

למה הסמן שלי קופץ מסביב

תסריטים ב- Minecraft

מיינקראפט הוא משחק ארגז חול פתוח שאין עליו קו עלילה. לפעמים זה מתואר כלגו לגו וירטואלי, מכיוון שהשחקן יכול לבנות כל סוג של מבנה באמצעות הבלוקים שעומדים לרשותו. הגרסה המשולבת עם ה- Raspberry Pi כוללת מערכת תכונות מוגבלת המתאימה לתפקיד החינוכי שלה - כך שאינך צריך לדאוג שמרדפים יירדפו אחריך, למשל. אינטראקציה עם העולם הזה אינה דורשת הגדרה מיוחדת, אלא רק בנייה חדשה של מערכת ההפעלה Raspbian בתוספת סביבת תכנות. הייתי בוחר ב- Geany, אותו תוכל להתקין על ידי פתיחת LXTerminal והקלדה:

sudo apt-get להתקין geany

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

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

ייבא mcpi.minecraft כ- minecraft, זמן mc = minecraft.Minecraft.create ()

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

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

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

def clear_house (גרעיני):
אם גרעיני == נכון:
blast_zone = 20
אַחֵר:
blast_zone = 0
mc.setBlocks (left-blast_zone, player_
קרקע, תחתית + אזור פיצוץ, שמאל + רוחב + פיצוץ_
אזור, שחקן_שטח + גובה + פיצוץ_
אזור + 10, אזור תחתון-פיצוץ_אזור, אוויר_חסום)

כאשר אנו קוראים clear_house, אנו מעבירים את הפרמטר גרעיני. יש לו את הערך נכון או לא נכון. אתה יכול לנסות לקרוא לזה עם True כדי לנקות נפח גדול יותר סביב אזור היעד, או להתקשר אליו עם False כדי להגביל את המרווח למידות הפנימיות של הבית. ב- Minecraft, הפונקציה mc.setBlocks משמשת ליצירת קוביית בלוקים על ידי העברת הקואורדינטות, בתלת מימד, של פינות מנוגדות ואחריהן סוג הבלוק שברצונך להשתמש בו. במקרה זה אנו מפנים מקום, ולכן אנו משתמשים באוויר.

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

def ראשי ():
clear_house (שקר)
start_pos = [שמאל, תחתון, שחקן_
קרקע, אדמה]
build_floor (start_pos)
קורס = build_walls (start_pos)
להוסיף_דלת (מיקום דלת)
זמן. שינה (עיכוב * 10)
build_roof (start_pos, כמובן)

הפונקציה הבאה הנקראת main () בונה את הרצפה - זו משתמשת ב- mc. setBlocks שוב כדי לחצוב תשתית (לאפקט אמנותי) ואז להוסיף קוביית אריחי רצפה בעומק של בלוק אחד ליצירת רצפה מוצקה בביתנו.

כיצד למחוק דף

בניית הקירות

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

def build_course (start_pos, כיוון,
קוּרס):
בלוקים = ​​1
current_horiz = start_pos [0]
current_vert = start_pos [1]

אם כיוון == למעלה או
כיוון == למטה:
number_of_blocks = אורך
אַחֵר:
number_of_blocks = רוחב

ואילו בלוקיםmc.setBlock (current_horiz, player_
מסלול קרקע + מסלול הנוכחי, קיר_חסום
אם כיוון == למעלה:
current_vert- = 1
כיוון elif == למטה:
current_vert + = 1
כיוון אליף == ימינה:
current_horiz + = 1
אַחֵר:

current_horiz- = 1
בלוקים = ​​בלוקים + 1 # עוברים לבלוק הבא
זמן. שינה (עיכוב)

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

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

איך אתה רואה אילו תמונות מישהו אוהב באינסטגרם

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

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

השינויים האלה אולי נשמעים טריוויאליים, אבל אני מתכנת בצורה מקצועית יותר מ -20 שנה ואני עדיין זוכה לריגוש כשקטע קוד עובד כמתוכנן. אם מעולם לא תיכנתת בעבר, אני מקווה שתספק - ואם יש לך אוהד של מיינקראפט בבית, אני מציע לשחרר אותם על הקוד ולראות לאן זה לוקח אותם. תוכלו למצוא קישורים למשאבי Minecraft Pi בכתובת kevpartner.co.uk/programming .

מאמרים מעניינים

בחירת העורך

הורד סמלים מ- Windows 10 build 10147
הורד סמלים מ- Windows 10 build 10147
יש הרבה אייקונים חדשים ב- Windows 10 build 10147 האחרונים. כאן תוכל להוריד אותם.
המקרנים הזולים הטובים ביותר של 2024
המקרנים הזולים הטובים ביותר של 2024
המקרנים הזולים הטובים ביותר מאפשרים לך להפוך את הבית שלך לאולם קולנוע בתקציב נמוך. חקרנו אפשרויות מובילות לצפייה על המסך הגדול בבית.
מהו קובץ MDB?
מהו קובץ MDB?
קובץ MDB הוא לרוב קובץ מסד נתונים של Microsoft Access. אתה יכול לפתוח, לערוך ולהמיר קובצי MDB עם Microsoft Access ותוכניות מסד נתונים אחרות.
כיצד להפסיק לקבל מבנים מקדימים לתצוגה מקדימה ב- Windows 10
כיצד להפסיק לקבל מבנים מקדימים לתצוגה מקדימה ב- Windows 10
תצוגה מקדימה של Windows Insider היא תוכנית מיוחדת המאפשרת למשתמשים לקבל גרסאות טרום הפצה של Windows 10. אם אתה מבין שהגיע הזמן לעזוב את התוכנית בשלב זה, כך ניתן לעשות זאת.
כיצד למחוק את חשבון Instagram שלך לצמיתות - 2021
כיצד למחוק את חשבון Instagram שלך לצמיתות - 2021
https://www.youtube.com/watch?v=c-1CaPedsCc עם יותר ממיליארד משתמשים, אינסטגרם היא אחת הרשתות החברתיות הפופולריות ביותר כיום. זו הקהילה המקוונת השמינית בגודלה מאחורי פייסבוק ועמיתים בבעלות פייסבוק
כיצד לאפשר מציג אירועים מהיר דמוי XP ב- Windows 8
כיצד לאפשר מציג אירועים מהיר דמוי XP ב- Windows 8
NT6, שעידן החל עם Windows Vista, הציגה מציג אירועים חדש עם פילטרים וקטגוריות של בלאק ג'ק ושות '. למרות שהם די שימושיים ומאפשרים לך לאתר כל אירוע / שגיאה במערכת בקלות, מציג האירועים איטי מאוד. אלה מאיתנו שהשתמשו ב- Windows XP / 2000 עדיין זוכרים כמה מהיר וקומפקטי
כיצד להפעיל מצב HiDPI ב- MacOS
כיצד להפעיל מצב HiDPI ב- MacOS
רוצה חדות דמוי רשתית בצג ההגדרה הסטנדרטי שלך? כך ניתן להשיג את זה עם מצב HiDPI במערכת ההפעלה X, אם כי יש אזהרה גדולה שהופכת את זה לשימושי רק בנסיבות מיוחדות. המשך לקרוא כדי ללמוד עוד.