I BOB
C# dasturlash tilida harakatli tasvirlar
Animatsiyalar o'yinni zerikarlidan hayajonli holga keltiradigan narsadir. Tasavvur qiling-a, Super Mario Bros o'yinini Mario animatsiyalarisiz o'ynaysiz. Bu shuni anglatadiki, istalgan vaqtda harakatlansangiz, siz shunchaki statik tasvirni daraja bo'ylab harakatlantirasiz. Bu juda hayajonli bo'lmaydi, shunday emasmi? Ko'pincha odatiy hol sifatida qabul qilingan animatsiyalar o'yinga ohang va shaxsiyat berishda muhim rol o'ynaydi. Animatsiya - bu harakatsiz tasvirlarni tez ketma-ketlikda namoyish qilish va harakat illyuziyasini yaratish jarayoni. Ushbu tasvirlar kompyuterda yaratilgan va 3D ob'ektlarning rasmlari. Animatsiya multfilmlarda ko'rinadi va ilovalar, sanoat va ilmiy tadqiqotlarda ham qo'llaniladi. Animatsiyaning turli xil turlari mavjud, masalan, An'anaviy animatsiya filmning har bir kadrini qo'lda chizishni o'z ichiga oladi va barcha chizmalardan so'ng ularni suratga olish yoki kompyuterga skanerlash va keyin plyonkadagi ovoz bilan birlashtirish mumkin. Animatsiya uchunAnimatorlar filmlar va modellarni yaratish uchun kompyuter dasturidan ham foydalanishlari mumkin, bu odatda an'anaviy usuldan tezroq. Animatsion filmlar va modellar aslida harakat qilmaydi, lekin odamlar ko'rishning qat'iyligi deb ataladigan harakat illyuziyasini ko'radilar. WPF animatsiya uchun o'rnatilgan yordamni ta'minlaydi. WPF animatsiya tizimi boshqaruv elementlari va boshqa grafik obyektlarni jonlantirishni juda oson qiladi. WPF ekranni qayta chizish tafsilotlarini va sahna ortidagi animatsiya bilan bog'liq boshqa tafsilotlarni boshqaradi. Ushbu maqolada biz to'rtburchaklar ob'ektga asosiy animatsiyalarniqo'llaymiz.
WPF da biz boshqaruv elementlari o'rniga individual xususiyatlarga animatsiyani qo'llaymiz.
Mulk animatsiya uchun quyidagi talablarga javob berishi kerak:
Bu qaramlik xususiyati bo'lishi kerak
U bog'liqlik ob'ektidan meros bo'ladigan va IAnimatable interfeysini ham meros qilib oladigan sinfning bir qismi bo'lishi kerak.
Quyidagi misolda biz to'rtburchakning paydo bo'lishi va ko'zdan yo'qolishi uchun qanday jonlantirishni ko'rib chiqamiz.
Avval stackpanel ichida to'rtburchaklar hosil qilamiz.
< StackPanel Margin ="10">
< Rectangle Name ="AnimatingRectangle" Width ="250" Height ="250" Fill "Red"> Rectangle > StackPanel >
Bu erda biz to'rtburchakning shaffoflik xususiyatini jonlantiramiz, shunda to'rtburchak ko'rinishdan yo'qoladi. Shaffoflik xususiyati double turiga ega bo'lgani uchun biz DoubleAnimation dan foydalanamiz. Boshlang'ich qiymatni belgilash uchun "Kimdan" xususiyatini o'rnating va tugatish qiymatini belgilash uchun uning "Kimga" xususiyatini o'rnating. Shuningdek, boshlang'ich qiymatdan yakuniy qiymatga o'tish uchun qancha vaqt kerakligini belgilash uchun "Duration" xususiyatini belgilang. Shunday qilib, uni 20 ga o'rnatish boshlang'ich qiymatdan yakuniy qiymatga o'tish uchun 20 soniya vaqt oladi. Element yoʻqolgandan keyin koʻrinishga qaytishi uchun animatsiyaning “Avtomatik teskari” xususiyatini rostga oʻrnating.
Ob'ektga animatsiyani qo'llash uchun siz Storyboard yaratasiz va jonlantiriladigan ob'ekt va xususiyatni belgilash uchun TargetName va TargetProperty biriktirilgan xususiyatlardan foydalanasiz. Animatsiyani ob'ekt bilan bog'laganimizdan so'ng, biz Storyboardni EventTrigger bilan bog'lashimiz kerak. Buni amalga oshirish uchun biz EventTrigger-dagi XAML-dagi "Rectangle.Triggers" to'plamiga Event Trigger-ni qo'shamiz va BeginStoryboard-ni qo'shamiz.
BeginStoryboard - bu trigger harakati, EventTrigger esa Triggerning bir turi.
< StackPanel Margin ="10">
< Rectangle Name ="AnimatingRectangle" Width ="250" Height ="250" Fill ="Qizil">
< Rectangle.Triggers >
< EventTrigger RoutedEvent ="Rectangle.Loaded">
< BeginStoryboard >
< Storyboard >
< DoubleAnimation Storyboard.TargetName ="AnimatingRectangle" Storyboard.TargetProperty ="Opacity" = "1,0" dan "0,0" Davomiyligi "0:0:2"
AutoReverse ="True" RepeatBehavior ="Forever" />
Storyboard >
BeginStoryboard >
EventTrigger >
Rectangle.Triggers >
To'rtburchak >
StackPanel >
Animatsiyalar xususiyat qiymatlarini yaratadi. Har xil turdagi xususiyatlarga ega bo'lganimiz uchun bizda har xil turdagi animatsiyalar mavjud. Animatsiya sinflari TypeAnimation nomlash konventsiyasiga amal qiladi, bunda Type animatsiya qo‘llanilishi mumkin bo‘lgan xususiyat turini bildiradi. Animatsiya sinflari System.Windows.Media.Animation nom maydonida joylashgan.
Do'stlaringiz bilan baham: |