დინამიკები 1: მოდით ახლა დაწეროთ პროგრამა რომ როგორმე ურთიერთქმედებს ჩემი მაუსი. კერძოდ, მოდით instantiate, ან შექმნათ ფანჯარა. და მაშინ მოდით მოვუსმინოთ, ასე ვთქვათ, ფარგლებში, რომ ფანჯარა მაუსის დაწკაპუნებით. და, როგორც კი აღმოაჩინოს მაუსის დაჭერით, მოდით ბეჭდვა printf კოორდინატები x მძიმით y რომ მაუსის დააჭირეთ, ნათესავი, რომ ფანჯარა. აქ ჩვენ მივდივართ. მოდით პირველ მოიცავს gevents.h, რომელიც სხვა header ფაილი სტენფორდის პორტატული ბიბლიოთეკა, რომელიც ეხება to გრაფიკული მოვლენები. მოდით ასევე მოიცავს gwindow.h, რომელიც შეიცავს ფუნქციებს დაკავშირებული Windows. მოდით ახლა ვაცხადებთ მთავარი ჩვეულ რეჟიმში. და მოდით ახლა instantiate რომ ფანჯარა. Gwindow - ჩვენ მოვუწოდებთ ეს ფანჯარა - შეადგენს newGwindow. და მე დააკონკრეტა, გარკვეულწილად თვითნებურად სიგანე 320 პიქსელი და სიმაღლე 240 პიქსელი. ახლა ჩვენ უნდა გააგრძელონ მოუსმინოს თაგუნას ღონისძიებები, რათა ვთქვათ, შიგნით რომ ფანჯარა. ახლა მოვლენები შეიძლება შეიცავდეს დაწკაპუნებით ან ტრანსვესტიტები და მოძრაობები. მაგრამ ახლა ჩვენ ფოკუსირება მხოლოდ დაწკაპუნებით. მე ვაპირებ შეგნებულად გამოიწვიოს უსასრულო loop ერთად, ხოლო მშენებლობა, უბრალოდ ისე, რომ ეს პროგრამა ეშვება სამუდამოდ, ან მინიმუმ, სანამ მე დააჭირეთ X ზედა მარჯვენა კუთხეში. ამისათვის, მოდით, ხოლო ჭეშმარიტი. და შემდეგ შიგნით რომ loop, მოდით პირველ შემოწმება მაუსის ღონისძიება ასეთია. ჩვენ ვაცხადებთ GEvent, ასე ვთქვათ. ჩვენ მოვუწოდებთ ცვლადი მოვლენა. და ჩვენ ვაპირებთ შესანახად, რომ დაბრუნების ღირებულება getNextEvent გავლით სპეციალური მუდმივი, რომელიც კონვენციის წერია ყველა caps, ე.წ. MOUSE_EVENT. სხვა სიტყვებით, სადღაც ამ სტენფორდის პორტატული ბიბლიოთეკა, არსებობს მუდმივი მოუწოდა MOUSE_CLICED. და არსებობს ფუნქცია განსაზღვრულია, რომ ე.წ. getNextEvent, რომლის მიზანი ცხოვრებაში არის გავაკეთოთ ზუსტად რომ. მოუსმინეთ და შემდეგ როდესაც იგი ესმის ერთი, დააბრუნებს შემდეგი ღონისძიება, რომ უკვე გამოიწვია მომხმარებლის მაუსი. ახლა მოდით შეამოწმეთ არის თუ არა რომ ღონისძიება null. რადგან ეს არ null, და რომ ჩვენ რეალურად მოისმინა რაიმე მომხმარებლის მაუსი, ჩვენ ვაპირებთ გაგრძელება რათა შეამოწმოს ახლა რა ტიპის ღონისძიება იყო. იმ შემთხვევაში, თუ getEventType გავლით ღონისძიება როგორც არგუმენტი, ტოლობის შეადგენს MOUSE_CLICKED, რომელიც ხდება უნდა იყოს კონკრეტული ტიპის მოვლენებს, რომელიც მხოლოდ კიდევ ერთი მუდმივი დეკლარირებული სტენფორდის პორტატული ბიბლიოთეკაში. ახლა, როგორც დაჰპირდა, მოდით ახლა ამობეჭდოთ კოორდინატები, რომ მაუსის დაწკაპუნებით. Printf "% .0 f. სხვა სიტყვებით რომ ვთქვათ, მე ვაპირებ ბეჭდვა გარეთ მცურავი წერტილი ღირებულება. მაგრამ მე არ მინდა, რომ ვხედავ ვერაფერს მას შემდეგ, რაც ათობითი წერტილი. ასე რომ მე დააკონკრეტა .0. Comma,% .0 f რომ y-კოორდინაცია ასევე. Backslash n ახლო გაცემა. და ახლა მოდით მისაღებად x-კოორდინაცია რომ ღონისძიება. ეს არის x-კოორდინაცია მაუსის დაწკაპუნებით. და მაშინ მოდით y ღონისძიება, რომელიც არის y-კოორდინაცია მაუსის დაწკაპუნებით. მოდით ახლა გადარჩენა, კომპილაციის, და აწარმოებს ამ პროგრამის. და როდესაც მე, ეს უნდა იყოს საქმე რომ არ აქვს მნიშვნელობა, სადაც მე დააწკაპუნეთ ფარგლებში ჩარჩოების ამ 320 240 pixel ფანჯარა, მე უნდა მერე ვნახოთ, ჩემს კონსოლის ფანჯარა x მძიმით y-კოორდინატები სადაც მე დაწკაპავთ. მიიღოს click. . / მიჰყვეთ. და იქ რომ window ჩვენ იწინასწარმეტყველა. ახლა ნება მომეცით დააჭირეთ უხეშად დაბრუნება მარცხენა კუთხეში ფანჯარა. ჩემი კონსოლის ეკრანზე, ვხედავ, რომ მე მოხდეს დააწკაპუნეთ x-კოორდინაციას შვიდი და y-კოორდინაციას შვიდი. მოდით ახლა დააწკაპუნეთ დაახლოებით ქვედა მარჯვენა კუთხეში ფანჯარა. და მე, როგორც ჩანს, დაწკაპავთ pixel კოორდინაციას 314, 229. მოდით ახლა გავაკეთოთ ქვედა მარცხენა კუთხეში. და მე ვხედავ 6, 233. და ზედა მარჯვენა კუთხეში, 305, 4. სხვა სიტყვებით, როგორც ჩანს, იმ შემთხვევაში, რომ ზედა მარცხენა კუთხეში ჩვენი ფანჯარა არის 0, 0. და ქვედა მარჯვენა კუთხეში ჩემი ფანჯარა 320, 240. სხვა სიტყვებით რომ ვთქვათ, მე არ მინახავს ზუსტად იმ ღირებულებებს, რომ მე უბრალოდ შესანიშნავად შეესაბამება ჩემი მაუსის კურსორი თითოეულ იმ კუთხეში. ეს არის ნამდვილი ზოგადად გრაფიკული პროგრამირების, თუ გამოყენებით სტენფორდის პორტატული ბიბლიოთეკის ან საუკეთესო ნებისმიერი სხვა, სადაც ჩვენ წარმოვადგენთ დაბრუნება კუთხეში 0, 0, და ქვედა მარჯვენა კუთხეში როგორც სიგანე მძიმით სიმაღლე გამოყენებით დადებითი ციფრები, მაშინაც კი, თუმცა ქვემოთ და მარჯვნივ.