18.02.2013 Views

NCURSES ile Yazılım Geli¸stirme NASIL

NCURSES ile Yazılım Geli¸stirme NASIL

NCURSES ile Yazılım Geli¸stirme NASIL

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!