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.
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.
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 ortak etmek isteyenler için uygulamanın derlenmiş bir sürümünü hazırladım.
Aşağıdaki bağlantıdan doğrudan .exe uzantılı çalıştırılabilir dosyayı indirebilir ve tek tıkla oyunu başlatabilirsiniz:
(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.
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ü. 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!