
הטקסט המלא של הדקות הראשונות בהרצאה «פרויקט מעשי ב-#C - תוכנת צייר - חלק 38» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
טוב, אז מה אנחנו רוצים היום לעשות? ארייס ומוב. אז ארייס דומה לסלקטור, שאם ארייס לחוץ ואני בוחר באובייקט, הוא צריך פשוט להיעלם.
אז איך את זה נעשה? אז במאוס דאון, אם ארייסר לחוץ, אז זה בעצם כמו כל מה שקשור לסלקטור, זה נלך למאוס דאון, ומאוס דאון נלך לסלקטור, אם סלקטור אז כל זה, אבל אותו דבר בדיוק אפשר להגיד על ארייסר, רק שבסוף כאן, פה יש טיפול, זה הטיפול, אפשר להגיד שכל האזור הזה זה טיפול בטלקטור וטיפול
שונה זה טיפול של אירייסור. אז פה למה נגיד אם זה טלקטור שווה לטרו או אירייסור, אירייסר שווה לטרו.
אז אם זה אירייסר, פה נגיד אם זה טלקטור, סליחה, אם זה סלקטור, ככה, ואם זה אירייסור, שוב אחר.
אז מה אני עושה באירייסור? באירייסור אני רוצה פשוט למחוק אותו. אז איך אני... איך מוחקים? אני בסך הכל רוצה להוציא אותו מהרשימה ולעשות invalidate.
אז אני ניגש לרשימה, הרשימה נקראת שייפ, ונגיד לו רימוב, ונמצא שם את s1, וזהו, הוצאנו אותו, וכל מה שנותר זה לעשות invalidate.
panel-whiteboard invalidate זה אמור למחוק נריץ אז נצייר משהו field-rectangle ו-non-field-rectangle נשנה אותו להיות רק עבה יותר וזה נשנה להיות חלחל ועכשיו נגיד לו erase אותו זה מחק אותו וגם מוסיף לנו עוד משהו מוזר וגם אותו למחוק זה לא בדיוק עובד הוא מייצר לנו משהו אולי כי לא עשינו return אבל פה יש לנו return
פה אנחנו בכל מקרה יוצאים כי מצאנו בואו נראה מה הסיפור שלו הוא מחק ולא מחק טוב הוסיף מריץ מחדש ונגיד לו non-field rectangle וline וfree hand נבחר זה לא מעניין ואולי אני אבחר את e ונגיד לו נבחר את המלבן בואו נראה מה קורה אז הוא אמור עכשיו למחוק את המלבן זה אמור להיות פיגר מחק אותו והוא עושה invalidate שגורם
לסיור מחדש מה הוא עושה אחרי זה זה לא צ'ק אז הוא עושה return והוא סיים בפיינק עוברים על הרשימה אמורים להישאר פה שניים בואו נחלט יש פה שניים מי הם השניים האלה אחד זה הליין נשאר שם ליין ופרי-הנד זה הליין והשני זה הפרי-הנד זה פה בסדר אז מה מה הוא מצייר שם בנוסף, יש רק שניים, הוא סיים,
מה עוד יש לו לעשות, זהו, ומה הוא סמוב, מה הוא סמוב כמובן לא מעניין, הוא רק נכון לגבי אם פרי-הנד כרגע בחור והוא לא בחור, הוא נקרא מה שרצינו, מוזר, בואו ננסה למחוק את הפרי-הנד, היא נוגעה בפרי-הנד, והוא עשה רימוב לפרי-הנד והוא ציין ולידייט, וכנ"ל לגבי הליין, אחת הכל, משהו שם לא היה בסדר עם הפילד רקטאנגל,
שוב, נעשה field rectangle, וגם non-field ellipse ככה, ואז נגיד לו erase את ה-ellipse, מוחק אותה, ו-erase את המלבן הוא מוחק אותו, ויש לנו חריגה.
Index was out of range shape בגודל 0, חוט אחד, כמובן אין דבר כזה. למה הגענו לכאן? אנחנו בפונקציה mouse-up, בואו נסגור את זה רגע, ב-mouse-up עם סלקטור, אז גם, כמובן, עם eraser, eraser ואני חושב שבעצם מיצינו את הדין עם eraser.
כן, זה עובד די מצוין. freehand, eraser, מוחק אותו. non-feel-beliefs, eraser, מוחק. אז זה עובד מצוין, אני לא רואה את הבעיה. מה עוד רצינו לעשות? אז זה היה erase.
אז בואו נטפל גם במוב. מה זה בעצם מוב? מוב זה אם יש לי משהו שהיינו גאה בו, אז מזיז, כן, כל עוד סלקטור לחוץ ואני נוגע במשהו ומושך, אז הוא אמור לזוז.
אני הולך לקוד ובמאוס דאון, כאשר, או יותר נכון אפשר להגיד מאוס דאון, אם יש לי את סלקטור ובחרתי, אז עכשיו במאוס מוב עם פרי-הנד, אז ככה. אבל אם רדיו בטון לא הרייסר אלא סלקטור שק שווה לטרו אז זה בעצם move אז בעצם יש לי כרגע זהו אם הוא לחוץ ויש לי סלקטד שייפ אז אם סלקטד שייפ אם הוא שווה לנעל אין לי מה לעשות פה
זאת אומרת שהיוזר לחץ זיז אבל בעצם לא רוצה להזיז שום דבר הוא לא בחר עדיין משהו פשוט נעשה פה ריטרן אבל אם אנחנו עדיין כאן זה אומר שהוא בחר והוא רוצה באמת להזיז אותו אז בעצם אני רוצה להגיד לסלאקטד שייף שלי שהלוקיישן שלו בעצם אמור להשתנות או להגיד לו מוב אני יודע בעזרת E, ל-E יש דלתא get a sign count, רגע, לא, לא, זה לא קשור
זה גלגול הגלגל של העכבר, זה לא מעניין מה זה לוקיישן? sign count, the number of the, גם זה mouse wheel זה לא קשור אז מה שיש לי זה לא מעניין טוב אז אחרי דיון קצר אנחנו הגענו למסקנה שאנחנו חייבים לשמור את הנקודה xy כדי לחשב את הדלתא כי הדלתא הזו זו הדלתא של המהוס וויל כמה הוא זז אבל אין לנו את הדלתא של כמה העכבר
עצמו הקרסר זז אז לכן אנחנו חייבים לשמור את הנקודות האלה אז נגדיר ב-Variables את private point נגיד cursor ובמאוס דאון ובמאוס אפ אנחנו נעדכן את המספר הזה אז נגיד שcursor שווה ל-new point e.x, e.y ו-selected shape נגיד לו לזוז את הדלתא בעצם.
השאלה היא מה הדלתא אז כדי לחשב זה בעצם הנקודה הבאה לאן אנחנו מובילים אותה אבל כרגע נגדיר פה פוינט קאונט פוינט זה ככה וקרסר שווה בסוף לקאונט פוינט אבל באמצע אני צריך לחשב את דלתא אז נגדיר את Delta שווה ל-New Point שהיא ההפרש בין E.X פחות Cursor.X E.Y פחות Cursor.Y
זאת Delta ונלך ל-Move ונוסיף את Move ונלך