Animasyon Kalitesi – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları
Animasyon Kalitesi
Bu bölümde, animasyon titremesinin nedenini ve animasyonlarınızın kalitesini artırmak için çift ara belleğe almayı ve kırpmayı nasıl kullanacağınızı öğreneceksiniz. Örnek olarak Broadway Boogie Woogie uygulamasını kullanacağız. İlk olarak, animasyonda titremeye neyin sebep olduğunu bulalım.
Animasyonu Anlamak
Animasyonlar çalışırken ekran neden titriyor? Yanıt, Broadway’in Applet sınıfından devraldığı update() yöntemindedir. repaint()’i her kullandığınızda, aslında ekranı temizlemek ve paint()’i çağırmak gibi kirli işleri yapmak için update()’i çağırır. İşte uygulamanızın devraldığı update() yöntemi söz konusudur.
Bir repaint() çağrısının net sonucu, ön plan boyanmadan önce ekranın arka plan rengiyle doldurulmasıdır. repaint() hızlı bir şekilde çağrıldığında, arka plan ve ön plan renkleri arasındaki hızlı değişim, titreme efektine neden olur. Şekil 2-5, anlamanız gereken repaint(), update() ve paint() arasındaki ilişkiyi açıklamaktadır.
Bu tedaviyle ilgili sorun, önceki kare artık silinmediği için hareket eden herhangi bir hareketli nesnenin (veya hareketli grafiğin) arkasında bir “iz” olacak olmasıdır. Bazı harika efektler yapmak için bu izi kullanabilirsiniz, ancak çift arabelleğe alma adı verilen titremeye karşı daha genel bir çözüm var.
Titremeyi Ortadan Kaldırmak için Çift Arabelleğe Alma Kullanma
Çift arabelleğe alma, adından da anlaşılacağı gibi, iki arabellek kullanır: orijinal grafik bağlamı ve ekran dışı grafik bağlamı. Animasyonun her karesi, arka plan renginin sıçramasıyla başlayarak ekran dışı tamponda işlenir.
Ekran dışı arabellek hazır olduğunda, içeriği orijinal grafik bağlamına çekilir. Net sonuç: Herhangi bir titreme yok çünkü animasyonun her karesindeki tüm öğeler teker teker değil, bir kerede ekrana çiziliyor. Çift arabelleğe alma eylemini gösterir.
Şimdi paint()’i orijinal grafik bağlamı yerine ekran dışı tampona çizecek şekilde değiştirin. İz almayı önlemek için ekran dışı arabelleği şimdi temizlemelisiniz. Ekran dışı arabellek hazır olduğunda, drawImage() kullanarak onu ekrana aktarın.
Örneğin, çift ara belleğe alma uygulamak için Broadway’in paint() yönteminin nasıl değiştirileceği aşağıda açıklanmıştır. DrawImage() Grafik yönteminin, uygulamanın grafik bağlamının koordinatlarında (0,0) ekrana görüntüyü boyadığına dikkat edin.
Kendi uygulamalarınızda çift ara belleğe almayı kullanmak için, görüntü bildirimlerini ve ekran dışı arabelleği yapıştırın ve az önce tartışıldığı gibi init() ve paint()’i değiştirin. Ayrıca ekranı temizlememesi için update() işlevini geçersiz kılmanız gerekir.
Performansı Artırmak İçin Kırpmayı Kullanma
Broadway uygulamasına tekrar dikkatlice bakarsanız, animasyonun ekranın ortasında yer aldığını ve çevresindeki bölümlerin değişmeden kaldığını fark edeceksiniz. Sonuç olarak, ekran dışı tamponun tamamını ekrana boşaltmak israf gibi görünüyor. İdeal olarak, ekran dışı tamponun yalnızca değişen kısmı kopyalanmalıdır.
Java, sonraki grafik işlemleri tarafından değiştirilmesi gereken grafik arabelleği bölümünü belirlemeyi kolaylaştırır. Bir grafik bağlamı için bir kırpma dikdörtgeni tanımlamak, o dikdörtgenin içinde ve kenarlarında gelecekte yapılacak değişiklikleri sınırlar. Broadway örneğinde, kırpılan dikdörtgen, gösterildiği gibi hareketli dikdörtgenin kat ettiği maksimum bölge olabilir.
g.clipRect() çağrısının neden paint() yöntemi yerine update() içinde gerçekleştiğini merak ediyor olabilirsiniz. Uygulamayı ekranda ilk göründüğünde çizmek için paint() çağrıldığını unutmayın. paint() yönteminde kırparak, boyamayı kırpılan dikdörtgenle sınırlamış olursunuz ve kırpılan dikdörtgenin dışındaki bölge her zaman boş kalır.
Uygulamamızda klip çekmek için uygun an, bir yeniden boyamanın() gerçekleştiği ve clipRect() çağrısının update()’e güzel bir şekilde uyduğu zamandır. Boyamayı belirli bir dikdörtgenle sınırlamanın başka bir yolu, uygulamanın run() yönteminde aşağıdaki repaint() yöntemi biçimini kullanmaktır.
repaint() yönteminin bu sürümü, bağımsız değişkenlerle sınırlanan alanı boyar. Broadway’in çift ara belleğe alınmış, kırpılmış sürümünü derleyin ve çalıştırın, farkı hemen göreceksiniz. Şimdi, bir sonraki adım bu solo boogie’yi bir grup dansına dönüştürmek gerekir.
Animasyon filmleri
Neşeli Animasyon filmleri
En komik Animasyonlar filmler
aksiyon, macera animasyon filmleri
Disney tüm animasyon Filmleri
Yeni animasyon Filmler
En güzel Animasyon filmleri
Animasyon filmleri Ödüllü
Animasyonunuza Karmaşıklık Eklemek
Ekrandaki tüm dikdörtgenleri sallama problemini ele alalım. Bu kolay, diyorsun. Her dikdörtgenin konumunu (konum dizileri) izlemek için int dizilerini, her dikdörtgenin durumunu izlemek için başka bir diziyi ve her bir dikdörtgenin ne kadar uzağa hareket edebileceğini saklayan sınır dizilerini eklemeniz yeterlidir.
Ardından updateRectangle() yöntemini, her dikdörtgenin içinde dolaşarak her birinin konumunu ve durumunu güncelleyecek şekilde değiştirin. Son olarak, paint() güncellenmiş konum dizilerini kullanarak her bir dikdörtgeni yeni konumuna çizecektir. Başka bir deyişle, kod aşağıdaki sözde kod gibi görünebilir. Bunun nesi var?
Aslında, tüm boşlukları doldurursanız bu kod iyi çalışır. Sorun şu ki, daha karmaşık bir animasyon uygulaması için iyi bir temel değil. Dikdörtgenler için yeni dans kalıpları tasarlamak ve oval veya üçgen gibi yeni şekiller eklemek istediğinizi varsayalım. Tüm bu yeni bilgileri Broadway’in tanımına yerleştirmek, hızla hem anlaşılması hem de genişletilmesi zor olan karmaşık bir programa yol açacaktır.
Programlama dilleri, programcıların karmaşıklığı yönetmesine yardımcı olmak için tasarlandı. Java gibi nesne yönelimli diller, sizi oyunlar gibi karmaşık programları tasarlamak ve yönetmek için nesneleri kullanmaya teşvik eder.
Nesne yönelimli bir dilde program yazmak, onun nesne yönelimli bir şekilde tasarlandığı anlamına gelmez; Broadway uygulaması buna bir örnektir. Kolayca genişletilebilir ve anlaşılır bir Broadway versiyonu oluşturmak için nesneleri kullanalım. Broadway’i üç adımda inşa edeceğiz.
1. Nesneler
2. Miras
3. Dinamik yöntem bağlama
Görünüşe göre, bunlar nesne yönelimli programlamanın üç anahtarıdır.
Nesneleri Kullanma
Bazen ilerlemenizi sağlayacak daha iyi bir altyapı oluşturmak için önceden yazılmış olanları yırtıp atmak gerekir. Şu anda yaptığımız şey bu. Acil hedefimiz, çeşitli şekillerde dans eden birden çok dikdörtgeni destekleyecek bir uygulama oluşturmaktır. Anahtar, istenen durumları ve davranışları uygulayan bir sınıf tanımlamaktır.
Sınıfı Tanımlamak
Bu yeni uygulamada nesnellik adaylarını belirleyelim. Birden çok dans eden dikdörtgen olduğundan ve her birinin konumu ve mevcut dans adımı gibi farklı bir durumu olduğundan, her dans eden dikdörtgen bir nesne olmalıdır.
Örnek değişkenleri durumu izleyecektir. Dans eden bir dikdörtgenin hangi davranışları olacak? Bu, dikdörtgenlerin uygulayacağı gerçek dans adımlarına bağlıdır.
Şimdilik, belirli danslar hakkında karar vermeyi erteleyeceğiz ve hareketsiz dururken en basit dans adımını gerçekleştiren varsayılan bir yöntem olan danceStep()’i sağlayacağız. Ayrıca dans eden her dikdörtgen de kendisini ekrana çizmekle sorumlu olacaktır. Bir DancingRect nesnesinin neye benzediğinin şemasını gösterir.
danceStep() ve paint() yöntemleri, bir DancingRect nesnesine genel arabirim sağlar. Diğer tüm nesneler bu yöntemlere erişebilir. Aksine, bir DancingRect’in içindeki konum gibi veriler dışarıdan korunur veya kapsüllenir. Kapsülleme, bir nesnenin içindeki verilerin dışarıdan görünmemesi anlamına gelir.
Bilgileri nesnelerin içine saklayarak ve bu nesnelere arayüzler sağlayarak, bir nesnenin iç yapısında değişiklik yapmaya karar verdiğinizde kendinizi korursunuz.
Örneğin, konumun değişken adını locx’ten XPotion’a değiştirmeye karar verirseniz, herhangi bir değişikliğin DancingRect tanımında izole edildiğinden emin olmak istersiniz. Bunu yaptığınızda, DancingRect dışındaki kod etkilenmez. Bu, karmaşık programları yönetmenizi kolaylaştırır.
Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır.
1) Backlink Paketi 50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)