לדלג לתוכן

מבוא לתכנות של קבוצת בטא/קורס אלפא/שינוי קוד משחק

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי

שינוי משחק שכתוב ב 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# בתחילת הקוד, ואפשר למצוא אותם שם ולשנות אותם בקלות.

שינוי משחק שכתוב בג'וליה

[עריכה]

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

שיניתי דברים במשחק! איזה כיף.

[עריכה]

יש לי עוד רעיונות לשינויים!

[עריכה]

מצוין! אבל הם בטח יותר מסובכים משינוי צבע, צורה או מהירות.

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

איזה מזל שהרגע סיימתם את קורס אלפא. 🥳

ואם יש לכם לפחות נקודה אחת, אז אתם כבר בשלב הבא: קבוצת בטא!

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

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

עכשיו

באמת

זהו.