added terminal interrupt handlingw
This commit is contained in:
parent
9fd1fa4c83
commit
7c70cb4eb4
23
main.c
23
main.c
@ -1,14 +1,21 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdbool.h>
|
|
||||||
#include <ncurses.h>
|
#include <ncurses.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#include <signal.h>
|
||||||
#include "grid.h"
|
#include "grid.h"
|
||||||
#include "vect.h"
|
#include "vect.h"
|
||||||
|
|
||||||
void contain(int* pos, int* velocity, int min, int max);
|
static volatile int running = 1;
|
||||||
|
|
||||||
|
static void contain(int* pos, int* velocity, int min, int max);
|
||||||
|
// if ^C is pressed, set running flag to false
|
||||||
|
static void signalHandler(int sig);
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
signal(SIGINT, signalHandler);
|
||||||
|
int count = 0;
|
||||||
//init
|
//init
|
||||||
initscr();
|
initscr();
|
||||||
//noecho();
|
//noecho();
|
||||||
@ -29,9 +36,7 @@ int main()
|
|||||||
initGrid(&grid, width, height);
|
initGrid(&grid, width, height);
|
||||||
putPixel(&grid, pos.x, pos.y);
|
putPixel(&grid, pos.x, pos.y);
|
||||||
|
|
||||||
while (1) {
|
while (running) {
|
||||||
clear();
|
|
||||||
|
|
||||||
clearGrid(&grid);
|
clearGrid(&grid);
|
||||||
putPixel(&grid, pos.x, pos.y);
|
putPixel(&grid, pos.x, pos.y);
|
||||||
drawGrid(&grid);
|
drawGrid(&grid);
|
||||||
@ -49,7 +54,7 @@ int main()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void contain(int* pos, int* velocity, int min, int max)
|
static void contain(int* pos, int* velocity, int min, int max)
|
||||||
{
|
{
|
||||||
bool above_max = max < *pos;
|
bool above_max = max < *pos;
|
||||||
bool below_min = *pos < min;
|
bool below_min = *pos < min;
|
||||||
@ -60,3 +65,9 @@ void contain(int* pos, int* velocity, int min, int max)
|
|||||||
*velocity *= -1;
|
*velocity *= -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void signalHandler(int sig)
|
||||||
|
{
|
||||||
|
printf("interrupt\n");
|
||||||
|
running = 0;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user