Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [c++] problema con ismouseclick e getmouseclick

    salve posto la srogente per cercare di rendere chiare le idee...

    for ( int cfor=1; cfor <= infinity; cfor++ ) {
    while(!getmouseclick(WM_LBUTTONDOWN,mouse_x,mouse_ y))
    {
    ismouseclick(WM_LBUTTONDOWN);
    mouse_x = mousex();
    mouse_y = mousey();

    if(((mouse_x >= (510-281))&&(mouse_x <= (510))) && ((mouse_y >= (200-115))&&(mouse_y <= (200)))) {
    readimagefile( "background_over_play.bmp", 0, 0, 800, 600 );
    }

    else if(((mouse_x >= (510-281))&&(mouse_x <= (510))) && ((mouse_y >= (294-212))&&(mouse_y <= (294)))) {
    readimagefile( "background_over_tutorial.bmp", 0, 0, 800, 600 );
    }

    else if(((mouse_x >= (510-281))&&(mouse_x <= (510))) && ((mouse_y >= (392-310))&&(mouse_y <= (392)))) {
    readimagefile( "background_over_about.bmp", 0, 0, 800, 600 );
    }

    else if(((mouse_x >= (510-281))&&(mouse_x <= (510))) && ((mouse_y >= (487-408))&&(mouse_y <= (487)))) {
    readimagefile( "background_over_quit.bmp", 0, 0, 800, 600 );
    }
    else {
    readimagefile( "start_background.bmp", 0, 0, 800, 600 );
    }
    gotoxy(5,5);
    cout<<"x="<< mousex()<<" y="<< mousey() <<endl;
    }
    }
    system("pause");
    tutte queste funzioni sono di graphics.h
    il risultato di questa sorgente, in una finestra creata con initwindow(800,600);
    crea il menu di un gioco. quando il mouse passa sopra ai pixel compresi nelle if, la scermata si cangelal e velocissimamente (invisibile a occhio nudo) viene caricata un'altra immagine.
    per esempio se il mouse passa sopra al tasto "play" di colore blu, il tasto diventa rosso.

    le istruzioni sono includein un ciclo for infinito, in quanto inifinity e una variabile senza valore.
    dovrei fare in modo però di aggiungere la funzione getmouseclick in un while:
    while (!getmouseclick(WM_LBUTTONDOWN, , )){

    tutte le istruzioni incluse qui

    }


    solo che quando lo faccio il compilatore mi da errore:
    C:\Documents and Settings\sonia.FAMILY\Desktop\pacman\PACMAN REVOLUTION.cpp:62: error: could not convert `getmouseclick(513, ((int&)(&mouse_x)), ((int&)(&mouse_y)))' to `bool'
    C:\Documents and Settings\sonia.FAMILY\Desktop\pacman\PACMAN REVOLUTION.cpp:62: error: in argument to unary !

    Esecuzione terminata

    come posso risolvere il problema? grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ho fatto veramente fatica a leggere questo tuo messaggio ... direi che non si capisce quasi nulla ...

    Ho solo capito che utilizzi la funzione

    getmouseclick

    pensando che restituisce un valore booleano, ma questa funzione è di tipo void, non restituisce nulla, ma opera sugli argomenti ... che, come hai scritto tu, mancano !

    getmouseclick(WM_LBUTTONDOWN, , )

    Quindi, per correggere, utilizza in maniera corretta la funzione getmouseclick come documentato in

    http://www.cs.colorado.edu/~main/bgi...ouseclick.html


    P.S. Si dice "il" sorgente, non "la" sorgente ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    volevo sapere perchè while(!getmouseclick non va bene.. mi da errore.... dovrei mettere variabili di tipo int& x;
    ma int& che variabile è?

    http://www.megaupload.com/?d=PSPPF6B6
    link megaupload per scaricare IL sorgente....

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    59
    scusa ma oregon già te l'ha spiegato

    codice:
    voud getmouseclick(int kind, int& x, int& y);
    non restituisce nessun valore, mentre il while ha bisogno di una condizione un'espressione da valutare, altrimenti su cosa effettua il controllo?

    Secondo me prima di spingerti a fare queste cose hai bisogno di consolidare un po' le basi del linguaggio, non prenderla come un'offesa ma come un consiglio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.