Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
*/<br />
<strong>NCURSES</strong> <strong>ile</strong> Yazılım Geli¸stirme <strong>NASIL</strong><br />
getparyx() i¸slevi içteki pencerenin ba¸slangıç koordinatlarını dı¸stakine göre döndürür. Bu bazen içteki<br />
pencereyi güncellemek gerekti˘ginde gereklidir. Pekçok menüden olu¸san güzel bir uygulama tasarımında, menü<br />
konumlarını, ilk seçenek koordinatlarını, v.b. kaydetmek zor bir hal alır. Buna basit bir yöntem alt pencereler<br />
içerisinde menüler olu¸sturmak ve getparyx() kullanarak menülerin ba¸slangıç koordinatlarını bulmaktır.<br />
getbegyx() ve getmaxyx() i¸slevleri o anki pencerenin ba¸slangıç ve en büyük koordinatlarını tutar. Bu<br />
i¸slevler yukarıdakine benzer ¸sekilde pencere ve iç pencerelerde çalı¸sırken faydalıdır.<br />
13.2. Ekran dökümünün alınması<br />
Oyun yazarken bazen ekran durumunun kaydedilmesi ve aynı duruma tekrar dönülmesi gerekmektedir.<br />
scr_dump() i¸slevi kendisine parametre olarak ver<strong>ile</strong>n dosyaya ekranın o anki konumuyla ilgili bilg<strong>ile</strong>ri yazmaktadır.<br />
Daha sonra scr_restore i¸slevi <strong>ile</strong> ekran durumu geri yüklenebilir. Bu iki basit i¸slev de˘gi¸sen senaryolara<br />
sahip hızlı bir oyunda verimli bir ¸sekilde kullanılabilir.<br />
13.3. Pencere dökümünün alınması<br />
Pencereleri kaydetmek ve geri yüklemek için putwin() ve getwin() i¸slevleri kullanılabilir. putwin(), daha<br />
sonra getwin() tarafından geri yükleneb<strong>ile</strong>n pencere durumunu bir dosyaya yazar.<br />
copywin() i¸slevi bir pencere durumunu tamamen di˘ger bir pencereye kopyalamak için kullanılır. Parametre<br />
olarak kaynak ve hedef pencerelerini alır, tanımlanan dikdörtgene göre dikdörtgen bölgeyi kaynaktan hedef<br />
pencereye do˘gru kopyalar. Son parametresi hedef pencere üzerine yazılma mı yoksa di˘ger durum bilg<strong>ile</strong>riyle<br />
beraber bulunma mı oldu˘gunu belirtir. E˘ger parametre mantıksal olarak do˘gru ise, kopyalama i¸slemi zarar verici<br />
de˘gildir.<br />
14. Çe¸sitli Özellikler<br />
Artık, ıslık ve zil sesleri çıkartan güzel bir program yazacak yeterli sayıda özellik biliyorsunuz. De˘gi¸sik durumlarda<br />
kullanı¸slı olab<strong>ile</strong>cek çe¸sitli bazı i¸slevler vardır. Bunların bazılarını ele alalım.<br />
14.1. curs_set()<br />
Bu i¸slev imleci görünmez yapmak için kullanılır. Bu i¸sleve gönder<strong>ile</strong>b<strong>ile</strong>cek parametreler ¸sunlardır:<br />
0 : görünmez<br />
1 : normal<br />
2 : çok görünür<br />
14.2. Curses Kipini Geçici Olarak Terk Etmek<br />
Bazen ilk i¸slemleri gerçekle¸stirdi˘giniz kipe (satır tamponlu kip) geçici bir süre için geri dönmek isteyebilirsiniz.<br />
Böylesi bir durumda ilk olarak tty kiplerini def_prog_mode() ça˘grısı <strong>ile</strong> kaydetmeniz ve curses kipini sonlandırmak<br />
için endwin() i¸slevini kullanmanız gerekmektedir. Bu sizi asıl tty kipine gönderecektir. ˙I¸siniz bitip<br />
tty kipine dönmek için reset_prog_mode() i¸slevini ça˘gırın. Bu i¸slev tty kipini def_prog_mode() <strong>ile</strong><br />
kaydedilmi¸s kipe dönü¸stürür. Daha sonra refresh()’i kullanın ve i¸ste yine curses kipindesiniz. A¸sa˘gıda yapılan<br />
i¸slemlerin sırasını gösteren bir örnek bulunmaktadır.<br />
Örnek 12. Geçici Olarak Curses Kipini Terk Etmek<br />
http://belgeler.org Linux Kitaplı˘gı 36 / 90