Factory Method kullanımız bize bazı esneklikler sağlar. Yazılım geliştirirken her zaman obje kullanımının kesin çizgileri yoktur. Bazı objelere kullanıcı işlem isteğinde bulunduktan sonra oluşacak şekilde ihtiyaç duyabiliriz. Factory Method Kullanımına Örnekler: Kullanıcı, belirli bir butona bastığı anda oluşan objeler Kullanıcının birden fazla dökümanı, farklı tiplerde oluşturması Tarayıcıdaki butonlar. Tar...

Bir Inner Class (iç sınıf) Bir başka sınıfın içerisinde tanımlanmış sınıftır. Oluşturulacak nesneye iç sınıftan özellikler de atanabilir. Örnek 48: [crayon-5dec978a215b2477251491/] Not: Yukarıdaki if __name__ = “__main__” kullanımını ek bilgiler 1 bölümünde işledik....

Nesne tabanlı programlamada metotlara veya değişkenlere erişimi kısıtlayabilirsiniz. Kapsülleme işlemi sayesinde dataların, verilerin değiştirilmesini engellemiş olursunuz. Bir önrekle inceleyelim. Private Metotlar: Öncelikle bir Araba sınıfı oluşturalım. Bu sınıfın içinde sürüs() ve yazilimGuncelleme() metotları olsun. YazilimGuncelleme() metotu, __yazilimGuncelleme() şeklinde private olarak tanımlansıın. Bu şekild...

Selfin 2 işlevi var. Birincisi parametre almayan fonksiyonların çalışmasında hata oluşmamamsı için kullanılır. İkinci işlevini ise biraz detaylandırarak aşağıda inceleyelim. Self determination kavramı sosyal konularda adını duyabileceğiniz bir tabir. Esasında “kendi kaderini tayin etme” anlamını taşır. Siyasi olarak ise “bir miletin kendi kendini yönetmesi” manasında kullanılır. İlerleyen satırlarda örnek ...

__init__() fonksiyonu, sınıfların başında bulunur daima. Yapıcı fonksiyondur. Sınıf işlevlerini kullanıma hazırlar diyebiliriz. ozel.py adında bir dosya oluşturalım ve şunları yazalım: [crayon-5dec978a22645545738421/]   *alias, takma isim demek. Yukarıdaki kavramları açıklayacağız. Önce programı nasıl çalıştırıp ne elde edeceğimize bakalım. Komut ekranımızı mevcut dizinde açalım ve başlayalım [crayon-...

Python, OOP(Object Oriented Programming) yani Nesne Tabanlı Yazılım kavramının çok önemli olduğu bir programla dili. İnternet programcılığında C# ve PHP MVC (Model-View-Controller) kavramıyla, Python ise MVT (Model-View-Template) alt yapısıyla bu kadar ön plana çıkmışken Python öğrenen meraklıların nesne kavramını çok iyi oturtması kanaatindeyim. Bu sebepten dolayı bu bölümü oluşturma kararı aldım. İşin derin...

Gölgelerle (Shader) özel efekt eklemek
SFML , Uygulamalar / 21 Mayıs 2019

Temelde gölge( shader diye kullanacağız yazının devamında) grafik kart üzerinde işlem gören küçük bir programdır. Bu durum programcıya çizim sürecinde daha fazla kontrol ve esneklik sağlar. Ek olarak durumları düzenlemede OpenGL destekli operasyonlarda kolay bir yoldur. Bu ek esneklik, shader kullanılarak oluşturulmuş efekt bazen komplike olabilir. Sıradan OpenGL fonksiyonlarını tanımlayabilirsiniz. Güncel gra...

Pozisyon, rotasyon, ölçek: Transforming varlıklar
SFML , Uygulamalar / 21 Mayıs 2019

Bütün sfml sınıfarı (sprite, şekil, text) trasformasyon için aynı arayüzü kullanır: sf::Transformable. Bu temel sınıf basit bir API için hareket, döndürme ve ölçeklendirme gibi imkanlar tanır. Elbette bu kullanım tarzı size %100 esneklik sağlamaz. Esneklikten biraz olsun feraget etmek size anlaması vve kullanması kolay bir arayüz imkanı tanır ki esasında yapılmak istenen işlerin %99’unda işe yarar. sf::T...

Vertex Seriyleriyle Özgün Dizaynlar Oluşturmak
SFML , Uygulamalar / 21 Mayıs 2019

SFML, sık kullanılan 2D şekiller için basit sınıflar sunmaktadır. Daha karmaşık varlıklar türetmek için bu basit sınıflardan yararlanabilir ancak bu durum her zaman için etkili bir çözüm olmayabilir. Örneğin yüksek sayıda spritelar çizerken oldukça çabuk bir şekilde grafik kartın limitlerine ulaşabilirsiniz. Bunun sebebi çağırdığınız çizim fonksiyonlarının sayısının büyüklüğüyle alakalıdır...

Şekiller
SFML , Uygulamalar / 21 Mayıs 2019

SFML, basit şekil varlıklarını temsil eden sınıfları desteklemektedir. Her tipte şekil farklı bir sınıfla oluşturulur. Ancak tüm bu şekil sınıfları temelde bir sınıfın türevleridir. Her sınıf kendi özelliğini ekler; radius özelliği veya halka sınıfı, dikdörtgen sınıfı, poligon sınıfı vb. Sık kullanılan şekiller Transformation (pozisyon, döndürme, ölçek) özellikleri Bu özellikler SFML grafik ...

Text ve Fontlar
SFML , Uygulamalar / 21 Mayıs 2019

Herhangi bir text karekteri oluşturmadan önce erişilebilir bir fontunuzun olması gerekir. Fontlar, sf::font sınıfı tarafından kapsüllenirler. Font sınıfı, font yükleme ve fontların şekillerini elde etme, özelliklerini okuma gibi konularda işlev görür. Tipik programların çoğu ilk özellik olan font yükleme işlevini barındırırlar. Biz de bu ilk özellikten başlayalım konuya. Font yüklemede en yaygın yöntem ...

Sprite ve Texture
SFML , Uygulamalar / 21 Mayıs 2019

Pek çoğunuz (muhtemelen hepiniz değil) bu iki bilindik objeye aşinasınızdır. Bu bölümde oldukça kısa bir özet geçeceğiz. Texture esasında bir imajdır. Fakat imaj olarak adlandırmak yerine özel olarak “texture” denilir için spesifik bir rolü vardır. Texture varlıları 2D varlıkları haritalamada kullanılır. Sprite ise texture çerçevesinden daha fazlası değildir. Texture yüklemek Sprite oluşturmadan önc...

2D Şekiller
SFML , Uygulamalar / 21 Mayıs 2019

Önceki bölümlerde gördüğümüz üzere SFML pencere modülü bir OpenGL penceresi açmayı ve pencereyi eventlerle yönetmeyi sağlamada oldukça etkili bir yol. Ancak bu durum bir şeyler çizmeye geldiğinde bu şekilde işlemiyor maalesef. Bunun için OpenGL Api kullanmanız gerekiyor. Neyse ki SFML grafik modülü 2 boyutlu şekiller çizmenize olanak sağlıyor. Hem de OpenGL’den çok daha kolay yollarlara. Pencere Çizmek G...

Klavye ve Mouse
SFML , Uygulamalar / 21 Mayıs 2019

Dökümanın Klavye ve Mouse kısmında global girdi cihazlarına nasıl erişileceği açıklanacaktır. Bu konu eventlerle karıştırılmamalıdır. Bu bölüm anlık durumlarla alakalıdır. Eventler ise hareket başladıktan sonra devreye girer. Klavye Bu sınıf klavye durumuna erişimi sağlar, durumu şu şekildedir; sf::Keyboard. Sadece bir fonksiyon içerir, isKeyPressed tuşun güncel durumunu kontrol eder. Statik bi fonksiyo...

Events Açıklamaları
SFML , Uygulamalar / 21 Mayıs 2019

Dökümanın bu kısmı pencere eventlerinin detaylı listesini içermektedir. Events açıklamaları bölümünde pencereler ile neler yapılabileceği veya neler yapılamayacağı hakkında bilgiler bulacaksınız. sf::Event tipi Eventlerle çalışmaya başlamadan önce sf::Event tipi nedir ve doğru bir şekilde nasıl kullanılır idrak etmek oldukça önemli. sf::Event bir union’dur. Union olması belirli bir anlam ifade ediyor....

SFML Pencere Oluşturma ve Yönetme
SFML , Uygulamalar / 21 Mayıs 2019

Giriş Bu bölüm sadece pençere açma ve yönetme hakkındadır. Şekil verme konusu için sfml-graphics modülüne bakmanız gerekmektedir. Pencere açma Pencere kavramı SFML içersinde sf::Window sınıfı ile tanımlanmıştır. Bu sınıf kullanılarak doğrudan yapı üzerinde pencere oluşturulabilir. [crayon-5dec978a1ab95191408657/] Kod bloğundaki ilk argümanımız video mode argümanı. Bu noktada açılacak penceremizin bo...