MehmetX.com

Windows Phone 7 Titreşim

22.07.2012 22:44:15 | Okunma Sayisi : 12061 | Yorum Sayisi : 1

Windows Phone 7 içerisindeki Vibration Motor' u (titreşim moturu) nasıl aktive edip nasıl durdurabileceğimizi inceleyeceğiz.


Microsoft.Devices namespace' i altındaki VibrateController class' ı içerisinde, titreşim moturunu çalıştıracak ve durduracak birer metot bulunmaktadır. Bunlar;

VibrateController.Default.Start metodu, parametre olarak TimeSpan tipinde bir değer ister. Parametre olarak verilen süre kadar cihazın titremesini sağlar/başlatır.

VibrateController.Default.Start metodu çalıştırıldığı zaman, parametre olarak verilen süre sonuna kadar cihaz titreyecektir. Ancak titreme esnasında VibrateController.Default.Stop metodu çağrılırsa, titreme o anda duracaktır.
VibrateController.Default.Start metoduna verilecek maksimum süre 5 saniyedir.

Geliştireceğiniz basit oyunlarda kısa titreşimler vermek iyi olacaktır.


 Örneğimize geçelim;
Visual Studio 2010 ile yeni bir Windows Phone Application açalım.
2 adet Button ve 1 adet TextBox ekledikten sonra Text' lerini aşağıdaki resimde görüldüğü gibi düzenleyelim.

wp7_titresim
 

TextBox' ın InputScope özelliğine Number verdik. TextBox tıklandığı zaman ekrana gelecek klavyede sadece numaralar olacak.
ContentPanel ID' li Grid' in XAML kodlarının son hali aşağıdaki gibi olacaktır.

 

 

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

<Button Name="btnTitret" Content="Titret" Height="72" HorizontalAlignment="Left" Margin="136,226,0,0" VerticalAlignment="Top" Width="160" Click="btnTitret_Click" />

<Button Name="btnDurdur" Content="Durdur" Height="72" HorizontalAlignment="Left" Margin="136,304,0,0" VerticalAlignment="Top" Width="160" Click="btnDurdur_Click" />

<TextBox Name="textBox1" Height="72" HorizontalAlignment="Left" Margin="136,148,0,0" Text="1000" VerticalAlignment="Top" Width="160" InputScope="Number"/></Grid>

 

using Microsoft.Devices; namespace' ini ekledikten sonra, Titret ve Durdur Button' larının Click' lerini aşağıdaki gibi düzenleyelim.

 

private void btnTitret_Click(object sender, RoutedEventArgs e)

{

double sure = double.Parse(textBox1.Text);

if (sure > 5000)

    sure = 5000;

VibrateController.Default.Start(TimeSpan.FromMilliseconds(sure));

}

 

private void btnDurdur_Click(object sender, RoutedEventArgs e)

{

VibrateController.Default.Stop();

}

 

Yukarıda yazdığımız kodları inceleyecek olursak;

btnTitret_Click içerisinde;

  • textBox1' in Text' ini double' a Parse ettik ve sure isimli double tipinde değişkene eşitledik.
  • sure değişkeninin değeri 5000' den büyük ise, sure değişkenini 5000' e eşitledik. Çünkü VibrateController.Default.Start metodu 0 ile 5000 milisecond (1 saniye = 1000 milisecond) arasında değer almaktadır. Yani cihazı kesintisiz olarak tek seferde en fazla 5 saniye titretebilirsiniz.
  • VibrateController.Default.Start metoduna parametre olarak sure değişkenindeki değeri TimeSpan.FromMiliseconds metodu ile verdik.

 

btnDurdur_Click içerisinde;

  • VibrateController.Stop metodu ile cihazın titremesini durdurduk.

 

Uygulamayı çalıştırıp denemek isterseniz, emulator üzerinde herhangi bir hareket/titreşim göremezsiniz. Eğer Windows Phone 7' li bir cihazınız varsa, bilgisayarınıza bağlayıp Cihaz üzerinde debug edebilirsiniz. Titret Button' u tıklandığında TextBox' a girilen milisecond süresince cihaz titreyecektir. Eğer titreme esnasında Durdur Button' una tıklarsanız, titreme duracaktır.

Örnek uygulamanın kaynak kodlarını buradan indirebilirsiniz.

 

 

1 Yorum

alper çelik 7.09.2012 07:22:44
Başarılı çalışmalarınız devamını diliyorum.



page-top