Jul 31, 2024
# GD50 הרצאה אחת: ציפור פרחונית
## מבוא
- מרצה: קולטן אוגדן
- דגש על פיתוח משחק ציפור פרחונית.
- הרצאה קודמת: כיסינו פונג תוך שימוש בצורות וצבעים בסיסיים.
## נושאים מכוסים
1. **תמונות וספרייטים**
- טעינת תמונות מהזיכרון וציורן על המסך.
- מעבר מריבועים לספרייטים.
2. **גלילה אינסופית**
- יישום צינורות שגוללים ברציפות מימין לשמאל.
3. **אשליות בתכנון משחק**
- ההיקף הנתפס של משחקים מושג לעיתים קרובות דרך תעלול מצלמה בגלל חומרה מוגבלת.
4. **יצירה פרוצדורלית**
- משמשת ליצירת צינורות בגבהים שונים כדי ליצור שלבים אינסופיים.
- נדונה לאורך הקורס.
5. **מכונות מצבים**
- מעבר מניהול מצבים מופשט לגישה מבוססת מחלקות.
6. **קלט עכבר וצליל**
- טיפול בקלט משתמש והוספת מוזיקה כמגע מבריק.
## משאבים
- מאגר GitHub לקוד הדמו: **GitHub/games50/fiftybirds**.
- קריאה מומלצת:
- *איך ליצור RPG* מאת דן שולר (מבוסס על Lua).
- *תבניות תכנות משחקים* מאת רוברט ניסטורם (פיתוח משחקים כללי).
## מכניקת משחק
- מטרה: למנוע מהציפור לפגוע בצינורות או בקרקע.
- ניקוד: הנקד כשעוברים דרך צינורות.
- הסוף המשחק: נגיעה בצינור או בקרקע מסיימת את המשחק.
## סשן תכנות חי
1. **הגדרת הסביבה**
- יצירת קובץ `main.lua` חדש לפיתוח.
- הגדרת מידות חלון פיזיות ורזולוציה וירטואלית לצורך קנה מידה.
2. **ציור תמונות**
- טעינת רקע ותמונות קרקע באמצעות `love.graphics.newImage`.
- יישום רינדור בסיסי ב-`love.load`.
3. **גלילה פרלקסית**
- יישום מהירויות גלילה שונות לרקע ולפורגרונד כדי ליצור אשליית עומק.
## תכונות משחק
- הצגת אינטראקטיביות משתמש באמצעות קלט עכבר או מקלדת לצורך קפיצה.
- הדגמת גילוי התנגשויות באמצעות תיבה מוערכת (AABB).
- דיון ביצירה פרוצדורלית של צינורות ליצירת משחקיות דינמית.
## נושאים מתקדמים
- יישום מכונות מצבים לניהול מצבי משחק (כותרת, ספירה לאחור, משחק, ניקוד).
- הוספת אפקטי צליל לקפיצות, ניקוד ומצבי סוף משחק.
- שימוש במחלקות לניהול עצמים במשחק (ציפור, צינורות).
## סקירת מטלות
- ליצור פערים צינורות אקראיים ומרווחי יצירה משתנים.
- יישום פרסי מדליות לפי ביצועים.
- הוספת תכונת עצירה, המאפשרת למשתמשים לעצור/להמשיך את המשחק.
## סיכום
- הרצאה הבאה: מושגי יריעות ספרייטים, פריסות פרוצדורליות, בריאות ועוד.
- דגש על מינוף אשליית העומק ומתן חווית משתמש מעוררת באמצעות צליל ופידבק ויזואלי.