קוד משחק גולף מטורף בסגנון ספקטרום | Wireframe #54 – פטל פטל

Share on facebook
Share on twitter
Share on linkedin
Share on telegram
Share on whatsapp
Share on email
פרסומת
תכנון תשתיות רפואיות


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

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

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

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

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

חסימה אופקית או אנכית?

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

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

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

קבל את הקוד

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

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

קבל את העותק של גיליון Wireframe 55

תוכל לקרוא תכונות נוספות כמו זו ב גיליון Wireframe 54, זמין ישירות מבית Raspberry Pi Press – אנו מספקים ברחבי העולם.

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



קישור לכתבת המקור – 2021-09-02 14:27:38

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on telegram
Telegram
Share on whatsapp
WhatsApp
Share on email
Email
פרסומת
MAGNEZIX מגנזיקס

עוד מתחומי האתר