Domanda

c'è un modo per usare il mouse come gestore di eventi in c / c ++ sono uno studente e ho un mini progetto da fare, sto facendo un gioco su serpenti e scala (il famoso gioco da tavolo) e provando a farlo con le basi compilatore borland c ++ che funziona con un file di intestazione chiamato graphics.h, che è molto semplice e fornisce un output di 640 X 480 res, quindi mi chiedevo se esiste la possibilità di usare il mouse come gestore di eventi (di cui non ho esperienza) avere il controllo delle monete del palyer sul tabellone.

Sono in ingegneria del secondo anno (branca dell'informatica)

grazie in anticipo per l'aiuto!

È stato utile?

Soluzione

Non sono sicuro di quale versione di graphics.h ti capiti, ma ci sono funzioni getmousey, clearmouseclick, getmouseclick e registermousehandler. Vedi questo per alcuni documenti che potrebbero funzionare per te.

Sembra che sia possibile utilizzare <=> e una funzione di richiamata per eseguire un certo livello di programmazione basata su eventi. Ecco un esempio del documento che ti ho inviato.

// 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( );
}

Altri suggerimenti

È possibile utilizzare gli eventi del mouse e della tastiera utilizzando la programmazione Win32 (in Visual Studio).

È obbligatorio utilizzare borland c ++.

Penso che API simili siano presenti in Borland c ++.

Puoi fare riferimento a http://www.functionx.com/win32/index.htm per ulteriori informazioni sulla gestione degli eventi in Visual Studio utilizzando la programmazione Win32.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top