מבוא לתכנות של קבוצת בטא/קורס אלפא/שינוי קוד משחק
שינוי משחק שכתוב ב C
[עריכה]איך מתחילים?
[עריכה]מתחילים עם להוריד את הקוד מהאינטרנט.
עברו לכותרת "מאיפה מורידים את הקוד".
ניסיתי פעם אחת, לא סיימתי ואני רוצה לנסות שוב
[עריכה]ננקה מה שעשינו בנסיון הקודם.
פשוט מוחקים את התיקיה games שיצרנו עם כל קבצי המשחק שבתוכה:
rm -r ~/games
וזהו. אפשר להוריד מחדש את הקובץ ולעשות כל מה שכתוב במדריך.
מאיפה מורידים את הקוד?
[עריכה]סיים לרדת? קדימה לשלב הבא.
מעבירים אותו לתיקיה שיצרנו במיוחד בשביל משחקים
[עריכה]יוצרים את תיקיית המשחקים:
mkdir games
נכנסים אליה:
cd games
מעבירים אליה את המשחק מהתיקיה שאליה הורדנו:
mv ~/Downloads/raylib_c_arkanoid-main.zip .
(מה זה אומר? ~ אומר "תיקיית הבית", Downloads/~ אומר "התיקיה Downloads שנמצאת בתיקיית הבית שלי".)
ופותחים את הקובץ שהורדנו
[עריכה]פותחים בעזרת הפקודה unzip:
unzip raylib_c_arkanoid-main.zip
עכשיו יש לנו תיקיה בשם raylib_c_arkanoid-main ובה כל הקוד של המשחק.
אל תאמינו לי. תעשו
ls
כדי לבדוק.
נוצרה לכם התיקיה של המשחק?
יופי.
היכנסו אליה והמשיכו לקימפול.
קדימה קימפול. איך מקמפלים את המשחק?
[עריכה]מורידים ומתקינים את כל הספריות שצריך לקימפול
[עריכה]שזה הרבה ספריות, אבל למזלנו במכונות הוירטואליות בחדר מחשבים כבר הורידו והתקינו לנו את כל הספריות שצריך למשחק הזה. אז אפשר לעבור ישר לקימפול.
אז תצטרכו להתקין אותן, ככה:
יש בין הקבצים של המשחק סקריפט ללינוקס דביאן שיתקין את כל מה שצריך בשבילנו.
אז ניכנס לתיקיה של המשחק:
cd raylib_c_arkanoid-main
נהפוך את עצמנו למנהל המערכת (הוא כנראה יבקש סיסמת root בשביל ההורדה. אם אתם לא מכירים את הסיסמה בקשו מעוזרי המדריכים שיעזרו לכם.):
su
ונריץ בתור מנהל המערכת את הסקריפט של ההורדות:
./raylib_dependencies_install.sh
מחכים, מחכים מחכים, עד שסיים את ההורדות.
וכשמסיים יוצאים מתפקיד מנהל המערכת, שלא נהרוס לעצמנו את הלינוקס:
exit
הקימפול!
[עריכה]האמת, העולם קצת התקדם מאז שמתכנתים קימפלו עם gcc. עכשיו מתכנתים מקמפלים עם תוכנה שבודקת שיש כל מה שצריך ואז מריצה את gcc בשבילם. קוראים לה cmake.
אז בואו גם אנחנו נתקדם ונשתמש ב cmake עם S- כדי שידע מאיפה לקחת את הקוד ועם B- כדי שידע לאן להוציא את התוכנה:
cmake -S . -B build
זה עדיין לא קימפל, רק בדק שיש כל מה שצריך ויצר הוראות לקומפיילר, שידע מאיפה לקחת דברים ואיפה לשים אותם. עכשיו מקמפלים אל התיקיה build:
cmake --build build
יופי, רק תבדקו שאכן יש תיקיה build:
ls
ושבתוכה יש את התוכנה שיצרנו:
ls build/arkanoid
רואים שם arkanoid ירוק? זה המשחק שלכם.
מריצים את המשחק
[עריכה]נריץ את המשחק ישר מהתיקיה שלו, בלי לטייל לשם, כי ככה בא לנו:
./build/arkanoid/arkanoid
עלה המשחק? יופי. שחקו קצת, לא עולה לכם כסף. (משחקים עם החיצים, לא עם העכבר. כדי שהמשחק יתחיל תקראו מה כתוב שם.)
בונוס: אם תשימו אוזניות תגלו שהוא גם עושה קולות.
איך משנים את המשחק?
[עריכה]ננסה לשנות את הגודל של הכדור.
למשחק הזה יש קובץ אחד עיקרי וכמה קטנים. אותנו מעניין הקובץ העיקרי main.c. הוא נמצא בתיקיה src.
אז נערוך אותו בלי לטייל אליו כי אנחנו עצלנים היום ולא בא לנו לטייל:
vim src/main.c
איפה נמצא פה גודל של כדור?
[עריכה]אפשר לחפש את המילה size, אבל אני אגלה לכם שלא תמצאו אותה. המתכנת בחר להשתמש במילה radius - הרדיוס של העיגול. והוא בחר להשתמש באותיות גדולות. אז חפשו RADIUS. (זכרו: בלינוקס אותיות גדולות ואותיות קטנות זה שני דברים שונים לגמרי.)
איך מחפשים מילה בvim? כתוב לכם בתזכורות של קורס אלפא.
מצאתי את הגודל! איך לשנות אותו?
[עריכה]מה כתוב שם? 10? זה כנראה מספר הפיקסלים של הרוחב של הכדור. שנו אותו למספר אחר, איזה מספר שבא לכם, ושמרו את הקובץ.
יופי. עכשיו לצאת מעורך הטקסט, לקמפל ולהריץ שוב את המשחק.
תזכורת, ככה מקמפלים את המשחק הזה:
cmake --build build
ואז מריצים:
./build/arkanoid/arkanoid
השתנה הגודל של הכדור?
ניצחון.
מה עוד אפשר לעשות?
[עריכה]אפשר לשנות את המהירות של הכדור, או את הגודל של החלון של המשחק, או את הגודל של הלבנים, או את הרווח ביניהם, או את מספר השורות או את ההודעות בתילת המשחק ובסופו, או מה שבא לכם. איזה מילים תחפשו כדי למצוא את מה שאתם רוצים לשנות?
או שאולי בכלל קלטתם שהמתכנת של המשחק הזה עשה עבודה מצויינת, ובמקום לפזר את המספרים בכל רחבי הקוד הגדיר את רובם מראש בdefine# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות.
שינוי משחק שכתוב בג'וליה
[עריכה]המשחק עם הכדור שראיתם בהצגת הקורסים כתוב בשפת ג'וליה. אבל במחזור הראשון של קורס אלפא לא הספקנו ללמוד על ג'וליה, אז נעשה את זה בפעם אחרת.
שיניתי דברים במשחק! איזה כיף.
[עריכה]יש לי עוד רעיונות לשינויים!
[עריכה]מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות.
בשביל לעשות שינויים מורכבים יותר תצטרכו לדעת קצת יותר תכנות ממה שלומדים בקורס אלפא. שזה הקורס שלנו.
איזה מזל שהרגע סיימתם את קורס אלפא. 🥳
ואם יש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: קבוצת בטא!
נסו להגיע לחגורה צהובה בבטא. כשתהיו חגורה צהובה תוכלו לשנות הרבה יותר דברים במשחק וגם לגלות איזה כפתורים מפעילים את היכולות הנסתרות שם!
תודה שהשתתפתם, היה כיף, וניפגש במפגשים של קבוצת בטא. (ועד שתחזור הפגישה השבועית של בטא במתנ"ס, מוזמנים לבקש מעופר להיות עוזרי מדריך במחזור הבא של קורס אלפא.)
עכשיו
באמת
זהו.