>> 1 SPEAKER: בואו עכשיו לכתוב תכנית שאיכשהו אינטראקציה עם העכבר שלי.
בפרט, בואו מופע, או ליצור חלון.
ואז בואו נקשיב, אם אפשר לומר כך, בתוך חלון שללחיצות עכבר.
וברגע שאנו מזהים בלחיצת עכבר, בואו להדפיס עם printf
קואורדינטות y פסיק x של עכבר ש לחץ, יחסית לחלון זה.
>> הנה זה מתחילים.
בואו כוללים ראשון gevents.h, שהוא קובץ כותרת אחרת בסטנפורד
ספרייה ניידת המתייחסת לאירועים גרפיים.
בואו גם כוללים gwindow.h, אשר מכיל פונקציות הקשורות ל-Windows.
בואו עכשיו להכריז עיקרי בדרך הרגילה.
>> ובואו עכשיו מופע חלון זה.
Gwindow -
אנחנו קוראים לזה חלון -
שווה newGwindow.
ואני תציין באופן שרירותי למדי רוחב של 320 פיקסלים וגובה של
240 פיקסלים.
>> עכשיו אנחנו צריכים להמשיך להקשיב לאירועי עכבר, ולכן כדי
לדבר, בתוך חלון זה.
עכשיו אירועים יכולים לכלול לחיצות או גורר או תנועות.
אבל לעת עתה נתמקד רק על קליקים.
אני הולך לגרום במכוון לולאה אינסופית עם מבנה בזמן,
פשוט כדי שתכנית זו פועלת לנצח, או לפחות עד שאני לוחץ על
X בפינה הימנית העליונה.
>> לשם כך, בואו לעשות בזמן נכון.
ואז בתוך הלולאה ש, מאפשר סימון ראשון עבור
אירוע עכבר באופן הבא.
אנחנו נכריז GEvent, כביכול.
>> אנחנו קוראים לאירוע משתנה.
ואנחנו הולכים לחנות שב להחזיר ערך של getNextEvent, עובר
בקבוע מיוחד, שעל ידי אמנה כתובה באותיות הגדולות,
קרא MOUSE_EVENT.
במילים אחרות, אי שם בזה ספרייה ניידת סטנפורד, יש
קבוע הנקרא MOUSE_CLICED.
ויש פונקציה המוגדרת זה קרא getNextEvent, שמטרתה ב
חיים הוא לעשות בדיוק את זה.
תקשיב ל, ולאחר מכן כאשר הוא שומע אחד, מחזיר את האירוע הבא של זה
כבר מופעל על ידי העכבר של המשתמש.
>> עכשיו בואו לבדוק אם אירוע שהוא ריק.
בגלל שזה לא ריק, וזה אנחנו משהו שמע דווקא מ
העכבר של המשתמש, אנחנו הולכים כדי להמשיך כדי לבדוק איזה סוג החברה
של אירוע שהיה.
אם getEventType, עובר אירוע כטיעון, שווה שווה
MOUSE_CLICKED, אשר קורה להיות סוג מסוים של אירועים, שהוא רק
קבוע אחר שהוכרז ב ספרייה ניידת סטנפורד.
עכשיו כפי שהובטחו, בואו עכשיו להדפיס קואורדינטות של שלחיצת העכבר.
"F .0% printf.
>> במילים אחרות, אני הולך להדפיס את ערך נקודה צפה.
אבל אני לא רוצה לראות שום דבר לאחר הנקודה העשרונית.
אז אני תציין .0.
פסיק,% ו .0 לקואורדינטה y גם כן.
קו נטוי הפוך n קרוב ציטוט.
>> ועכשיו בואו לקבל את קואורדינטת x מאירוע זה.
זה הקואורדינטה x של לחיצת העכבר.
ואז בואו לקבל y של האירוע, המהווה את קואורדינטת y
של לחיצת העכבר.
>> בואו עכשיו להציל, לקמפל, ולהפעיל את התכנית.
וכשאני עושה, זה צריך להיות במקרה כי לא משנה איפה אני לוחץ בתוך
גבולות 320 על 240 פיקסל זה חלון, אני צריך ואז רואה עליי
חלון הקונסולה ה-Y קואורדינטות פסיק x משם אני לוחץ עליו.
הפוך קליק.
. / לחץ.
ויש חלון שחזינו.
>> עכשיו תן לי לחץ בגסות בחלק העליון פינה השמאלית של החלון.
במסך הקונסולה שלי, אני רואה שאני יקרה ללחוץ על ה-X לתאם שבע
וקואורדינטת y שבע.
בואו עכשיו לחצו בערך בתחתית פינה הימנית של החלון.
ונדמיתי לי שלחצתי על פיקסל לתאם 314, 229.
>> עכשיו בואו נעשה הפינה השמאלית התחתונה.
ואני רואה 6, 233.
ופינה ימנית עליונה, 305, 4.
>> במילים אחרות, נראה שזה המקרה שהפינה השמאלית העליונה של
החלון שלנו הוא 0, 0.
והפינה הימנית התחתונה החלון שלי הוא 320, 240.
במילים אחרות, הייתי רואה דווקא הערכים האלה, היו לי רק
מיושר סמן העכבר שלי בצורה מושלמת בכל אחת מפינות האלה.
זה נכון באופן כללי בגרפי תכנות, בין אם באמצעות
ספרייה ניידת סטנפורד או ביותר בכל לפיה אנו מייצגים בראש אחר,
פינה כמו 0, 0, והחלק התחתון פינה הימנית כפסיק הרוחב
גובה, שימוש במספרים חיוביים, גם למרות שזה למטה וימינה.