static void draw_move(Move& move, uint frame_index, t_map *map, sf::RenderWindow& window, uint last_ant_id, sf::Font& font, Scaler& scaler) { t_room *room_a; if (move.ant_id > last_ant_id) room_a = map->start; else room_a = get_room_by_ant_id(move.ant_id, map); t_room *room_b = get_room_by_name(move.room_name.c_str(), map); const uint room_half = ROOM_SIZE / 2; sf::Vector2f original_pos(scaler.scale(room_a->coord_x) + room_half - ANT_SIZE, scaler.scale(room_a->coord_y) + room_half - ANT_SIZE); sf::Vector2f dest_pos(scaler.scale(room_b->coord_x) + room_half - ANT_SIZE, scaler.scale(room_b->coord_y) + room_half - ANT_SIZE); sf::Vector2f delta_vec = dest_pos - original_pos; delta_vec.x *= ((double)frame_index / FRAME_COUNT); delta_vec.y *= ((double)frame_index / FRAME_COUNT); sf::Vector2f draw_pos = original_pos + delta_vec; sf::CircleShape shape(ANT_SIZE); shape.setPosition(draw_pos); shape.setFillColor(sf::Color::Red); window.draw(shape); sf::Text text; text.setFont(font); text.setString(ft_itoa(move.ant_id)); text.setCharacterSize(16); text.setColor(sf::Color::Black); text.setPosition(draw_pos.x + 5, draw_pos.y + 5); window.draw(text); }
void draw::show_ready() { st_position dest_pos((RES_W/2)-26, (RES_H/2)-6); graphLib.copyArea(dest_pos, &ready_message, &graphLib.gameScreen); graphLib.updateScreen(); }