Merhaba arkadaşlar.
Bu konumuzda bir video oyunu hilelerini ve arkalarında yatan matematiği anlatacağım.
Oyun hileleriyle ilgilenen herkes aimbot'un ne olduğunu bilir değil mi? Programı çalıştırırsın düşmanın kafasına otomatik nişan alır ve öldürür. Çok basit değil mi ?
Üstte bırakmış olduğum video bir spinbot videosu sadece örnek olarak göstermek istedim. Ancak biz bu konuda nasıl dönüleceğini vs. değil nasıl nişan alınacağını konuşacağız.
Şimdi biliyoruz ki oyunun hafızasında bütün oyuncuların kordinatları mevcut. Eğer mevcut olmasaydı onları oyunda göremezdik zaten. Bu kordinatları hesaplamalarımız için kullancağız.
Üç boyutlu kordinat sistemini biliyoruz değil mi ?
Üç boyutlu kordinat sisteminde 3 adet eksen bulunur: x, y ,z.
Örnek bir nokta verirsek: (5, -2, 3)
Oyunda da aynı bu şekilde kordinatlarımız mevcut.
Şimdi bizim bir noktamız var bu noktada kendi karakterimiz bulunuyor bu noktaya A(2, 3, 1) noktası diyelim.
Ayrıca hedefimizin de bir noktası bulunuyor bu noktaya da B(5, 6, 5) noktası diyelim.
Bu resim yeniden boyutlandırıldı, tam halini görmek için tıklayınız.
Şimdi bizim düşmana en yakın mesafeli yolu bulmamız lazım yani nişan almak için kullanacağımız vektörü bulmamız lazım.
Vektörler nedir biliyoruz zaten arkadaşlar. Vektör n boyutlu kartezyen kordinat sisteminin değerlerini taşıyan veri tipidir. En çok kullanılan vektör tipleri 2 boyutlu ve 3 boyutlu vektörlerdir. Biz de burada 3 boyutlu vektör kullanacağız. Örn. P(2, 3 ,5) noktası.
Artık hedefimiz ile aramızdaki vektörü bulabiliriz.
Bu resim yeniden boyutlandırıldı, tam halini görmek için tıklayınız.
Bu vektörü bulmak ise aslında çok kolay. B noktasından A noktasını yani düşmanımızın pozisyonundan kendimizinkini çıkararak yapabiliriz.
Vektörler arası çıkartma işlemini her ekseni birbirinden çıkararak yapabilirsiniz. Bulduğumuz bu noktaya da C noktası diyelim.
B(5, 6, 5)
A(2, 3, 1)
-----------------------
C(3, 3, 4)
Bu işlem alttaki sonucu ortaya çıkaracaktır.
Bu resim yeniden boyutlandırıldı, tam halini görmek için tıklayınız.
Yaptığımız işlem sonrası artık kendimizi orjin olarak görebilir ve hesaplamalarımızı daha kolay şekilde yapabiliriz.
Kendi noktamızı orjin olarak düşünürsek hedefimizin yeni konumu C noktası olacaktır. Artık trigonometri ve polar kordinat sistemine giriş yapabiliriz.
Polar Kordinat Sisteminde x, y, z yerine yaw, pitch, roll değerlerini kullanıyoruz. Kameranız X ekseninde hareket ettiği zaman yaw değerini, Y ekseninde hareket ettiği zaman pitch değerini değiştirir ancak kameranız Z ekseninde hareket etmediği için roll değerini değiştirmez ve sabit 0 kullanırız.
Bu resim yeniden boyutlandırıldı, tam halini görmek için tıklayınız.
Artık vektörümüzü de bulduğumuza göre bileşenlerine ayırabiliriz. Mor kenar y uzunluğunda ki y değeriyle aynı. Yeşil kenar x uzunluğunda aynı şekilde o da x değeriyle aynı ve son olarak mavi kenar z değeriyle aynı.
Pembe kenar ise x ve y eksenlerindeki hipotenüsdür. Pisagor teoremi ile bulunabilir x² + y² = hipotenüs²
Ve son olarak yaw ve pitch değerlerimizi bulabiliriz.
Ardından ise yeni görüş açılarımızı eskileriyle değiştirip nişan alıyoruz.
Okuduğunuz için teşekkürler umarım içinizdeki matematik aşkını biraz da olsa ateşlemişimdir
Konuyu beğendiyseniz Teşekkür etmeyi unutmayın! İyi Forumlar!