XNA de Resmi Hareket Ettirme
XnA oyun programlamada resmi hareket ettirme
Merhaba arkadaşlar hatırladığınız gibi önceki yazımda size XNA de Ekrana Resim Çizdirme yi anlatmıştım. Şimdi ise size bu ekrandaki resmi nasıl butonlarla hareket ettireceğinizi anlatacağım.
Bunun için eski projemiz üzerinden devam ediyoruz ve önceki projemizi açıyoruz. Bu projemize daha önceden ayarladığımız yön butonları olarak kullandığımız ve boyutu ile transparan özellikli görselleri projemize ekliyoruz.
Daha önceki yazıda yaptığımız şekilde görselleri projemizin içindeki "Content" klasörüne ekliyoruz.
Görselleri ekrana uçak nesnemizi çizdirdiğimiz şekilde tekrardan çizdiriyoruz.
Yukarı da gördüğünüz gibi buton resmimizi ve konumunu oluşturup daha önceden deneyerek belirlediğim konumları ekliyorum.
Daha sonra ise tanımlamış olduğumuz buton görsellerine resimlerimizi "Initialize()" metodu içinde tanımlıyoruz.
En son olarak ta tanımlamış olduğumuz bu bilgiler doğrultusunda butonları ekrana çizdiriyoruz.
Evet gördüğünüz gibi butonları istediğim konumda ekrana çizdirmeyi başardık. Dediğim gibi buraya kadar olan kısım daha önce bahsettiğimiz XNA de Ekrana Resim Çizdirme kısmıyla birebir aynı.
Asıl iş şimdi başlıyor. İlk olarak butonlara bastığımızda uygulamamız da bunun algılanması ve buna bağlı olarak uçak görselinin hareketinin sağlanmasını yapmamız gerekecek.
"Update()" metodumuzun içine geliyoruz ve burada butonların alanlarını belirliyoruz. Çünkü biz bu buton alanlarına bastığımız zaman hareket işlemini gerçekleştirmesini istiyoruz.
Bildiğiniz gibi telefonumuz dokunmatik ekran olduğundan bizim ekranda parmağımızın temas ettiği yer ile butonların alanlarının aynı olup olmadığını kontrol etmemiz gerekiyor.
Bunu da "TouchLocation" ile dokunulan yerin koordinatlarını alır ve onun içinde de "Contains" ile dokunduğumuz yerin buton alanlarının içinde olup olmadığını kontrol ederiz. Eğer buton alanlarına temasımız olmuş ise uçak resmimizin konumunu değiştiriyoruz.
NOT: Bura da dikkat etmeniz gereken nokta biz uygulamayı dik şekilde yazdığımız için ve normal şartlar da ise uygulama da ekranın (0,0) noktasını emülatörü sola döndürdüğünüz haldeki sol üst köşenin olduğunu unutmayın !!!
En son olarak ta uygulama da resmimizin ekranın dışına çıkmasını engellemek için yaptığımız bir kontrol olacaktır. Resminde telefon gibi (0,0) noktası emülatörün sola döndürdüğünüz haldeki sol üst köşesidir.
Bu açıdan bakarsak;
Uçak resmimizin Y koordinatı sıfırdan küçük olduğu zaman resmimiz ekranın sağ tarafından çıkacaktır. Bunun için Y koordinatı sıfırdan küçük olduğu zaman resmimizi devamlı sıfır koordinatında tutmamız gerekiyor.
Birde uçak resminin Y koordinatı ekranın uzunluğundan büyük olduğu zamanı düşünürsek ki uçak tam ekranın sol tarafından çıktığı zaman her ikisininde Y koordinatları aynı olacaktır. Bu yüzden ekranın yüksekliğinden uçağımızın yüksekliğini çıkararak bu kontrolü sağlıyoruz ki uçağımız devamlı ekranda kalabilsin.
Yukarıda bahsettiğim önemli noktalara dikkat ederek ayarlamalarınızı yaptıktan sonra uçak görseli ne kadar butonlara basarsak basalım devamlı ekranımızda kalacaktır.
Evet arkadaşlar gördüğünüz gibi uçağımı sadece sağ ve sol hareketini gerçekleştirmiş oldum. Eğer siz bunu birde aşağı ve yukarı hareket ettirmek isterseniz aynı mantığı diğer koordinat içinde ayarlamanız gerekmektedir. :-)