C/Visual C - un reloj con imagenes en c++

 
Vista:

un reloj con imagenes en c++

Publicado por yopi (1 intervención) el 13/10/2001 04:46:17
como puedo hacer un reloj digital en c++ con imagenes bmp o gif ??
o un cronómetro.... con multiples funciones...

ip_crash
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Reloj digital y cronómetro en C++ con imágenes BMP o GIF

Publicado por Alejandro (913 intervenciones) el 16/10/2024 23:30:16
Yopi, para crear un reloj digital o un cronómetro en C++ que utilice imágenes BMP o GIF, puedes usar una biblioteca gráfica como SFML (Simple and Fast Multimedia Library) o SDL (Simple DirectMedia Layer). A continuación, te muestro un ejemplo básico utilizando SFML para un reloj digital.

Primero, asegúrate de tener SFML instalada en tu entorno de desarrollo.

Ejemplo de reloj digital en C++ con SFML



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <iostream>
#include <iomanip>
#include <sstream>
 
int main() {
    // Crear la ventana
    sf::RenderWindow window(sf::VideoMode(800, 600), "Reloj digital");
 
    // Cargar la fuente
    sf::Font font;
    if (!font.loadFromFile("arial.ttf")) {
        std::cerr << "Error al cargar la fuente" << std::endl;
        return -1;
    }
 
    // Crear el texto para el reloj
    sf::Text clockText;
    clockText.setFont(font);
    clockText.setCharacterSize(50);
    clockText.setFillColor(sf::Color::White);
    clockText.setPosition(300, 250);
 
    // Cargar una imagen BMP o GIF
    sf::Texture texture;
    if (!texture.loadFromFile("imagen.bmp")) {
        std::cerr << "Error al cargar la imagen" << std::endl;
        return -1;
    }
    sf::Sprite sprite(texture);
    sprite.setPosition(0, 0);
 
    // Bucle principal
    while (window.isOpen()) {
        sf::Event event;
        while (window.pollEvent(event)) {
            if (event.type == sf::Event::Closed)
                window.close();
        }
 
        // Obtener la hora actual
        std::time_t now = std::time(nullptr);
        std::tm* localTime = std::localtime(&now);
        std::ostringstream oss;
        oss << std::put_time(localTime, "%H:%M:%S");
        clockText.setString(oss.str());
 
        // Limpiar la ventana
        window.clear();
        window.draw(sprite); // Dibujar la imagen
        window.draw(clockText); // Dibujar el texto del reloj
        window.display();
    }
 
    return 0;
}

Explicación del código:


1. Ventana: Se crea una ventana de 800x600 píxeles.
2. Fuente: Se carga una fuente (asegúrate de tener un archivo `arial.ttf` en tu directorio).
3. Texto del reloj: Se configura un objeto de texto para mostrar la hora actual.
4. Imagen: Se carga una imagen BMP (asegúrate de tener un archivo `imagen.bmp` en tu directorio).
5. Bucle principal: Se actualiza la hora cada vez que se redibuja la ventana.

Cronómetro


Para implementar un cronómetro, puedes agregar un temporizador que cuente el tiempo transcurrido y lo muestre en la pantalla. Aquí tienes un esquema básico:

1. Variables: Crea variables para almacenar el tiempo inicial y el tiempo transcurrido.
2. Iniciar/Pausar: Agrega lógica para iniciar y pausar el cronómetro con teclas.
3. Mostrar: Actualiza el texto del cronómetro en el bucle principal.

Notas:


- Asegúrate de tener las bibliotecas necesarias y de configurar tu entorno de desarrollo para compilar con SFML.
- Puedes personalizar el diseño y las funciones según tus necesidades.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar