მრავალი გზა არსებობს იმისთვის, რომ ანიმაცია გავაკეთოთ,
მთავარი პრინციპი კი ყოველთვის ერთია.
თუ აიღებთ რამდენიმე ნახატს ან სურათს,
სადაც თითოეული წინასგან ოდნავ განსვავდება
და მათ რიგ-რიგობით სწრაფად ნახავთ,
გამოჩნდება, რომ თითქოს სურათი მოძრაობს.
ადრე ყველანაირ ანიმაციას ხელით ხატვდნენ
და სამწამიანი ანიმაციის გაკეთებასაც კი დიდი დრო უნდოდა.
საბედნიეროდ, ჩვენ მომავალში ვცხოვრობთ.
საკმაოდ მარტივია კოდით უბრალო ანიმაციის გაკეთება.
მე კი გიჩვენებთ როგორ!
მარჯვნივ როგორც ხედავთ პატარა საყვარელი მანქანაა,
ფონად კი მშვენიერი ყვითელი ფერია.
-- დიახ, ეს მანქანა ჩემი დახატულია, გმადლობთ --
როგორც ვახსენე, ფონად მშვენიერი ფერია.
მანქანას კონტური არ აქვს, ანუ noStroke() ფუნქცია გვაქვს გამოძახებული.
აქ კი ახალ ცვლადს ვქმნით, x-ს, რომელიც მანქანის მდებარეობას წარმოადგენს
და ვანიჭებთ მნიშვნელობას 10.
როგორც ხედავთ, თუ ამ მნიშვნელობას შევცვლით,
მანქანა წინ და უკან დაიწყებს მოძრაობას.
-- დავუბრუნოთ ათს --
შემდეგ, აქ ორგან ვწერთ საღებავის ფერს მანქანისთვის
და ვხატავთ ორ მართკუთხედს
პირველი მართკუთხედი ქვედა ნაწილისთვისაა, მეორე - ზედასთვის.
შემდეგ იგივენაირად ვიქცევით ბორბლებისთვის.
ვწერთ საღებავის ფერს და ვხატავთ ორ ელიფსს:
ერთი იქნება x + 25-ზე, მეორე კი x + 75-ზე.
და როგორც იქნა, მივედით ახალ მასალაზე.
ამას ფუნქციის განმარტება ეწოდება.
ამის შესახებ მოგვიანებით ისწავლით,
ამჯერად უბრალოდ შეხედეთ და ეცადეთ დაიმახსოვროთ როგორ გამოიყურება.
მნიშვნელოვანია იმისი ემჩნევა, რომ გვაქვს სიტყვა draw და ფიგურული ფრჩხილები.
-- ეს გახსნილი ფრჩხილი და ეს დახურული ფრჩხილი --
ამ ყველაფერს ვუწოდებთ ხატვის, ანუ ანიმაციის ციკლს.
ნებისმიერ რამეს, რასაც ამ ფრჩხილებში ჩაწერთ,
ძალიან სწრაფად გაეშვება და გამეორდება.
სწორედ ამიტომ ეწოდება ციკლი.
ნებისმიერი რამ რაც ამ ფრჩხილებს გარეთაა,
გაეშვება პროგრამის დასაწყისში და მხოლოდ ერთხელ.
ესეიგი, ანიმაციისთვის პირველი ნაბიჯი კოდის ამ ფრჩხილებში ჩაწერაა,
რათა სურათები ხელახლა დაიხატოს.
მოდით ასე მოვიქცეთ.
-- ამ კოდს აქედან პირდაპირ ციკლში გადავიტან --
იმისთვის რომ არ დამავიწყდეს, რომ ეს ყველაფერი ციკლშია,
ხაზებს მარჯვნივ გადავწევ, მოვნიშნავ ყველა ხაზს და დავაწვები Tab-ს.
ახლა უკეთ ჩანს რომ ეს ხაზები ფრჩხილებს შორისაა.
როგორც ხედავთ, ყველაფერი იგივენაირადაა, არაფერი შეცვლილა.
პირველად, როცა ამ დახატვის ციკლს გავუშვებთ,
კომპიუტერი უბრალოდ შექმნის ახალ ცვლად x-ს, მიანიჭებს ათს, დახატავს ორ მართკუთხედს
და დახატავს ორ ელიფსს.
შემდეგ დაბრუნდება დასაწყისში და მოიქცევა ასე:
შექმნის ახალ ცვლად x-ს, მიანიჭებს ათს, დახატავს ორ მართკუთხედს და ორ ელიფსს.
შემდეგ ამ ყველაფერს ისევ გაიმეორებს.
არაფერი არ იცვლება, ცხადია, აინმაცია არ ჩანს.
უბრალოდ ხელახლა იხატება ერთი და იგივე სურათი ერთმანეთზე.
გაიხსენეთ, რაიმეს ასამოძრავებლად, ნახატი ყოველ ჯერზე ოდნავ უნდა იცვლებოდეს.
ესეიგი, თუ მინდა რომ მანქანა წინ წავიდეს,
სავარაუდოდ x ცვლადი უნდა შევცვალო, არა?
მოდით ასეც მოვიქცეთ, დავწეროთ 11.
მაგრამ არა, ახლა მანქანა ყოველთვის 11 პოზიციაზე იქნება.
როგორ უნდა ვცვალო x-ის მნიშვნელობა ყოველთვის,
როცა კომპიუტერი სულ ერთსა და იმავეს აკეთებს?
კარგი, შეხედეთ ამ მაგიურ ხრიკს
თუ გაიხსნებთ, var x ქმნის ახალ ცვლადს.
როცა ეს ხატვის ციკლში გვაქვს,
ყოველ ჯერზე იქმნება ახალი ცვლადი x.
თუ ამას ციკლს გარეთ დავწერთ, მაშინ ის შეიქმნება მხოლოდ ერთხელ.
ამ შემთხვევაში, ყოველთვის როცა კომპიუტერი ამ კოდს გაუშვებს და x-ს დაინახავს,
ის გამოიყენებს იმ მნიშვნელობას, რომელიც მას ბოლოს მივანიჭეთ.
ასეც ვიზამ, შევქმნი ცვლადს და გავიტან ციკლს გარეთ.
ახლა ცვლადი მხოლოდ ერთხელ იქმნება.
ყოველ ჯერზე, როცა x-ს ვხვდებით, ვიყენებთ ერთსა და იმავე ცვლადს.
ახლა ბოლო მნიშვნელობა არის 11, ესეიგი x ყოველთვის იქნება 11.
-- ახლა კი მაგია --
სადმე ციკლში, შევცვალოთ x-ის მნიშვნელობა, გავხადოთ ის წინანდელზე ოდნავ მეტი.
დავწეროთ: x ხდება x-ის ძველ მნიშვნელობას პლუს ერთი.
ნახეთ, მუშაობს!
მაგრამ ასე ძალიან გადღაბნილია.
შეიძლება გაგიკვირდეთ თუ რატომაა ასე.
ეს იმიტომ, რომ დაგვავიწყდა ფონი ხელახლა დაგვეხატა.
მანქანა ხელახლა იხატება, მაგრამ მანამდე დახატული მანქანებიც ჩანს.
ესეიგი, თუ ამ ხაზს ციკლში ჩავაგდებთ და ხელახლა გავუშვებთ კოდს..
მშვენიერია!
თუ გვინდა მანქანა უფრო სწრაფად წავიდეს,
შეგვიძლია გავაკონტროლოთ რამდენით შეიცვლება x თითო ჯერზე.
თუ გვინდა, ათი მივანიჭოთ.
შეგვიძლია უარყოფითიც გავხადოთ, მაგალითად x მინუს 10.
-- აი, დაბრუნდა --
-- ისევ დადებითი.. --
დაიმახსოვრეთ რამდენიმე მნიშნველოვანი რამ:
ამას ეწოდება ხატვის ციკლი.
თქვენი კოდი, რომელიც ხატავს, უნდა ჩააგდოთ აქ
და სურათი ისევ და ისევ დაიხატება.
შემდეგ, ცვლადი უნდა შექმნათ ციკლს გარეთ.
ეს ძალიან მნიშვნელოვანია, რომ ცვლადი ხატვის ციკლს გარეთ იყოს,
რათა იგივე ციკლი გამოვიყენოთ ისევ და ისევ.
შემდეგ, ხატვის ციკლს შიგნით, ცვლადს ყოველ ჯერზე ოდნავ შევცვლით,
ძირითადად გავუტოლებთ მის ძველ სიმბოლოს პლუს რამე რიცხვს.
და ბოლოს, თქვენი ცვლადი სადმე უნდა გამოიყენოთ ხატვის კოდში,
რომ თქვენი ნახატი ყოველ ჯერზე შეიცვალოს.
სულ ესაა.