瀏覽代碼

Forgot what I changed...

master
父節點
當前提交
61280c9366
共有 3 個文件被更改,包括 43 次插入37 次删除
  1. +37
    -17
      chapter/chapter_5.c
  2. +2
    -2
      chapter/chapter_5.h
  3. +4
    -18
      chapter/chapter_6.c

+ 37
- 17
chapter/chapter_5.c 查看文件

@@ -173,26 +173,46 @@ world_t * game_world (number_t width, number_t height, ...) {
return (world);
}

procedure_t game_render_attribute (attribute_t * attribute, number_t x, number_t y) {
curses_render_string (" ", COLOUR_CYAN, EFFECT_NORMAL, x + 0, y);
curses_render_string (attribute->name, COLOUR_CYAN, EFFECT_NORMAL, x + 3, y);

curses_render_string ("[ ", COLOUR_GREY, EFFECT_BOLD, x + 18, y);
curses_render_string (format_to_string (attribute->points->minimum, 0, 10, 4, ' '), COLOUR_RED, EFFECT_NORMAL, x + 20, y);
curses_render_string (format_to_string (attribute->points->current, 0, 10, 4, ' '), COLOUR_WHITE, EFFECT_NORMAL, x + 24, y);
curses_render_string (format_to_string (attribute->points->maximum, 0, 10, 4, ' '), COLOUR_GREEN, EFFECT_NORMAL, x + 28, y);
curses_render_string (" ]", COLOUR_GREY, EFFECT_BOLD, x + 32, y);
procedure_t game_render_attribute (number_t x, number_t y, ...) {
va_list list;

va_start (list, y);

for (;; ++y) {
attribute_t * attribute = (attribute_t *) va_arg (list, void *);

if (attribute != NULL) {
curses_render_string (attribute->name, COLOUR_CYAN, EFFECT_NORMAL, x + 0, y);
curses_render_string ("[ ", COLOUR_GREY, EFFECT_BOLD, x + 18, y);
curses_render_string (format_to_string (attribute->points->minimum, 0, 10, 4, ' '), COLOUR_RED, EFFECT_NORMAL, x + 20, y);
curses_render_string (format_to_string (attribute->points->current, 0, 10, 4, ' '), COLOUR_WHITE, EFFECT_NORMAL, x + 24, y);
curses_render_string (format_to_string (attribute->points->maximum, 0, 10, 4, ' '), COLOUR_GREEN, EFFECT_NORMAL, x + 28, y);
curses_render_string (" ]", COLOUR_GREY, EFFECT_BOLD, x + 32, y);
} else break;
}

va_end (list);
}

procedure_t game_render_skill (skill_t * skill, number_t x, number_t y) {
curses_render_string (" ", COLOUR_CYAN, EFFECT_NORMAL, x + 0, y);
curses_render_string (skill->name, COLOUR_CYAN, EFFECT_NORMAL, x + 3, y);
procedure_t game_render_skill (number_t x, number_t y, ...) {
va_list list;

va_start (list, y);

curses_render_string ("[ ", COLOUR_GREY, EFFECT_BOLD, x + 18, y);
curses_render_string (format_to_string (skill->points->minimum, 0, 10, 4, ' '), COLOUR_RED, EFFECT_NORMAL, x + 20, y);
curses_render_string (format_to_string (skill->points->current, 0, 10, 4, ' '), COLOUR_WHITE, EFFECT_NORMAL, x + 24, y);
curses_render_string (format_to_string (skill->points->maximum, 0, 10, 4, ' '), COLOUR_GREEN, EFFECT_NORMAL, x + 28, y);
curses_render_string (" ]", COLOUR_GREY, EFFECT_BOLD, x + 32, y);
for (;; ++y) {
skill_t * skill = (skill_t *) va_arg (list, void *);

if (skill != NULL) {
curses_render_string (skill->name, COLOUR_CYAN, EFFECT_NORMAL, x + 0, y);
curses_render_string ("[ ", COLOUR_GREY, EFFECT_BOLD, x + 18, y);
curses_render_string (format_to_string (skill->points->minimum, 0, 10, 4, ' '), COLOUR_RED, EFFECT_NORMAL, x + 20, y);
curses_render_string (format_to_string (skill->points->current, 0, 10, 4, ' '), COLOUR_WHITE, EFFECT_NORMAL, x + 24, y);
curses_render_string (format_to_string (skill->points->maximum, 0, 10, 4, ' '), COLOUR_GREEN, EFFECT_NORMAL, x + 28, y);
curses_render_string (" ]", COLOUR_GREY, EFFECT_BOLD, x + 32, y);
} else break;
}

va_end (list);
}

procedure_t game_render_player (player_t * player) {


+ 2
- 2
chapter/chapter_5.h 查看文件

@@ -106,8 +106,8 @@ extern player_t * game_player (string_t name, symbol_t * symbol);
extern block_t * game_block (string_t name, symbol_t * symbol, number_t collision, number_t override);
extern world_t * game_world (number_t width, number_t height, ...);

extern procedure_t game_render_attribute (attribute_t * attribute, number_t x, number_t y);
extern procedure_t game_render_skill (skill_t * skill, number_t x, number_t y);
extern procedure_t game_render_attribute (number_t x, number_t y, ...);
extern procedure_t game_render_skill (number_t x, number_t y, ...);
extern procedure_t game_render_player (player_t * player);
extern procedure_t game_render_block (block_t * block, number_t x, number_t y);
extern procedure_t game_render_world (world_t * world, number_t x, number_t y, number_t width, number_t height);


+ 4
- 18
chapter/chapter_6.c 查看文件

@@ -80,32 +80,18 @@ procedure_t play_game (procedure_t) {

terminal_show_cursor (FALSE);

number_t game_screen_offset = curses_screen_width - 40;

while (curses_active) {
number_t game_screen_offset = curses_screen_width - 40;

curses_render_background (' ', COLOUR_WHITE, EFFECT_NORMAL);

game_render_world (world, 0, 0, game_screen_offset, curses_screen_height);

game_render_player (player);

curses_render_string (" Attributes:", COLOUR_WHITE, EFFECT_BOLD, game_screen_offset, 0);

game_render_attribute (strength, game_screen_offset, 1);
game_render_attribute (edurance, game_screen_offset, 2);
game_render_attribute (wisdom, game_screen_offset, 3);
game_render_attribute (agility, game_screen_offset, 4);

curses_render_string (" Skills:", COLOUR_WHITE, EFFECT_BOLD, game_screen_offset, 5);
game_render_attribute (game_screen_offset, 1, strength, edurance, wisdom, agility, NULL);

game_render_skill (blades, game_screen_offset, 6);
game_render_skill (axes, game_screen_offset, 7);
game_render_skill (bows, game_screen_offset, 8);
game_render_skill (spears, game_screen_offset, 9);
game_render_skill (puppet_magic, game_screen_offset, 10);
game_render_skill (nature_magic, game_screen_offset, 11);
game_render_skill (rune_magic, game_screen_offset, 12);
game_render_skill (charm_magic, game_screen_offset, 13);
game_render_skill (game_screen_offset, 6, blades, axes, bows, spears, puppet_magic, nature_magic, rune_magic, charm_magic, NULL);

switch (curses_character) {
case SIGNAL_ARROW_UP: player->y -= 1; limit (& player->y, 0, world->height - 1); break;


Loading…
取消
儲存