תוכן עניינים:

גרסה מחודשת של Battle City ב- GameGo עם ארקייד Makecode: 4 שלבים (עם תמונות)
גרסה מחודשת של Battle City ב- GameGo עם ארקייד Makecode: 4 שלבים (עם תמונות)

וִידֵאוֹ: גרסה מחודשת של Battle City ב- GameGo עם ארקייד Makecode: 4 שלבים (עם תמונות)

וִידֵאוֹ: גרסה מחודשת של Battle City ב- GameGo עם ארקייד Makecode: 4 שלבים (עם תמונות)
וִידֵאוֹ: Resident Evil игры | Развитие серии | Полная хронология 2024, נוֹבֶמבֶּר
Anonim
Image
Image

GameGo היא קונסולה ניידת למשחקי רטרו תואמת Microsoft Makecode שפותחה על ידי TinkerGen STEM education. הוא מבוסס על שבב STM32F401RET6 ARM Cortex M4 ומיועד לאנשי STEM או רק לאנשים שאוהבים ליהנות ממשחקי וידאו רטרו. אתה יכול לעקוב אחר הדרכה זו ולנסות את המשחק בסימולטור ארקייד של Makecode ולאחר מכן להריץ אותו ב- GameGo.

במאמר זה ננסה לשחזר משחק קלאסי של קרב טנקים של Battle City, שהופק במקור ופורסם בשנת 1985 על ידי Namco עבור Nintendo Entertainment System (NES). במשחק המקורי השחקן שולט על טנק וירה קליעים להשמדת טנקים של האויב. טנקי האויב מנסים להרוס את בסיס השחקן, כמו גם את הטנק של השחקן עצמו. נבצע שינוי כלשהו במשחק כדי להתאים טוב יותר לשיטות תכנות בלוקים עם GameGo, אך הגרסה המחודשת שלנו עדיין תשמור על דמיון רב למשחק המקורי. בואו נתחיל!

אספקה

GameGo

שלב 1: האלטר -אגו שלנו - טנק צהוב

האלטר -אגו שלנו - טנק צהוב
האלטר -אגו שלנו - טנק צהוב

פתח את Makecode Arcade בכתובת https://arcade.makecode.com/ ולחץ על פרויקט חדש. נתחיל בהכנת האלטר-אגו שלנו לטנק הצהוב. בחר הגדר את mySprite לגוש שחקנים מהסוג הצייר וצייר טנק צהוב כלפי מעלה כשספריט ההתחלתי שלנו, הכנס את הבלוק הזה בתוך בלוק ההתחלה. הוסף move mySprite עם לחצני לחצנים. עכשיו יש לנו טנק שנוכל להזיז בעזרת כפתורים בסימולציה! נהדר, אבל הוא תמיד פונה לאותו כיוון, גם כאשר אנו נעים כלפי מטה או הצידה …

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

אנו יורים כדורים עם קליע מוגדר לקליעה (נצייר ריבוע כסף קטן לאותו ספרייט) מ- mySprite עם מהירויות vx vy. בתוך הכפתור בלוק לחוץ, עלינו לבדוק את ערך הכיוון המוחלט כדי לראות אם הטנק הצהוב פונה כלפי מעלה/מטה משמאל/ימין. לאחר מכן אנו ממשיכים לירות את הקליע עם משתנה מהירות הכיוון -לכן היו לנו -100/100/-200/200 לערכי כיוון.

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

שלב 2: להוציא את האויבים

להוציא את האויבים
להוציא את האויבים
להוציא את האויבים
להוציא את האויבים

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

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

לאחר מכן, בבלוק האויב שנוצר אנו מוסיפים כמה אפקטים גרפיים, מניחים אותו על אריח ריק אקראי ומתקשרים לפונקציית pick_direction עבור ספרייט זה. ב- on -type of Enemy hits wall, אנו קוראים לאותה פונקציה, pick_direction.

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

לבסוף, נוסיף יריות לירות. אנו מוסיפים עוד עדכון משחק כל חסימה של 500 ms ושמים פריט עבור פריט ב-_list_ אויב. עם סיכוי של 30% שפיץ אויב יורה את קליע האויב בכיוון התנועה שלו.

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

שלב 3: 42 של המשחק

42 במשחק
42 במשחק
42 במשחק
42 במשחק
42 במשחק
42 במשחק

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

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

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

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

שלב 4: אין סוף משחק ושיפורים

אין סוף משחק ושיפורים
אין סוף משחק ושיפורים

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

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

אם אכן יצרת גרסה משופרת של המשחק, שתף אותה בתגובות למטה! למידע נוסף על GameGo וחומרה אחרת ליצרנים ולמחנכי STEM, בקר באתר האינטרנט שלנו, https://tinkergen.com/ והירשם לבלוג שלנו.

TinkerGen פתחה במסע קיקסטארטר ל- MARK (Make A Robot Kit), ערכת רובוט ללימוד קידוד, רובוטיקה, AI!

מוּמלָץ: