dimanche 26 juin 2016

my window in ncurses dosn't display anything

i recently use ncurses for my project and i am new to it. i write a code to print my spaceship(3 string line) in a window but it dosen't show anything i use to function one for printing ship in a new window and other for deleting windows().here is my code :

#include<stdio.h>
#include<ncurses.h>
#include <string.h>
#include<stdlib.h>


WINDOW * create_newwin(int height, int width, int starty, int startx);

void destroy_win(WINDOW *local_win);

int main(int argc, char *argv[]){

   WINDOW* space_ship;
   int max_y , max_x , startx , starty;
   char ch;

   initscr();
   cbreak();
   noecho();

   getmaxyx(stdscr,max_y,max_x);
   startx=(LINES - 3) / 2;
   starty=(COLS - 5) / 2;
   space_ship=create_newwin(3,5,starty,starty);
   refresh();

   while((ch = getch()) != 'q')
   { switch(ch)
       { case KEY_LEFT:
               destroy_win(space_ship);
               space_ship = create_newwin(3,5, starty,--startx);
               break;
           case KEY_RIGHT:
               destroy_win(space_ship);
               space_ship = create_newwin(3, 5, starty,++startx);
               break;
           case KEY_UP:
               destroy_win(space_ship);
               space_ship = create_newwin(3, 5,--starty,startx);
               break;
           case KEY_DOWN:
               destroy_win(space_ship);
               space_ship = create_newwin(3, 5, ++starty,startx);
               break;
       }
   }

   endwin();

   return 0;
  }

WINDOW *create_newwin(int height, int width, int starty, int startx){
   WINDOW* temp;
   temp=newwin(height,width,starty,startx);
   refresh();
   wprintw(temp,"  ^n");
   wprintw(temp," (0)n");
   wprintw(temp,"[] []n");
   wrefresh(stdscr);
   wrefresh(temp);

return temp;

}

void destroy_win(WINDOW *local_win){

   wborder(local_win, ' ', ' ', ' ',' ',' ',' ',' ',' ');
   wrefresh(local_win);
   delwin(local_win);
}

Aucun commentaire:

Enregistrer un commentaire