-
დავუბრუნდეთ ჩვენს სახატავ პროგრამას.
დღეს აქ ტექსტს დავამატებთ.
-
ახლა მინდა ყოველი ვინსტონი
წარწერის ქვეშ მოვათავსო
-
მისი ცხოვრების
სხვადასხვა ეტაპები რომ გამოჩნდეს.
-
ალხა ვინსტონი ყველგანაა
-
ეს იმიტომ, რომ ჩვენ faceX-სა და faceY-ს
შემთხვევითად ვირჩევთ შიგნით ფუნქციაში
-
ჩვენ კი გვინდა ზუსტი ადგილი მივუთითოთ,
სადაც ვინსტონი უნდა დაიხატოს
-
ყოველ ჯერზე, როცა ამ ფუნქციას გამოვიძახებ,
მინდა შემეძლოს ადგილის მითითება
-
ისევე, როგორც
ellipse()-ისა და rect()-ის შემთხვევაში
-
ვინსტონი მინდა დავსვა აქ, აქ,
ერთი აქ და ერთი ვინსტონიც აქ
-
აღარ მინდა ის შემთხვევით ადგილას დაიხატოს
ყოველ ჯერზე, როცა ფუნქციას ვიძახებ
-
ამისთვის ფუნქციას
უნდა მივუთითოთ პარამეტრები
-
ორივე პარამეტრი უნდა მივუთითოთ
ჩვენი ფუნქციის აღწერაში აი აქ, ზემოთ
-
და გადავცეთ შესაბამისი მნიშვნელობები აქ,
ქვემოთ, სადაც ვიძახებთ.
-
drawWinston()-ს გადავცემთ
faceX-სა და faceY-ს
-
ეს მნიშვნელობები ფუნქციამ უნდა გამოიყენოს
შემთხვევითების მაგივრად.
-
ახლა ვიფიქროთ, რა უნდა გადავცეთ
ფუნქციის გამოძახებისას, ქვემოთ
-
ჩვენ ვსვამთ ვინსტონს ყოველი წარწერის ქვეშ
-
ასე რომ გადაცემული x და y იმის მსგავსი
უნდა იყოს, რაც text()-ს გადავეცით
-
შეიძლება y 10 პიქსელით დაბლა ავიღოთ
-
ეს იქნება 10 და 30
-
ეს კი 200 და 230
-
10 და 230
-
200 და 230
-
იგივე რიცხვებს ვიღებ, რაც წარწერების
კოორდინატები, ოღონდ ყოველ y-ს 10-ს ვუმატებ
-
იმიტომ რომ მინდა, რომ ოდნავ დაბლა დავხატო
-
ვინსტონი არ გადაწეულა
-
ზემოთ აღწერილი ფუნქციისთვის არ გვითქვამს,
რომ პარამეტრებს გადავცემთ
-
და ის ისევ შემთხვევით რიცხვებს იყენებს
-
იმისთვის, რომ ფუნქციამ გაიგოს,
რომ პარამეტრებს გადავცემ
-
პარამეტრებს ამ ფრჩხილებში
სახელები უნდა დავარქვათ.
-
დავარქვათ მათ faceX და faceY,
შუაში მძიმე
-
ეს სახელები იმიტომ ავარჩიეთ,
რომ ამავე სახელებს ფუნქციაში ვიყენებთ
-
ასე კოდის თავიდან დაწერა არ მოგვიწევს.
-
მაგრამ ისევ არაფერი შეცვილია,
ვინსტონი ისევ იქვეა.
-
თუ ფუნციის სულ ზედა ნაწილს ჩახედავთ
-
ნახავთ, რომ faceX-სა და faceY-ს
შემთხვევით მნიშვნელობებს ვანიჭებთ.
-
უბრალოდ ეს ხაზები უნდა წავშალოთ
-
ახლა faceX-ისა და faceY-ის
მნიშვნელობები ფუნქციას გადაეცემა
-
და ეს ის მნიშვნელობებია,
რომლებით აქ მივუთითეთ.
-
ვინსტონი მთლად სწორ ადგილებში ვერ დავსვი
-
დამავიწყდა, რომ წარწერის ადგილი
განისაზღვრება ზედა მარცხენა კუთხით
-
ხოლო სახის ადგილი - ცენტრის მიხედვით
-
უნდა შევცალო ჩემი რიცხები აქ
-
x საკმაოდ უნდა შევცვალო,
ეს კი აქ დავსვა
-
ვცვლი იმ მნიშვნელობები,
რომლებსაც ფუნქციას გადავცემთ
-
ფუნქციის აღწერა არ არის შესაცვლელი
-
ის იმ მნიშვნელობებს იღებს,
რომელსაც ჩვენ გადავცემთ.
-
ისივე, როგორც ellipse() და rect()
-
ადგილი ავარჩიე, მაგრამ ახლა შევამჩნიე,
რომ ვინსტონი ზედმეტად დიდია
-
ვინსტონები ერთმანეთს ედება
და ეკრანზე არ ეტევა
-
მას ხატავს კოდი, რომელიც
ამ ფუნქციაში მოვათავსე
-
შემიძლია ყველა ვინსტონის ზომა
ერთად შევცვალო
-
ამისთვის მხოლოდ იმ ხაზის შეცვლაა
საჭირო, რომელიც ელიპსს ხატავს
-
თუ მათ შევცვლით, ვთქვათ, 190-ით,
ვინსტონი გახდება 190-ჯერ
-
ახლა ის უკეთ ეტევა
-
შემიძლია გავაგრძელო, რათა ვინსტონი
მთლიანად შიგნით მოვათავსო.
-
მშვენიერი
-
შევაჯამოთ.
რას აკეთებს ეს კოდი:
-
ის განსაზღვრავს ფუნქციას drawWinston()
-
და ამბობს, რომ ის ორ მნიშვნელობას იღებს -
faceX-სა და faceY-ს
-
ეს მნიშვნელობები შემოდიან როგორც ცვლადები,
რომლებიც ფუნქციაში შეგვიძლია გამოვიყენოთ
-
ისევე, როგორც ცვლადები,
რომლებსაც ზემოთ გამოვაცხადეთ
-
და შემდეგ ამ ფუნქციას ვიძახებთ ნებისმიერ
დროს, მას შემდეგ რაც გამოვაცხადებთ
-
შეგვიძლია მას განსხვავებული
მნიშვნელობები გადავცეთ
-
თქვენ ნახეთ, რა კარგ
საშუალებებს გვაძლევენ ფუნქციები
-
შეგვიძლია დავწეროთ ისეთი კოდი,
რომლის ბევრჯერ გამოყენება კარგი იქნება
-
ასევე შეგვიძლია გამოვიყენოთ პარამეტრები,
რაღაცების შეცვლა რომ შეგვეძლოს
-
ეს რეცეპტს ჰგავს.
გვაქვს ზოგადი ისნტრუქციები
-
და თუკი მიხვდით, რომ უცებ ოთხი ვინსტონის
კვება გახდა საჭირო ერთის მაგივრად
-
არ მოგიწევთ თავიდან დაიწყოთ,
უბრალოდ შეცვლით საწყის ინსტრუქციებს
-
და ყველაფერს ოთხზე გაამრავლებთ
-
ახლა შეგიძლია იფიქროთ
თქვენს კოდზე როგორც რეცეპტზე