ein Kapitel zurück                                           ein Kapitel weiter

Damit wir überhaupt das Scrolling aktivieren können müssen das Scrolling zuerst auch mit scrollok() <- siehe Kapitel zuvor aktivieren.

int scroll(WINDOW *win);  

Mit scroll schieben wir den durch den Parameter win angegeben Bildschirm um eine Zeile nach oben. Wenn stdscr angegeben wird wird der ganze Bildschirm gescrollt.

int scrl(int anzahl);  

Mit scrl schieben wir den Bildschirm mittels anzahl>0 anzahl Zeilen nach oben und mittels anzahl<0 anzahl Zeilen nach unten. Mit der Funktion setscrreg() (siehe Kapitel zuvor) können sie den Scrollbereich definieren...

Nun wollen wir ein etwas umfangreicheres Beispiel schreiben wo scroll und scrl und andere schon kennen gelernte Funktionen vorkommen. Wir lassen ein kleines Raumschiff durch Sterne gleiten. Mit den Cursortasten Pfeil nach Rechts und Pfeil nach Links können sie unser Raumschiff steuern. Mit 'q beenden sie das Programm.......

/*Download:cur10.c*/
#include <curses.h> #include <stdlib.h> /*'q'*/ #define QUIT 113 /* '<-'*/ #define LEFT 260 /* '->'*/ #define RIGHT 261 int main() { int x=40,zufall, c,i; srand(79); initscr(); keypad(stdscr,TRUE); /*Cursor und Funktionstasten*/ noecho(); /*keine Ausgabe*/ scrollok(stdscr,TRUE); /*Scrolling ein*/ scroll(stdscr); while(c!=QUIT) { scrl(1); /*Eine Zeile runter scrollen*/ for(i=0;i<5;i++) { zufall=rand()%79; mvaddch(20,zufall,'*'); mvprintw(0,0,"'q' drücken für Quit | Taste für Start | " "<- nach links -> nach rechts"); } c=getch(); halfdelay(3); switch(c) { case LEFT : if(x<1) x=79; else x--; break; case RIGHT: if(x>79) x=1; else x++; break; default : break; } mvdelch(9,x+2);mvdelch(9,x+1);mvdelch(9,x); mvdelch(9,x-1);mvdelch(9,x-2); mvaddch(10,x-1,ACS_LLCORNER); mvaddch(10,x+1,ACS_LRCORNER); mvaddch(10,x,ACS_TTEE); } endwin(); return 0; }




So siehts aus:



ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf