animation speed #12; drawFigure #13

This commit is contained in:
2017-05-05 20:49:20 +02:00
parent 1a24486ec3
commit d0eae536a7
3 changed files with 36 additions and 25 deletions

View File

@@ -1,15 +1,15 @@
const char base_figure[6][8] = {{"======="},\ const char base_figure[6][8] = {{"======="}, \
{"I "},\ {"I "}, \
{"I "},\ {"I "}, \
{"I "},\ {"I "}, \
{"I "},\ {"I "}, \
{"I\\ "}}; {"I\\ "}};
const char figure[6][5] = {{" O "},\ const char figure[6][5] = {{" O "}, \
{" I "},\ {" I "}, \
{"\\I "},\ {"\\I "}, \
{"\\I/"},\ {"\\I/"}, \
{"/ "},\ {"/ "}, \
{"/ \\"}}; {"/ \\"}};

View File

@@ -84,7 +84,7 @@ int main(int argc, char **argv) {
initGuessWord(gs, filename); initGuessWord(gs, filename);
initAlphabet(gs); initAlphabet(gs);
drawAlphabet(gs, 0); drawAlphabet(gs, 0);
drawFigure(gs); drawFigure(gs, 0);
startGame(gs); startGame(gs);
getch(); getch();
@@ -278,7 +278,8 @@ int stackWrongCharacter(game_state *gs, char wrongchar) {
if (!alreadyUsed) { if (!alreadyUsed) {
gs->wrongCharacters[strlen(gs->wrongCharacters)] = wrongchar; gs->wrongCharacters[strlen(gs->wrongCharacters)] = wrongchar;
drawAlphabet(gs, wrongchar); drawAlphabet(gs, wrongchar);
return 1; drawFigure(gs, 1);
return 1;
} else { } else {
return 0; return 0;
} }
@@ -374,12 +375,15 @@ void trollHitScreen(game_state *gs, int hits) {
mvprintw(5, centerDiff(gs->centerx, strings[i]), strings[i]); mvprintw(5, centerDiff(gs->centerx, strings[i]), strings[i]);
refresh(); refresh();
/* sleep and vanish */ /* sleep and vanish */
int j = 0, k = gs->maxx - 1; int j = 0, k = gs->maxx, sec, usec;
sec = 1;
usec = (sec * 1000000) / gs->maxx;
for (j = 0; j <= gs->centerx; j++, k--) { for (j = 0; j <= gs->centerx; j++, k--) {
mvprintw(5, j, "!"); mvprintw(5, j, "!");
mvprintw(5, k, "!"); mvprintw(5, k, "!");
refresh(); refresh();
usleep(8000); usleep(usec); //8000
mvprintw(5, j, " "); mvprintw(5, j, " ");
mvprintw(5, k, " "); mvprintw(5, k, " ");
@@ -388,17 +392,24 @@ void trollHitScreen(game_state *gs, int hits) {
} }
} }
void drawFigure(game_state *gs) { void drawFigure(game_state *gs, int drawNext) {
int row = 6; int row = 6;
int length = 10; int length = 8;
int i; int i;
static init = 0; static int state = 0;
if (init) { if (!state) {
for (i = 0; i < row; i++) { for (i = 0; i < row; i++) {
mvprintw(i, gs->maxx - length - 1, "%s", base_figure[i]); mvprintw(i, gs->maxx - length - 1, "%s", base_figure[i]);
} }
init = 1; state++;
} } else {
/* Draw the stages */
if (drawNext) {
mvprintw(stages[state - 1] + 1, gs->maxx - 4, "%s", figure[state - 1]);
state++;
}
}
} }

View File

@@ -47,4 +47,4 @@ void showHelp(game_state *gs);
int centerDiff(int coordinate, char *str); int centerDiff(int coordinate, char *str);
void readRandomLine(char *file, char *result); void readRandomLine(char *file, char *result);
void trollHitScreen(game_state *gs, int hits); void trollHitScreen(game_state *gs, int hits);
void drawFigure(game_state *gs); void drawFigure(game_state *gs, int drawNext);