Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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();
}