תכנות ברובלוקס – בוסט מהירות לדמות

רובלוקס - בוסט מהירות
רובלוקס

תכנות ברובלוקס – בוסט מהירות לדמות

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

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

יצירת מודל התלת מימד

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

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

תכנות תוספת (בוסט) מהירות כשדורכים על הבלוק

אם נעבור על הבלוק שיצרנו לא יקרה כלום – עדיין לא הוספנו את הקוד שבאמת יגרום לדמות שלנו להאיץ כאשר דורכים עליו. כדי להוסיף קוד – נוסיף אובייקט סקריפט למשחק שלנו ע"י קליק ימני עם העכבר על הבלוק הצהוב (או הצבע שבחרתם) –> Insert Object –> Script. לאחר לחיצה על כפתור הסקריפט, יפתח לכם חלון חדש עם קוד ברירת מחדל שמדפיס לוג. אין לנו צורך בו, לכן נוכל למחוק אותו. בשלב הבא נגדיר משתנה שיכיל את האבייקט עליו אנחנו כותבים את הסקריפט – הבלוק הצהוב. נקרא למשתנה בשם speedBost (בוסט מהירות) ונגדיר אותו כך:

local speedBost = script.Parent

הגדרת הפונקציה

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

local function steppedOn(part)
    // כאן נכתוב את הקוד של הפונקציה שלנו - קוד שיפעל כל פעם שדורכים על המשטח הצהוב
end

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

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

local parent = part.Parent

שימו לב כי בצורה דומה הגדרנו בתחילת המדריך משתנה בשם speedBost – המשתנה שמכיל בתוכו את המשטח הצהוב – שהוא בעצם ה"אבא" של הסקריפט שאנחנו כותבים (כי הסקריפט רץ עליו – זוכרים על מה לחצנו כדי ליצור את הסקריפט?)

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

if game.Players:getPlayerFromCharacter(parent) then
 // נכתוב כאן את הקוד שמעלה את המהירות לדמות שדרכה על המשטח
end

הגדרת מאפיין מהירות הדמות

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

parent.Humanoid.WalkSpeed = 50

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

speedBoost.Touched:connect(steppedOn)

שם האירוע הוא Touched – נגיעה – שכאשר משהו נוגע באובייקט speedBoost שלנו (המשטח הצהוב) אנחנו מפעילים את הפונקציה שהגדרנו בשם steppedOn.

בשלב הזה אתם מוזמנים ללחוץ Play לראות את הדמות שלנו מקבלת מהירות כשאנחנו דורכים על המשטח הצהוב! אבל רגע.. אפשר להאט קצת? המהירות לא מסתיימת! לכן נכתוב קטע קוד נוסף שלאחר 2 שניות מחזיר את המהירות של הדמות שלנו למהירות ההתחלתית שהייתה לה. את זה נוכל לעשות ע"י הפונקציה wait() כדי לחכות 2 שניות, והגדרת מהירות התזוזה עם אותה פקודה בה השתמשנו כדי לעלות את המהירות (שינוי המאפיין WalkSpeed) לדמות. קטע הקוד המלא:

local speedBost = script.Parent

local function steppedOn(part)
   local parent = part.Parent
    
   if game.Players:getPlayerFromCharacter(parent) then
      parent.Humanoid.WalkSpeed = 50
      wait(2)

      parent.Humanoid.WalkSpeed = 16
   end

end

speedBoost.Touched:connect(steppedOn)

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

תגובות

האימייל לא יוצג באתר. שדות החובה מסומנים *