android oyun geliştirme (andengine)

33
ANDROID OYUN PROGRAMLAMA (ANDENGINE) Şeref AKYÜZ Gazi Üniversitesi Bilgisayar Mühendisliği 1

Upload: seref-akyuez

Post on 20-Jun-2015

4.306 views

Category:

Technology


3 download

DESCRIPTION

Andengine Oyun Motoru

TRANSCRIPT

  • 1. eref AKYZ Gazi niversitesi Bilgisayar Mhendislii 1

2. Kimdir? eref AKYZ 2010 - www.serefakyuz.com 2011 Odt Teknokent Andengine ile tanma Android tabanl oyunlar 2012 Android Oyun Programlama Kitab 2012 Fatih Projesi Eitim ierikli oyunlar. 2013 Son finallerine giriyor. 2 3. Sunum Plan Andengine(Gles1) Temel Kavramlar Resim Grntleme ve Animasyon Oluturma Dokunmatik Ekran Kullanm ve Multitouch Update Sistemi Sensr Kullanm Parack Sistemleri Fizik kullanm(Box2D) 3 4. Neden Oyun Motoru? Ama: Daha ksa zamanda daha kaliteli oyunlar gelitirmek Daha dzenli kod. Hazr altyap sayesinde kodlama aamasnda direkt oyun ieriine odaklanma. Daha hzl oyun gelitirme. 4 5. Andengine Nicolas Gramlich 2d, ak kaynak kodlu oyun motoru. (Framework) Grsel ara yz yok. Oyun yazmak iin orta derecede java bilgisi yeterli. Kurulum; Bir jar dosyasnn Java projesine eklenmesi. 5 6. Andengine BaseGameActivity Snf 4 metot: onLoadEngine (): Engine Motor ayarlarnn yapld metot. onLoadResources(): Void Resim, ses gibi dosyalarn arlmas ve hafzaya yklenmesi. onLoadScene(): Scene Oyunun asl ynetildii ksm onLoadComplete(): Void Dosyalar hafzaya yklenir, resimler sahnelere izdirilir, onLoadComplete metodu alr. 6 7. Temel Kavramlar(Nesneler) Engine Motor ayarlar Kamera oluturulmas engine = new Engine(options); options; Tam Ekran Yarm Ekran Ekran Yn (Yatay-Dikey) znrlk Yntemi(Ekran doldur, Boyutlar sabit tut) 7 8. Temel Kavramlar(Nesneler) Camera Engine nesnesi iin kurulan(setScene) sahnenin grntlenmesi Ekran boyutunun belirtilmesi(Pixel) camera = new Camera(START_POSX, START_POSY, CAMERA_WIDTH, CAMERA_HEIGHT); 8 9. Temel Kavramlar(Nesneler) Scene Oyun aralarnn zerinde bulunduu nesnedir. Resimler(Sprite) Scene nesneleri zerine izdirilirler. Dokunma zellii vardr. Bir oyunda birden ok Scene nesnesi olabilir. (Men sahnesi, oyun sahnesi, durdurma-biti sahneleri gibi) this.sahne = new Scene(); 9 10. Resim Grntleme Oyunlarn en nemli eleri: Resimler Texture TextureRegion Sprite Resmi Ynet 10 11. Resim Grntleme: Texture Texture nesneleri; Grntlenecek resmin kalplarn olutururlar. 2n deerinde ebatlara sahip olabilirler.(64x64, 32x2, 512x1024) Bir texture nesnesi, birden ok resim iin kullanlabilir. (Performans asndan nemlidir.) Resmin boyutlarndan byk olabilir, kk olamaz. TextureRegion nesnesi iin Texture nesnesi gereklidir. texSaha = new Texture(textureWidth, textureHeight, TextureOptions.BILINEAR_PREMULTIPLYALPHA); 11 12. Resim Grntleme: TextureRegion TextureRegion nesneleri; Resim yolu belirtilir. Parametre olarak Texture nesnesi. Sprite nesnesi iin TextureRegion nesnesi gereklidir. texRegSaha = TextureRegionFactory.createFromAsset( texSaha, context, "gfx/Arkaplan.jpg", textPosX, textPosY); 12 13. Resim Grntleme: Sprite Resmin grntlenmesi iin gerekli nesne. Sprite Nesnesi, Texture nesnesi iinde belirtilen resim kalbn; TextureRegion iinde yolu belirtilen resmi kullanr. Sprite ve Scene nesneleri zerine izdirilir. spriteSaha = new Sprite(spritePosX, spritePosY, texRegSaha); 13 14. Animasyon Oluturma Animasyonlar, resimlerden sonra en nemli oyun dinamiklerinden biridir. Texture TiledTextureRegion AnimatedSprite Animasyonu Ynet 14 15. Animasyon Oluturma: TiledTextureRegion Animasyon paralar tek bir resimde toplanr. TiledTextureRegion, byk resmi satr ve/veya stunlara bler. tiledTexReg = TextureRegionFactory.createTiledFromAsset( texAnime, context, "gfx/anime.png", textPosX, textPosY, columnCount, rowCount); 15 16. Animasyon Oluturma: AnimatedSprite Sprite nesnesinin sahip olduu tm zellikler. Animasyon ynetme, kontrol etme. animate() metodu ile animasyon balar. stopAnimation() metodu ile animasyon biter. animSprite = new AnimatedSprite( animSpritePosX, animSpritePosY, tiledTexReg); 16 17. Dokunmatik Ekran Kullanm Her bir nesnenin dokunma alan mevcut ama pasif durumda. Aktif etme; Bulunduu sahne nesnesi zerinde dokunma alan tanmlanr. (registerTouchArea(ITouchArea)) Temelde 3 dokunma evresi; isActionDown isActionMove isActionUp 17 18. Dokunmatik Ekran Kullanm 18 19. Multitouch andenginemultitouchextension.jar Engine nesnesine, uygulamann oklu dokunma desteine sahip olaca belirtilir: engine.setTouchController(new MultiTouchController()); Dokunma durumu tanmlanan nesneler, multitouch zelliine dahil olurlar. 19 20. Update Sistemi Oyunlar, her an durum kontrol gerektirebilecek uygulamalardr; Anlk nesne koordinat bilgileri vb. 20 21. Update Sistemi: Entity Snf Sprite, ChangeableText, geometrik ekiller, vb. spriteOyuncu1 = new Sprite(600, CAMERA_HEIGHT/2 - 64, texRegOyuncu1){ protected void onManagedUpdate(float pSecondsElapsed) { if(!maviHareketEder){ spriteOyuncu2.setPosition(parmakKoordinatiX, parmakKoordinatiY); }else{ spriteOyuncu1.setPosition(parmakKoordinatiX, parmakKoordinatiY); } } }; 21 22. Update Sistemi: IUpdateHandler Arayz Engine, Scene gibi oyun boyunca kalc olan nesneler zerinde oluturulur. 22 23. Sensr Kullanm Oyunun elencesini arttrmak amacyla sensr dinamikleri kullanlabilir. IAccelerometerListener arayznn salad metot: AccelerometerData nesnesi sensr bilgilerini ierir. 23 24. Parack Sistemleri Oyunun ana dinamiklerinin dnda, sslemelerde kullanlr. Kullanm; Kk boyutlarda tek bir resim eitlilik nasl salanr? Paralarn her birinin; Hareket edecekleri hz ve yn deerleri Dndrlme miktar Boyutu deitirilebilir. 24 25. Parack Sistemleri Yaplabilecek sslemeler; Sis efekti Buz paralar Cam krklar Ve paralanan her ey. 25 26. Parack Sistemleri 26 27. Fizik Kullanm(Box2D) Gerek hayattaki fiziksel kanunlar oyunlara baarl bir ekilde uygulanmal; Kuvvet Hz Ktle Yer ekimi Arlk arpmalar Srtnme 27 28. Fizik Kullanm(Box2D) Bu fiziki olaylarn kontrolleri Andengine ile uyumlu olan Box2D ktphaneleri ile salanabilir. Tpk Andengine gibi bir jar dosyas ve projeye dahil edilmesi ayn aamalar kapsar. Andengine uzunluk ls olarak pixel; Box2d metre kullanr. Uzunluk deerlerinde dnm yaplmal. 28 29. Fiziksel Ortamn Oluturulmas PhysicsWorld nesnesi; Fiziksel nesneleri ieren ortamdr. Bir oyunda birden ok PhysicsWorld olabilir. FixtureDef nesnesi; Fiziksel ortamn zelliklerinin belirlendii nesnedir; Younluk Esneklik Srtnme 29 30. Andengine Nesnelerinin Fiziksel zellik Kazanmas Body nesnesi; Sprite, AnimatedSprite ve dier grsel Andengine nesnelerinin etrafn kapsayarak fiziksel bir erit oluturur. Body iindeki grseller, body nesnesinden bamsz hareket edemez. Body eitleri mevcuttur. 30 31. Body eitleri ekline gre; LineBody BoxBody CircleBody Hareket Durumlarna Gre StaticBody DynamicBody KinematicBody 31 32. Body eitleri 32 33. Teekkrler [email protected] www.serefakyuz.com facebook.com/akyuzseref twitter.com/serefakyuz 33