Android Oyun Programlama Ders 4: AnimatedSprite İle Animasyon Oluşturma

Android andengine ile oyun geliştirme derslerinin dördüncüsünde AnimatedSprite kavramına ve nasıl oluşturulduğuna bir örnek uygulama eşliğinde değineceğim. Daha önceki derslerde değindiğim sprite kavramından oluşturulma aşamsında pek farkı bulunmayan bir kavram aslında animatedSprite.

Birinci derste değindiğim sprite mantığında çalışır. Tek farkı, tek resimde birleştirilmiş resimlerin sırasıyla gösterilerek bir animasyon havası verilmesidir. Bir diğer önemli nokta ise sprite ile birlikte kullanılan textureRegion yerine TiledTextureRegion kullanılmasıdır.

Biraz daha derinlemesine incelersek;

[cc lang=’java’]
tiledTextRegAnime = TextureRegionFactory.createTiledFromAsset(textureAnime, this, “gfx/face_box_tiled.png”, 0, 0, 2, 1);
[/cc]
ifadesindeki ögelerden son ikisi, resmin içindeki küçük resimlerin satır Okumaya devam et “Android Oyun Programlama Ders 4: AnimatedSprite İle Animasyon Oluşturma”

Android Oyun Programlama Ders 3: Dokunulan Yerde Resim Oluşturma Uygulaması

Android ile oyun geliştirme derslerinin üçüncüsünde ekrana her dokunulduğunda, dokunulan yerde bir sprite(resim) oluşturacağız. Bunun için yine bir önceki derste olduğu gibi ekrana dokunulduğunda koordinatı yakalayan özel bir metodu kullanacağız.

onSceneTouchEvent metodunu, dokunulan koordinatları tespit etmek için kullanıyoruz. Buradan alınan koordinatları resimEkle fonksiyonuna parametre olarak gönderiyoruz. Fonksiyonun içeriğine bakarsak; fonksiyon Okumaya devam et “Android Oyun Programlama Ders 3: Dokunulan Yerde Resim Oluşturma Uygulaması”

Android Oyun Programlama Ders 2: Resimleri(Sprite) Sürükleme

Android ile oyun geliştirme derslerinin ikincisinde bir sprite’ı(resmi) sürükleme kodunu anlatacağım. Birinci dersteki örnek üzerinden gitmek sizler için de kodu daha anlaşılır kılacaktır. Yapılacak işlem önceden eklediğimiz iki resimden birini hareket ettirmek olacak. Dokunduğumuz yere resmin gelmesini ve ekrana dokunup sürüklediğimizde parmağımızı takip etmesini sağlayacağız.

Oluşturulan scene nesnesinin onSceneTouchListener fonksiyonu içinde ekrana dokunma kontrolünü oluşturuyoruz. isActionDown touchEvent’ ı ile ekrana dokunulduğunda çalıştırılacak kod bloğunu if içinde yazıyoruz. isActionMove touchEvent’ ı ile de Okumaya devam et “Android Oyun Programlama Ders 2: Resimleri(Sprite) Sürükleme”

Android Oyun Programlama Ders 1: Resim Çizdirme Uygulaması ve Texture, TextureRegion, Sprite Kavramları

Resim çizdirme uygulamasına geçmeden önce, android ile oyun geliştirme aşamasında sürekli kullanılacak kavramlardan Texture, TextureRegion ve Sprite kavramlarını açıklamaya çalışacağım. Ardından uygulamaya göz atabilir, yazının son kısmından da uygulamayı indirebilirsiniz.

Texture: Eklenecek resmin kalıbı gibi düşünülebilir. Her resim için tanımlanmak zorundadır. Resmin boyutu texture tanımlaması esnasında belirtilir.

TextureRegion: Texture ile belirtilen kalıplara resmin yerlerştirilmesini sağlayan nesnedir. Resmin texture’ ı ve yolu bu nesnenin oluşturulması sırasında belirtilir.

Sprite: Oluşturulan TextureRegion’ ı kullanarak resmin ekranda çizdirileceği koordinatları belirten nesnedir.

Kavramların ardından uygulamanın kodlarına göz atalım. Uygulamada iki resmi Okumaya devam et “Android Oyun Programlama Ders 1: Resim Çizdirme Uygulaması ve Texture, TextureRegion, Sprite Kavramları”

Android Andengine Metodları ve Kullanım Şekilleri

Başlık belki biraz garip oldu ama anlatınca herhangi bir karmaşanın kalmayacağını zannediyorum. Anlatacağım şey tam olarak şuydu: Android andengine ile oyun geliştirirken bazı kurallara uymak zorundasınız. Mesela oyunda kullanılacak resimlerin ya da araçların tanımlanma, oluşturulma ve kullanılma işlemleri ile kamera ayarları ve motor ayarlarının düzenlenmesi işlemleri andengine oyun motorunun size verdiği özel metodlar içinde yapılıyor.

Örnek uygulamaları Okumaya devam et “Android Andengine Metodları ve Kullanım Şekilleri”

Javada Ağ(Network) Programlamaya Giriş

Ağ(Network) teknolojileri, tahmin ettiğiniz gibi iki ya da daha çok bilgisayarın birbirleri ile iletişime geçmelerini sağlayan yapılardır. Bu yapılar, bilgisayarların iletişimlerini sağlamak için ortak bir protokol kullanmak zorundadırlar. İki insanın konuşmak için aynı dili bilmesi gerektiği gibi. En yaygın şekilde kullanılan protokol modeli TCP/IP’ dir. TCP/IP modelinin sunduğu ve bilgisayarın kimliği olarak kabul edilebilecek IP adresleri vardır. Ip adresleri sayesinde bilgisayarlar birbirlerini ayırt ederler ve bu sayede birbirleriyle karmaşa olmaksızın konuşabilirler.

TCP/IP modelinin sunduğu bir diğer adresleme oluşumu Okumaya devam et “Javada Ağ(Network) Programlamaya Giriş”

Csharpta Oyun programlama: Kaydır Doldur Oyunu v2.0

Daha önce de yayınladığım Kaydır Doldur oyununun ikinci versiyonunu buradan indirip oynayabilirsiniz. Ayrıca oyunun kaynak koduna buradan erişebilir ve geliştirebilirsiniz.

Neler Yeni?

Kutu Hareketlerindeki Düzenlemeler

Kaydır doldur oyunun birinci versiyonundaki hareket tutarsızlıkları nedeni ile yaptığım çalışmanın ardından oyunu tam bir düzene soktum. Düzenlenen yerlerden bahsedeyim. Öncelikle kutuların hareketlerine bir standart getirdim. Kutular blok halinde hareket ediyor. Sona geldiklerinde ise baştan başlayarak geçirgen bir duvar edası veriyorlar. Bu işlemleri yine dizi bazlı yaptım. Örnek olarak sağa kaydırma kodunu açıklayacağım. Kaynak kod ile ilgilenenler zaten göreceklerdir kod kısmının kısaldığını. Birinci versiyona göre daha az kodla daha etkin bir iş yapıldığının farkına varacaklardır. Okumaya devam et “Csharpta Oyun programlama: Kaydır Doldur Oyunu v2.0”

Csharp Thread Uygulaması

Thread, bir programın kendini parçalara ayırıp eş zamanlı olarak bu parçaları farklı işlemcilerde ya da bir sistem içindeki farklı bilgisayarlarda çalıştırma olayıdır. Eğer tek işlemcili bir bilgisayarda thread’ li programlar zaman dilimleme tekniği ile çalışırlar. Şöyle ki, thread‘ler sırasıyla, çalıştır-duraklat mantığı ile birbirleri arasında geçiş yaparlar. Bu geçiş anı çok kısa bir zaman dilimi olduğu için gözle farketmemiz çoğu zaman mümkün olmayabilir.

Uygulamaya değinmeden önce belirtmek isterim ki csharp dilinde thread uygulaması yapabilmek için “System.Threading” namespace’ i eklenmelidir. Verilen ön bilgilerin ardından thread uygulamasına göz atalım.


Okumaya devam et “Csharp Thread Uygulaması”

Csharpta Oyun Programlama: Kaydır Doldur Oyunu

Csharp dilinde oyun yapma vaktinin geldiğini düşünerek küçük bir oyun geliştirdim. Oyunun kod kısmı biraz uzun olduğundan, yalnızca kritik kod bloklarına değineceğim. Oyunun kaynak kodlarını buradan indirip kodlarında aşağıda anlatacağım yöntemlerle değişiklik yaparak oyun programlama mantığı hakkında bilgi sahibi olabilirsiniz. İsterseniz buradan oyunu bilgisayarınıza indirip hemen oynamaya başlayabilirsiniz. Eğer indirme ve deneme işlemini tamamladıysanız oyunun oluşturulma aşamalarını ayrıntılı bir şekilde inceleyelim. Okumaya devam et “Csharpta Oyun Programlama: Kaydır Doldur Oyunu”

Csharpta Dinamik Programlama: Fibonacci Serisi Hesaplama

Dinamik programlama, problem çözüm yöntemlerinden biridir. Amaç, sıralı benzer işlemleri tekrarlayarak oluşan performans ve zaman kaybını en aza indirmektir.

Bir kodun kısa olması, programın daha performanslı çalışacağı anlamına gelmez. Daha çok alt parçadan oluşan ve daha uzun bir kod bloğuna sahip bir çözüm diğerine göre daha performanslı çalışabilir. Konunun örneği olarak geçen sene hazırladığım programı, dinamik programlama ile fibonacci serisi hesabı ödevini paylaşacağım.

Programı kısaca açıklamak gerekirse; girilen bir sayının fibonacci değerini, iki fonksiyona gönderiyorum. Bu fonksiyonlardan ilki problemi dinamik programlama yöntemi ile çözerken, diğeri recursive kavramı ile çözüyor. Aradaki performans farkı şu noktada oluşuyor: Okumaya devam et “Csharpta Dinamik Programlama: Fibonacci Serisi Hesaplama”