Önceki başlık :: Sonraki başlık |
Yazar |
Mesaj |
NAMIDER
Kayıt: Dec 12, 2004 Mesajlar: 34
|
Tarih: Sat Nov 12, 2005 2:18 pm Mesaj konusu: [Algoitma] Ucak kirmasimi ve baska nesil e yon almak |
|
|
Ilk once www.Flock.com adresine bir bakiniz diyecegim, firefox un bir yenisi, daha BETA olmasina ragmen daha problem yasamadim.
Ben sphere (flik ) ile bir 2d simulasyon fantasy rpg sine calisiyorum ve ucaklar arasi donus olacak. Ucak 8 yorungeye bakabiliyor (rotate, sprite ), ucagin yoruyusunu
f(x) = mx+q (yani parabol) ile hesapliyabilecegimi dusunuyorum fakat bu sadece onun kirmasimini gerceklestiriyor. Savas icinde baska bir ucaka saldirmasi icin mx+q yu nasil karsin ucaga cevirebilirim?
Dusuncem: y = mx+q
m = yorunge (inen/kalkan)
x = denisen
q = sag/sol a dogru
ve bu hesap sonucu:
if(yeterli rot. icin bes onceki adimin x/y ve yeni x/ y ) {rot(entity,(-/+)45° ); }
Problem:
x -> y (benim fonksiyon)
x -> y = karsinucak
olmasi gereken= eger ucagimin yorungesi boyle devam ederse nereye varacak?
Bunun icin parabolu her hesaplanmasinda yeniden cizmek istiyorum (gorunmez olarak), ki eger degerse baska bir ucaga bildirsin. Fakat bunun programi cok yavaslatacagini dusunuyorum.
Sizin dusuncelerinizi alayim.
TSKler. |
|
Başa dön |
|
|
stroma
Kayıt: Mar 31, 2003 Mesajlar: 169
|
Tarih: Sat Nov 12, 2005 3:22 pm Mesaj konusu: |
|
|
mesaj tam anlaşılmıyor. biraz şekilli, alengirli atlatsan?
niye çarpacağı noktayı önceden hesaplattırıyorsun? kesin sonuç şart mı?
eğer kesin sonuç şart değilse noktalar ile değil doğrular ile çalışabilisin.
eğer yapay zeka için kullanacaksan daha hızlı, kolay ve daha çok kontrol yapabileceğin bir sistem ise nesneye antenler koymak. bu antenler nokta veya doğrular olabilir. nesnenin gittiği yöne ve gidiş fonksiyonuna göre uygun anten ile kontroller yapabilirsin.
bilmem yanlış mı anlamışım. |
|
Başa dön |
|
|
NAMIDER
Kayıt: Dec 12, 2004 Mesajlar: 34
|
Tarih: Sat Nov 12, 2005 6:22 pm Mesaj konusu: |
|
|
TSKler cevabin icin.
Ucak istedigi yere gidemiyor, mesela saga basinca bir parabol gibi gidecek ve dedigin gibi AI kontrollu olacak. Yane ayni x i kullanirsa (araba gibo, sag ve sol, mx+q ye bakarak) nereye gidecegini ogrenmesi gerekir.
Simdi PyGame ile basliyorum (Sphere de sprite fonkisyonlar oldukca sinirli), bu code a basliyinca devam yaptiklarimi yazarim. |
|
Başa dön |
|
|
stroma
Kayıt: Mar 31, 2003 Mesajlar: 169
|
Tarih: Sat Nov 12, 2005 7:50 pm Mesaj konusu: |
|
|
2 veya 3 lineer fonksiyonu çarparak/toplayarak da exponansiyel denklemler elde edebilirsin. bunun için en basitinden işlemleri yörüngelere ayırabilirsin. yani yörünge kendi işinden sorumlu işlerin/işlemlerin karmaşklığı azalır.. ve tabii sadece ilgili yörünge/yön ile test fonksiyonları çağırmayı ayarlarsan ekstra performans da kazanırsın.
ancak bu şekilde çalışınca uzayları birbirine çevirirken dikkatli olmak gerekiyor, özellikle rotasyon yörüngeleri de işin içine gireceği için epey ön hazırlık(formül çıkartma) yapmak lazım. |
|
Başa dön |
|
|
DG
Kayıt: Mar 06, 2004 Mesajlar: 351 Nereden: Eskişehir
|
Tarih: Sat Nov 12, 2005 11:44 pm Mesaj konusu: |
|
|
Cubic hermite interpolation kullanabilirsin. Rota için başlangıç noktası, bitiş noktası, başlangıç tanjantı, bitiş tanjantı gerek ve yeter
Konu genel olarak parametric curves diye geçer.
(Eğer doğru anladıysam) |
|
Başa dön |
|
|
stroma
Kayıt: Mar 31, 2003 Mesajlar: 169
|
Tarih: Sun Nov 13, 2005 12:01 am Mesaj konusu: |
|
|
sorun artırım veya rotayı oluşturmak değil, ben ai antenleri için doğru denklemlerini rahat kullanabilmesi için lineer denklemler üzerinden exp denklem üretsin diye söyledim. sorun kollişın detekşın. |
|
Başa dön |
|
|
DG
Kayıt: Mar 06, 2004 Mesajlar: 351 Nereden: Eskişehir
|
Tarih: Sun Nov 13, 2005 12:53 am Mesaj konusu: |
|
|
Eğer düşman sürekli hareket halindeyse. Belirli zaman değeri aralıkları için (deltaT = 1sn mesela) cubic hermite yaratılıp deltaT zaman sonunda test gerçekleştirilebilir. Tabii bu dinamik bir sistem olmuyor fakat rotanın uygulamaya dökülmesini %100 kolaylaştıracağı aşikar. Collision kasar fakat cubic hermite diğer yönlerde bunun için biçilmiş kaftan. Başlangıç noktası ve tanjantı belirli, bitiş değerli ise random olarak düşman uçağa göre yarattırılabilinir (basit) ayrıca rotayı en az deltaT saniye takip etmesi ve ardından düşmana göre yeni bir rota seçmesi de oldukça makul. Gerçek hayatta da öyle zınk zınk manevra yapılmıyor |
|
Başa dön |
|
|
|