Untitled
Never
void pacman_draw(Pacman* pman) { /* [HW-TODO ] Draw Pacman and animations hint: use pman->objData.moveCD to determine which frame of the animation to draw, you may refer to discription in ghost_draw in ghost.c */ RecArea drawArea = getDrawArea(pman->objData, GAME_TICK_CD); //Draw default image al_draw_scaled_bitmap(pman->move_sprite, 0, 0, 16, 16, drawArea.x + fix_draw_pixel_offset_x, drawArea.y + fix_draw_pixel_offset_y, draw_region, draw_region, 0 ); int offset = 0; if (game_over) { /* hint: instead of using pman->objData.moveCD, use Pacman's death_anim_counter to create animation */ al_start_timer(pman->death_anim_counter); } else { switch (pman->objData.facing) { case RIGHT: al_draw_scaled_bitmap(pman->move_sprite, 0, 0, 16, 16, drawArea.x + fix_draw_pixel_offset_x, drawArea.y + fix_draw_pixel_offset_y, draw_region, draw_region, 0 ); break; case LEFT: al_draw_scaled_bitmap(pman->move_sprite, 16, 0, 16, 16, drawArea.x + fix_draw_pixel_offset_x, drawArea.y + fix_draw_pixel_offset_y, draw_region, draw_region, 0 ); break; case UP: al_draw_scaled_bitmap(pman->move_sprite, 64, 0, 16, 16, drawArea.x + fix_draw_pixel_offset_x, drawArea.y + fix_draw_pixel_offset_y, draw_region, draw_region, 0 ); break; case DOWN: al_draw_scaled_bitmap(pman->move_sprite, 96, 0, 16, 16, drawArea.x + fix_draw_pixel_offset_x, drawArea.y + fix_draw_pixel_offset_y, draw_region, draw_region, 0 ); break; } } }