תכנות לילדים באמצעות Game Maker/טטריס/צעד 10: שורה מלאה: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
יונת (שיחה | תרומות)
מאין תקציר עריכה
יונת (שיחה | תרומות)
פירוט על מספר זיהוי של מופע
שורה 53:
</div>
 
{{גמייקר/בדיקה|האם השורה בגודל המתאים?}}
אבל יש כאן בעיה! המשתנה {{מונח|image_xscale|אִימֵג' אִיקְס סְקֵייל - מידת x של התמונה}} שהצבנו אליו שייך למופע הערימה שבו מבוצע הקוד, לא למופע השורה שיצרנו בשורה הקודמת! (אם תפעילו את המשחק תראו שמופע השורה נשאר קטן, ואילו מופע הערימה נעשה רחב.)
 
איךלא נשנהשינינו את גודל השורה אלא את גודל מופע הערימה, כי המשתנה {{מונח|image_xscale|אִימֵג' אִיקְס סְקֵייל - מידת x של התמונה}} שלשהצבנו המופעאליו שייך למופע הערימה שבו מבוצע הקוד ולא למופע השורה שיצרנו?<br> בשורה הקודמת.
 
הפונקציה {{מונח|instance_create|אִינְסְטַנְס קְרִיאֵייט - מופע ליצור}} מחזירה ערך שיכול לשמש בדיוק בשביל זה. לכן נשנה את שתי השורות האחרונות של הקוד לזה:
כשישאז אולי במקום לכתוב image_xscale נכתוב row.image_xscale כמו שעשינו במשחקים הקודמים? הבעיה עם זה היא שכאשר יש יותר ממופע אחד של row, הצבה למשתנה row.image_xscale תשנה את image_xscale ''בכל המופעים'' של row. אבל אנחנו רוצים לשנות רק את השורה שיצרנו, כי יכול להיות שיש שורות אחרות ברוחב אחר (אם בוחרים לצייר אזור משחק לא מלבני ומשלימים כמה שורות ביחדבבת אחת).}} לכן אנחנו צריכים למצוא דרך לכתוב image_xscale של המופע המסוים שיצרנו.
 
=== זיהוי מופעים ===
 
לכל מופע במשחק יש מספר זיהוי. אפשר לראות את המספר הזה בחלון תכונות החדר: מצביעים על מופע עם העכבר, ואז אפשר לראות את מספר הזיהוי שלו למטה בשורת המצב.
 
[[תמונה:gmaker_instance_id.png]]
 
מספר הזיהוי הזה הוא כמו שם פרטי של מופע, ואפשר להשתמש בו כמו שמשתמשים בשם האובייקט. למשל, אפשר לכתוב:
<div dir=ltr>
id = 100063;
id.image_xscale = 7;
</div>
ואז ישתנה הרוחב של מופע 100063 בלבד.
 
לכן אנחנו צריכים את מספר הזיהוי של מופע השורה שיצרנו. למרבה השמחה, הפונקציה {{מונח|instance_create|אִינְסְטַנְס קְרִיאֵייט - מופע ליצור}} מחזירהמחזיר האת ערךמספר שיכולהזיהוי לשמששל בדיוקהמופע בשבילשהיא זהיוצרת. לכן נשנה את שתי השורות האחרונות של הקוד לזה:
<div dir=ltr>
r = instance_create( x_check+16, y, row );
r.image_xscale = (x_right - x_check - 16) / 16;
</div>
זה אומר שמציבים במשתנה r את הערך שמחזירה הפונקציה {{מונח|instance_create|אִינְסְטַנְס קְרִיאֵייט - מופע ליצור}}. אזואז r מסמןמזהה את המופע החדש שנוצר, ולכן r.image_xscale מסמן את המשתנה image_xscale של המופע החדש שנוצר.
{{גמייקר/בדיקה|עכשיו דמות השורה מכסה את כל השורה שהושלמה.}}
{{הארה|למה לא להציב למשתנה row.image_xscale כמו שעשינו במשחקים הקודמים?
 
כשיש יותר ממופע אחד של row, הצבה למשתנה row.image_xscale תשנה את image_xscale ''בכל המופעים'' של row. אבל אנחנו רוצים לשנות רק את השורה שיצרנו, כי יכול להיות שיש שורות אחרות ברוחב אחר (אם בוחרים לצייר אזור משחק לא מלבני ומשלימים כמה שורות ביחד).}}
 
=== הבהוב ===