Size daha iyi hizmet sunabilmek için çerezleri kullanıyoruz.
Web sitemizde gezinme deneyiminizi geliştirmek, size kişiselleştirilmiş içerik ve hedefli reklamlar göstermek, web sitesi trafiğimizi analiz etmek ve ziyaretçilerimizin nereden geldiğini anlamak için çerezleri ve diğer izleme teknolojilerini kullanıyoruz.
⚠️
KVKK ve Çerez Politikası Bilgilendirmesi
6698 sayılı Kişisel Verilerin Korunması Kanunu (KVKK) ve Aydınlatma Yükümlülüğü kapsamında; web sitemizin temel fonksiyonlarının çalışabilmesi, veri güvenliğinin sağlanması ve performans analizi yapılabilmesi için zorunlu çerezlerin kullanımı gerekmektedir. Çerez kullanımını reddetmeniz halinde, teknik imkansızlıklar ve veri senkronizasyonu kesintileri nedeniyle web sitemizdeki hizmetlerden yararlanmanız mümkün olmamaktadır. Sitemizdeki içeriklere erişebilmek için çerez kullanımını onaylamanız gerekmektedir.
Masaüstünde Bir Davetsiz Misafir: Python ile Sanal Kedi ve Fare Takip Uygulaması
Her şey, kız kardeşimin iş yerinde mola verirken izlediği bir videoyu bana göstermesiyle başladı. Videoda masaüstünde pürüzsüz bir odaklanmayla imleci takip eden sevimli bir sanal kedi animasyonu vardı. “Bunu bizim bilgisayarlar için yapabilir miyiz?” sorusu atılınca, bir yazılımcı olarak kolları sıvamamak olmazdı.
Sonuçta ortaya; farenizin ucuna eklenen büyük, beyaz bir topu ekran boyunca bıkmadan usanmadan kovalayan sanal bir kedi simülasyonu çıktı. Tamamen açık kaynaklı ve eğlenceli bir proje oldu ancak en baştan küçük bir uyarı yapmakta fayda var: Ekranda sürekli imlecinizi yakalamaya çalışan dijital bir kedinin varlığı odaklanmayı biraz zorlaştırabilir. Bir de tarafımdan özellikle iş bilgisayarlarında kurulup kullanılması kesinlikle tavsiye edilmez!
Şekil 1: Masaüstünde imlecin ucundaki beyaz topu takip eden sanal kedi.
Güncelleme: v2.0.0.0 Geldi 🎉
İlk sürümü paylaştıktan sonra gelen geri bildirimlerin başında iki şey vardı: “İkinci monitörümde çalışmıyor” ve “keşke ayarlarını Türkçe görebilseydim.” İkisini de dinledim ve projeyi baştan biraz daha olgun bir hale getirdim. İşte v2.0.0.0 ile gelenler:
🖥️ Tam Çoklu Monitör Desteği: Artık kedi ve top yalnızca birincil ekranda değil, bilgisayarınıza bağlı tüm monitörlerde çalışıyor. Fareniz hangi ekrana geçerse geçsin, ikili sizi kesintisiz takip ediyor.
🇹🇷 Uygulama Artık Varsayılan Olarak Türkçe: Bu benim için özellikle keyifli bir detaydı. Uygulamayı hiçbir ayar değiştirmeden çalıştırdığınızda kedi sizinle Türkçe konuşuyor, uyarı ve bilgi mesajları da Türkçe geliyor. İngilizce kullanmak isteyenler için de tam destek mevcut; tek yapmanız gereken bir ayar dosyasındaki tek bir satırı değiştirmek (aşağıda anlatıyorum).
⚙️ Kaynak Koda Dokunmadan Ayar Yapma: Kedinin hızı, sıkılma süresi, mırlama sıklığı gibi tüm parametreler artık uygulamanın yanındaki bir settings klasöründen düzenlenebiliyor — Python bilmenize gerek yok, düz bir metin dosyası düzenlemek yeterli.
📦 Derlenmiş Sürümde Bile Özelleştirme: Bu ayarlar ve dil dosyaları .exe dosyasının içine gömülü değil; yanına bırakılan settings/ klasöründen okunuyor. Yani indirdiğiniz hazır sürümde bile dili veya hızı değiştirmek için Python kurmanıza ya da projeyi yeniden derlemenize gerek yok.
Türkçe Kullanıcılar İçin Pratik Not
Uygulamayı v2.0.0.0 olarak indirip açtığınızda hiçbir şey yapmanıza gerek kalmadan kedi sizinle Türkçe konuşacak — çünkü varsayılan dil Türkçe. İsterseniz İngilizceye geçmek için, indirdiğiniz klasördeki settings/settings.json dosyasını Not Defteri gibi basit bir metin editörüyle açıp içindeki "LANGUAGE": "tr" satırını "LANGUAGE": "en" olarak değiştirip uygulamayı yeniden başlatmanız yeterli. Aynı klasördeki lang/ alt klasörüne kendi dil dosyanızı (örneğin de.json) ekleyip aynı ayardan referans vererek başka diller de tanımlayabilirsiniz.
Projenin Arkasındaki Mantık ve Geliştirme Süreci
Ekrandaki bir sanal karakterin, kullanıcının fare hareketlerine gerçek zamanlı ve pürüzsüz bir şekilde tepki vermesini sağlamak projenin en keyifli kısmıydı. Kedinin hareketi sadece farenin koordinatlarına ışınlanmaktan ibaret olsaydı tüm doğallığı kaybolurdu.
Dinamik Takip Algoritması
Kedinin farenin ucundaki büyük beyaz topa doğru koşarken sergilediği ivmelenme, yavaşlama ve dönüş açıları matematiksel bir takip algoritmasına dayanıyor. Fareyi aniden kaçırdığınızda kedinin de hızlanması, imlece yaklaştığında ise yavaşlayarak durması simülasyona organik bir hava katıyor. Python’ın görüntüleme ve arayüz yeteneklerini kullanarak bu pürüzsüz hareket yapısını kurmayı başardım.
Çoklu Monitör Meselesi
v1’de kedi ve top yalnızca birincil ekranın sınırları içinde kalıyordu; fareyi ikinci monitöre götürdüğünüzde ikili ortada kayboluyordu. v2 ile birlikte, sisteme bağlı tüm ekranların koordinatlarını tarayıp kediyi ve topu farenin bulunduğu monitöre göre konumlandıran bir mantık ekledim. Windows’ta bu iş kutudan çıkar çıkmaz çalışıyor; Linux ve macOS’ta ise isteğe bağlı screeninfo kütüphanesiyle aynı deneyimi sunuyor.
Açık Kaynak Gücü ve GitHub Ailesi
Projenin herkes tarafından geliştirilebilmesi, kediye yeni hareket animasyonları eklenmesi veya takip nesnesinin özelleştirilebilmesi için kodları tamamen açık kaynak olarak paylaştım. Kodun ham haline ve mimarisine doğrudan GitHub deposu üzerinden erişebilirsiniz.
Projeyi bilgisayarınızda denemek için Python ortamı kurup kütüphanelerle boğuşmanıza gerek yok. Teknik detaylara girmeden doğrudan masaüstüne sanal bir evcil hayvan konuk etmek isteyenler için uygulamanın derlenmiş sürümlerini hazırladım.
🚀 Doğrudan İndir (v2.0.0.0 — Güncel, Çoklu Monitör & Çoklu Dil Destekli):KediTopTakibi.zip
v2.0.0.0’ı indirdiğinizde bir .zip dosyası açılacak; içinde KediTopTakibi.exe ile birlikte bir de settings/ klasörü bulacaksınız. Uygulamanın çalışması ve ayarları/dili okuyabilmesi için bu klasörü .exe ile aynı yerde tutmanız yeterli — başka hiçbir kurulum adımı yok.
(Tekrar hatırlatmakta fayda var; patronunuzun veya iş arkadaşlarınızın arkadan gelip ekranda beyaz bir topun peşinden koşan bir kediyi görmesini istemiyorsanız, bu eğlenceyi evdeki kişisel bilgisayarlarınıza saklamanız daha doğru bir mühendislik kararı olacaktır.)
Geliştiriciler İçin: Kodun Altında Ne Var?
Eğer işin mutfağına girmek, kedinin hız parametrelerini değiştirmek veya beyaz top yerine başka bir nesne entegre etmek isterseniz, Python projesini klonlayarak işe başlayabilirsiniz. Temel gereksinimler oldukça standart:
Projede ekran koordinatlarının anlık olarak yakalanması ve yüksek kare hızlarında (FPS) bile kedi figürünün pürüzsüzce çizilmesi için optimizasyonlar uygulandı. Özellikle arka planda çalışırken işlemciyi (CPU) gereksiz yere yormaması ve bilgisayarı kasıp işlerinizi engellememesi adına döngü aralıkları titizlikle optimize edildi.
Kaynak koddan çalıştıranlar için ayarlar ve diller yine aynı yerde: proje klasöründeki settings/settings.json, settings/lang/tr.json ve settings/lang/en.json. Kodu hiç açmadan, sadece bu dosyaları düzenleyerek kendi sürümünüzü kişiselleştirebilirsiniz.
Sonuç
Küçük bir video karesinden ilham alarak başlayan bu minik simülasyon, masaüstünü biraz daha eğlenceli hale getiren tatlı bir projeye dönüştü. v2.0.0.0 ile artık hem birden fazla ekranınız olsa da sizi bulabiliyor hem de anadilinizde sizinle sohbet edebiliyor. Siz de kodu forklayarak projeye yeni mekanikler kazandırabilir, masaüstünüzün yeni misafiriyle olan deneyimlerinizi GitHub, Linkedin ve sosyal medya üzerinden benimle paylaşabilirsiniz!