კიდევ ერთი ანიმაცია. ამჯერად ბურთი ეკრანის გასწვრივ მოძრაობს.
თქვენ იცით ეს როგორ კეთდება.
გვაქვს x ცვლადი, რომელიც ბურთის მდებარეობას გვეუბნება,
და ცვლადი "speed", რომელიც გვეუბნება რა რამდენად შორს მიდის ბურთი,
ასევე, ნაცნობი სახატავი მარყუჟი, სადაც ფონს ვცვლით ყოველ ჯერზე.
ფერის დაყენება, და ელიფსის დახატვა x პოზიციაზე.
ყოველ ჯერზე x-ს x-ის ძველი მნიშვნელობით შევცვლით,
პლუს "speed" ცვლადი.
"speed"-ს თუ შევამცირებ-- restart-ს დავაჭერ, რათა ბურთი დავაბრუნო--
როგორც ხედავთ უფრო ნელა მოძრაობს.
ან შემიძლია უარყოფითი გავხადო, რათა უკან წამოვიდეს
ან ნული გავხადო და გავაჩერო.
"x" ნულს თუ არ უდრის ბურთი ეკრანიდან გავა.
შემიძლია restart-ს დავაჭირო და დავაბრუნო,
მაგრამ ცოტა ხანში მოსაწყენი ხდება restart და restart...
ვთქვათ, როდესაც ბურთი მარჯვენა კიდეს მიუახლოვდება
იმის ნაცვლად, რომ ეკრანიდან გავიდეს
მინდა მოვაბრუნო.
და ვიცი, რომ ბურთის მოსაბრუნდებლად შემიძლია დავწერო
"speed" ხდება მინუს ხუთი.
უარყოფითი, რომ გაგვეხადა ბურთი უკან წამოვიდოდა.
საქმე ისაა, რომ მხოლოდ მაშინ მინდა სიჩქარის შეცვლა
თუ ბურთმა მარჯვენა კიდეს მიაღწია.
მინდა სიჩქარის შეცვლა თუ ბურთმა მარჯვენა კიდეს მიაღწია.
მგონი "IF" ბრძანებას მოითხოვს.
აქამდე კომპიუტერს ბრძანებებს ვაძლევდით ნებისმიერი შემთხვევისთვის
"IF" განცხადებით, ვეუბნებით, რომ გვინდა ეს ბრძანებს რაღაც ვითარებაში შეასრულოს.
სიჩქარე შეცვალე თუ ბურთი მარჯვენა კიდევ მიუახლოვდა.
აი, როგორ გამოიყურება კოდის სახით.
წერთ: "IF", მრგვალ ფუჩხილებს, ფრჩხილებს.
მრგვალ ფრჩხილებში დავწერთ გარემოებას,
ხოლო bracket-ის შიგნით- კოდს.
თუ ეს გარემოება მართალია, გაუშვი ეს კოდი.
სხვა შემთხვევაში, ნუ შეწუხდები.
ჩვენ შემთხვევაში გარემოება არის ბურთის მარჯვენა კიდესთან მიახლოება.
როგორ გავიგოთ მიაღწია თუ არა ბურთმა მარჯვენა კიდეს?
გვაქვს x ცვლადი, რომელიც გვეუბნება სადაა ბურთი.
და ვიცი, რომ კიდე არის x-ის მდგომარეობა 400-ში.
მაშ, ვნახოთ
როდესაც x 400-ზე მეტია, ვიცით რომ ცოტათი გასცდა მარჯვენა კიდეს.
ხოლო კოდი, როგორც ადრე ვთქვით,
სიჩქარე მინუს ხუთი ხდება.
ახლა restart-ს დავაჭერ და ვნახოთ რა მოხდება.
ამჯერად, როდესაც ბურთი მარჯვენა კიდეს მიაღწევს ნახტომს აკეთებს.
შემდეგ კი ეკრანიდან გადის, მაგრამ არაუშავს
რადგან მეორე მხარესაც იმავეს გაკეთება შეგვიძლია.
ამ შემთხვევაში, გვაინტერესებს ბურთი მარცხენა კიდეს მიუახლოვდა თუ არა.
ეს მაშინ ხდება, როდესაც x ნულზე ნაკლებია.
გვინდა სიჩქარე გავხადოთ დადებითი.
სიჩქარე ხდება ხუთი.
დავაწვეთ restart-ს.
მუშაობს!
ვამოწმებთ, გასცდა თუ არა ბურთი კიდეებს,
მაგრამ მგონი ზედმეტად სცდება.
თუ გახსოვთ, ეს ორი პერიმეტრი აკონტროლებს ელიფსის ცენტრს.
როდესაც ელიფსის ცენტრი კიდემდე მიაღწევს, ნახევარი უკვე გასცდა.
მაშ, ამის გასწორება თუ გვინდა
შეგვიძლია უფრო ადრე შევაჩეროთ ელიფსი.
ჩვენი კიდე 400-ზე თუა და გვინდა ბურთის შეჩერება, როდესაც აქ მოვა
ფუნქციიდან ვხედავთ, რომ ელიფსის სიგანე 50-ია.
ეს იმას ნიშნავს, რომ ცენტრიდან კიდემდე 25 იქნება.
ანუ, გვინდა შევაჩეროთ, როდესაც ცენტრი მიაღწევს 375-ს.
ეს არის 400-ს მინუს 25.
x 400-ზე მეტის ნაცვლად, დავწერ x მეტი 375-ზე.
ხოლო x ნულზე ნაკლების ნავცლად, x 25-ზე ნაკლებს.
ახლა უნაკლოა.