Eski sitedeki yazılarımdan birisi, yazıyı aynen buraya alıyorum.

Bu yazıda Actionscript 3 ile eğik atış hareketinin nasıl yapılacağını inceleyeceğiz.

Uygulamanın tamamlanmış hali:
(Ateş Etme: Mouse Sol Tuş)
(Mermilerin hızı imleçle silah arasındaki mesafeye bağlı.İmleci yakın tutarak eğik atış etkisini daha iyi görebilirsiniz )

Gördüğünüz gibi bu aslında basit bir uygulama. İmlece göre dönen bir silah(cannon), tıklanınca ateş etme vs. bilindik şeyler. Benim burada dikkat çekmek istediğim nokta mermilerin dönme işlemleri, yani açı hesaplaması. Burada mermilerin açısı x ve y eksenindeki hızlarına göre hesaplanıyor, yani hareket yönüne göre merminin açısı hesaplanacak. Bu bazı noktalarda problemli gibi gözükse de genellikle iyi bir yöntemdir. Çalışma mantığı şu:

vx- merminin X eksenindeki hızı
vy- merminin Y eksenindeki hızı
Bize bu noktada gereken açı değerini hesaplamak ve objeyi buna göre döndürmek, bunu basitçe şu şekilde yapıyoruz:
var aci:Number=Math.atan2(vy,vx);
mermi.rotation=aci*180/Math.PI;

Basit ama oldukça kullanışlı bir yöntem diye düşünüyorum.

Kodlara gelirsek ilk olarak Mermi.as isimli bir sınıf oluşturacağız, bu sınıf mermilerin çiziminden ve mermiye ait hız vs. değişkenleri tanımlamaktan ibaret basit bir sınıf olacak.

Sıra geldi ana sınıfımıza (Document Class). Bütün hesaplamalar vs. bu sınıf içerisinde gerçekleşecek.
EgikAtis.as:

Örnek FlashDevelop’a göre hazırlanmıştır. Bu örneği Adobe Flash’ta çalıştırabilmek için 2 sınıf dosyasını fla dosyası ile aynı klasöre yerleştirin. EgikAtis.as sınıfının Sprite sınıfını değil de MovieClip sınıfını extends etmesi gerekiyor. Burada MovieClip sınıfını import etmeyi unutmayın. Adobe Flash’ta Document Class’ı EgikAtis olarak belirleyin.