Pregunta

es allí una manera de utilizar el ratón como un controlador de eventos en c/c++ soy un estudiante y tengo un mini proyecto para hacer, estoy haciendo un juego de serpientes y la escalera (el famoso juego de mesa) y tratando de hacer lo básico borland c++ compilador de trabajo con un archivo de encabezado denominado gráficos.h, que es muy básico y da salida de 640 X 480 res, así que me preguntaba si hay una posibilidad de usar el mouse como un controlador de eventos (sobre la cual no tengo experiancia)para tener control sobre el palyer monedas en la mesa.

Yo estoy en segundo año de ingeniería (rama de ciencias de la computación )

thx de antemano por la ayuda!

¿Fue útil?

Solución

No estoy seguro de qué versión de gráficos.h le sucede que tiene, pero hay funciones getmousey, getmousey, clearmouseclick y getmouseclick. Ver este por parte de la documentación que puede trabajar para usted.

Es appeas que puede utilizar registermousehandler y una función de devolución de llamada para hacer algún nivel de un evento basado en programación.Aquí se muestra un ejemplo del documento que le envió.

// The click_handler will be called whenever the left mouse button is
// clicked. It checks copies the x,y coordinates of the click to
// see if the click was on a red pixel. If so, then the boolean
// variable red_clicked is set to true. Note that in general
// all handlers should be quick. If they need to do more than a little
// work, they should set a variable that will trigger the work going,
// and then return.
bool red_clicked = false;
void click_handler(int x, int y)
{
    if (getpixel(x,y) == RED)
    red_clicked = true;
}

// Call this function to draw an isosoles triangle with the given base and
// height. The triangle will be drawn just above the botton of the screen.
void triangle(int base, int height)
{
    int maxx = getmaxx( );
    int maxy = getmaxy( );
    line(maxx/2 - base/2, maxy - 10, maxx/2 + base/2, maxy - 10);
    line(maxx/2 - base/2, maxy - 10, maxx/2, maxy - 10 - height);
    line(maxx/2 + base/2, maxy - 10, maxx/2, maxy - 10 - height);
}
void main(void)
{
    int maxx, maxy; // Maximum x and y pixel coordinates
    int divisor; // Divisor for the length of a triangle side
    // Put the machine into graphics mode and get the maximum coordinates:
    initwindow(450, 300);
    maxx = getmaxx( );
    maxy = getmaxy( );
    // Register the function that handles a left mouse click
    registermousehandler(WM_LBUTTONDOWN, click_handler);
    // Draw a white circle with red inside and a radius of 50 pixels:
    setfillstyle(SOLID_FILL, RED);
    setcolor(WHITE);
    fillellipse(maxx/2, maxy/2, 50, 50);
    // Print a message and wait for a red pixel to be double clicked:
    settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);
    outtextxy(20, 20, "Left click in RED to end.");
    setcolor(BLUE);
    red_clicked = false;
    divisor = 2;
    while (!red_clicked)
    {
        triangle(maxx/divisor, maxy/divisor);
        delay(500);
        divisor++;
    }
    cout << "The mouse was clicked at: ";
    cout << "x=" << mousex( );
    cout << " y=" << mousey( ) << endl;
    // Switch back to text mode:
    closegraph( );
}

Otros consejos

Puede usar eventos de mouse y teclado usando la programación Win32 (en Visual Studio).

¿Es obligatorio utilizar Borland C ++?

Creo que hay API similares en Borland C ++.

Puede consultar http://www.functionx.com/win32/index.htm para obtener más información sobre el manejo de eventos en Visual Studio usando la programación Win32.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top