אנחנו שוב עם Winston, ועכשיו יש לנו גם את משתנה X וגם משתנה Y עבור המיקום שלו.
אז עכשיו נוכל לגרום לווינסטון לקפוץ מעלה ומטה, ולעשות מסיבת ווינסטון!
יפה. בואו נעבור על הקוד הזה לפני שנמשיך.
יש לנו משתני X ו-Y למעלה, ששומרים את המיקום של המרכז של הפנים של ווינסטון.
ואנחנו משתמשים בהם בשורה הזו כאן, איפה שאנו יוצרים את האליפסה של הפנים
אחר כך, אנו ממקמים את העיניים ואת הפה יחסית למיקום של מרכז הפנים
אז אנחנו מחסרים או מוסיפים ל-X ול-Y כדי לוודא שהעיניים הם 50 פיקסלים או 100 פיקסלים מהמרכז
לדוגמה, הפה הוא 50 פיקסלים ימינה מהמרכז,
ו-40 פיקסלים מתחת למרכז הפנים.
אז, בואו נראה מה עוד נוכל לשמור בתור משתנים.
כדי לעשות זאת, אני אעבור על כל שורה בקוד ואחפש משהו שנקרא לו מספרים קבועים.
אלו הם מספרים שהם פשוט מספרים פשוטים, לא משתנים או דברים שתלויים במשתנים
בואו נראה. באליפסה הראשונה שלנו, יש לנו 300 ו-300 עבור הרוחב והגובה.
אז אפשר לעשות משתנים עבורם במקום, למשל משתנה faceSize
אז faceSize שווה 300, ואז אנחנו יכולים להעביר את faceSize כאן, וזה יעביר 300 בתור הערך.
מגניב. בואו נמשיך.
כאן הכל משתמש ב-X או ב-Y או ב-eyeSize, אבל כאן למטה בשביל הפה, שוב יש לנו מספרים, רוחב 150 וגובה 150.
אז אפשר לעשות משתנה mouthSize, ששווה 150
ונעביר את mouthSize כאן. וזה פשוט יעביר את הערך 150, כי זה מה שהמשתנה שווה.
אוקיי. אז עכשיו כשעשינו את זה, אנחנו יכולים בקלות לשנות את גודל הפנים,
וגם לשנות את גודל הפה..
וגם נוכל לשנות את גודל העיניים.
אוקיי, זה מגניב. אבל יש משהו שאני לא אוהבת כאן
בכל פעם שאני משנה את גודל הפנים, הייתי רוצה שכל הדברים האחרים ישתנו בהתאם.
כך שאם אקטין מאוד את הפנים, אני רוצה שגם העיניים והפה יקטנו.
אם אני אקטין את הפנים פי שניים מהמספר המקורי, העיניים והפה צריכים גם
לקטון פי שניים מהגודל שלהם. אחרת הוא פשוט נראה ממש מטופש
כי העיניים שלו והפה שלו הרבה יותר מדי גדולים בשביל הפנים שלו
הם אפילו לא מחוברים אליו יותר.
מה שנרצה לעשות הוא איכשהו לגרום למשתנים האלו, mouthSize ו-eyeSize
להיות תלויים במשתנה faceSize.
אז בואו נחזיר את זה לערכים המקוריים.
אז נוכל לגרום לערכים האלו להיות מבוססים על הערך של faceSize
אז נכתוב mouthSize שווה ל-faceSize חלקי 2
אנחנו משתמשים בשבר, אנחנו אומרים שניקח חצי מגודל הפנים.
ואם אתם לא מכירים שברים, יש המון סרטונים בקאן אקדמי בנושא
כך שתוכלו לחזור על איך שברים עובדים.
אוקיי, עבור גודל העיניים, זה בערך faceSize חלקי 4.
זה לא מושלם, אבל זה די טוב. או אולי 7?
הנה, זה יותר טוב.
אם אתם בוחרים שבר לא מתאים בהתחלה, תמיד תוכלו לשנות את זה אחר כך.
פשוט תשחקו עם המספר הזה עד שזה נראה הגיוני
אז עכשיו אם נשנה את גודל הפנים, תראו איך העיניים והפה משנים את הגודל ביחד איתם?
ממש נחמד.
אבל משהו עדיין לא בסדר.
העיניים והפה עדיין מתנתקים מהפנים אם נקטין את זה ממש הרבה
הגודל נכון, הבעיה היא במרחק מהפנים
מה שקורה כאן זה שכאן למטה אנחנו ממקמים את האליפסות
יש לנו X מינוס 50 ו-Y מינוס 50, ואז X פלוס 100 ו-Y מינוס 60
אז גם אם הפנים שלנו הם רק בגודל 50 פיקסלים, אנחנו עדיין מזיזים את העיניים 50 פיקסלים מהמרכז
וזה מזיז אותן מחוץ לפנים.
אז אנחנו צריכים שבמקום 50 ו-100 וכל המספרים האלו שיש לנו כאן
הם צריכים להיות יחסיים לגודל הפנים, כך שאם גודל הפנים משתנה
אז המרחק של העיניים ושל הפה גם ישתנה.
אני אראה לכם למה אני מתכוונת. בואו נטפל בעין הראשונה.
זה X מינוס 50 פיקסלים
אז זה אומר שזה צריך להיות 50 פיקסלים שמאלה מהמרכז של הפנים
מה שאנחנו רוצים עכשיו זה להשתמש בשברים
אז זה יהיה faceSize חלקי 6
שישית מהגודל של הפנים.
מגניב. ואז גם כאן זה יהיה faceSize חלקי 6
עכשיו אם נשנה את הגודל, תראו שהעין הזאת היא במקום הנכון
יופי, אז העין הזאת טובה.
העין השנייה עדיין צריכה קצת עזרה
אז 100, זה יהיה faceSize חלקי 3, שליש מהגודל של הפנים
ו-60 זה חמישית מגודל הפנים, אז faceSize חלקי 5
מצוין. בואו נשנה את הגודל.. יפה מאוד.
יש לנו רק עדיין בעיה עם הפה
אז נלך לחלק של הפה בקוד
זה אולי יהיה faceSize חלקי 6 שוב
וזה בערך faceSize חלקי 7
יופי, עכשיו הכל בפרופורציות הנכונות. בואו נבדוק את זה.
מעולה, עכשיו אנחנו יכולים לעשות את ווינסטון ממש קטן
והעיניים והפה שלו הם עדיין בתוך הפנים שלו!
אני בטוחה שווינסטון מאוד שמח לגבי זה
אוקיי, יש!
בואו נעבור רגע על מה שעשינו כאן.
למעלה, יש לנו את המשתנים שלנו
מתחילים עם משתנה שרק שומר מספר, 200
ואז המשתנים mouthSize ו-eyeSize הם תלויים במספר הזה
הם שברים של המספר הזה, כך שאם faceSize הוא כרגע 200
אז mouthSize יהיה 100
אבל אם נשנה את faceSize ל-300, אז mouthSize יהיה פתאום 150
אז זה תמיד משתנה בפרופורציה
אחר כך כאן למטה, כשאני מחשבים את המרחקים, אנחנו גם משתמשים בשברים
כי אנחנו רוצים שגם המרחקים ישתנו בפרופורציה לגודל הפנים
בעצם אנחנו פשוט רוצים שיהיה לנו רק משתנה אחד שמשפיע על כל השאר
וראיתם שאנחנו יכולים לעשות את זה עם משתנים וביטויים עם משתנים.
אז, עכשיו שאנו מבינים איך לגרום למשתנים להיות תלויים במשתנים אחרים
אנחנו יכולים לעשות הרבה יותר דברים עם התוכניות שלנו
בואו נחגוג את זה ונגדיל את ווינסטון להיות ענק!!
קדימה ווינסטון, תמשיך לגדול, תמשיך לגדול!
אההההה!!!