Il y a actuellement 410 visiteurs
Mardi 07 Juillet 2026
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

aide programation C (clique souris => action)

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

aide programation C (clique souris => action)

Message le 08 Mai 2011 14:58

Bonjour à tous.

Bon voila, je code sous code block en C, j'utilise la SDL et j'aurais besoin de votre aide svp.

J'essaye de créer un jeu, et sur ma "page d'acceuil", je voudrais qu'il y est écrit "JEU", "REGLE" et "QUITTER" et que, si je clique sur un de ses 3 mots, sa effectue l'action que je souhaite.

Est-ce qu'il faut "écrire" les mots avec SDL_ttf, et ensuite mettre quelque chose du genre :
"si il y a un clique sur le mot
alors ..."
ou bien y a t'il un autre moyen de faire.

J'espere que vous avez compris se que je voudrais, et merci a ceux qui vont m'aidez.
kentin7112
Visiteur Confirmé
Visiteur Confirmé
 
Messages: 15
Inscription: 01 Mai 2011 09:55
 


Re: aide programation C (clique souris => action)

Message le 09 Mai 2011 07:07

Tu es sur la bonne piste en effet, tu devrais te renseigner sur les ActionListener... ;)

Bon courage !
Avatar de l'utilisateur
H3bus
Moderateur
Moderateur
 
Messages: 12195
Inscription: 08 Avr 2008 15:13
Localisation: /home/h3bus
 

Re: aide programation C (clique souris => action)

Message le 09 Mai 2011 08:18

Bonjour, et merci pour ta réponse.

Quand je regarde un peu sous google pour ActionListener, je vois que c'est beaucoup utilisé en JAVA. Mais moi, je voudrais coder en C. Est-ce que cette fonction marche aussi en C ou juste en JAVA?
kentin7112
Visiteur Confirmé
Visiteur Confirmé
 
Messages: 15
Inscription: 01 Mai 2011 09:55
 

Re: aide programation C (clique souris => action)

Message le 09 Mai 2011 08:39

Erf, autant pour moi, j'ai lu un peu en diagonale est j'ai pensé au C++...

En C, si tu utilises la SDL, voici un peu de lecture :

http://www.siteduzero.com/tutoriel-3-14 ... #ss_part_1
Avatar de l'utilisateur
H3bus
Moderateur
Moderateur
 
Messages: 12195
Inscription: 08 Avr 2008 15:13
Localisation: /home/h3bus
 

Re: aide programation C (clique souris => action)

Message le 09 Mai 2011 21:37

J'ai essayais de faire un petit quelque chose, pour la page des règles pour mon jeu.

Les règles sont sur 3 pages, regleP1 correspond à la première page, regleP2 à la deuxième et règleP3 à la troisième.

Mon but est de changer de page en cliquant sur le numéro voulu, numero1 renvoi a la première page des règle, numero2 à la deuxième et numero3 à la troisième.

Voici ce que j'ai fais, n'hésiter pas à faire toutes les remarques qui vous passent par la tête.

Code: Tout sélectionner
/*
regle.c
---------

Par kentin7112,

Rôle : donner les regles.
*/

#include <stdlib.h>
#include <stdio.h>
#include <SDL.h>
#include <SDL_image.h>
#include <SDL/SDL_ttf.h>

#include "constantes.h"
#include "jeu.h"

void regle(SDL_Surface* ecran)

{
    SDL_Surface *fond = NULL, *regleP1 = NULL, *regleP2 = NULL, *regleP3 = NULL, *numero1 = NULL, *numero2 = NULL, *numero3 = NULL, *retour = NULL, *cliqueX = NULL, *cliqueY = NULL;
    SDL_Event event;
    SDL_Color couleurOr = {210, 210, 0};
    TTF_Font *police1 = NULL, *police2 = NULL;
    int continuer = 1;

    TTF_Init();

    police1 = TTF_Openfont("RioGrande Striped.ttf, 50);
    police2 = TTF_Openfont("varsity_regular.ttf, 50);

    fond = IMG_Load("reglefond.gif");

    SDL_Color couleurOr = {0, 0, 0};

    numero1 = TTF_RenderText_Blended(police1, "1", couleurOr);
    numero2 = TTF_RenderText_Blended(police1, "2", couleurOr);
    numero3 = TTF_RenderText_Blended(police1, "3", couleurOr);
    retour = TTF_RenderText_Blended(police2, "RETOUR", couleurOr);

    while (continuer)
    {
        SDL_WaitEvent(&event);
        switch(event.type)
        {
            case SDL_QUIT:
                continuer = 0;
                break;
        }

        position.x = 0;
        position.y = 0;
        SDL_BlitSurface(fond, NULL, ecran, &position); /* Blit du fond */

        position.x = 70;
        position.y = 500;
        SDL_BlitSurface(numero1, NULL, ecran, &position); /* Blit du numero 1 par-dessus */
        SDL_Flip(ecran);

        position.x = 190;
        position.y = 500;
        SDL_BlitSurface(numero2, NULL, ecran, &position); /* Blit du numero 2 par-dessus */
        SDL_Flip(ecran);

        position.x = 310;
        position.y = 500;
        SDL_BlitSurface(numero3, NULL, ecran, &position); /* Blit du numero 3 par-dessus */
        SDL_Flip(ecran);

        position.x = 430;
        position.y = 500;
        SDL_BlitSurface(retour, NULL, ecran, &position); /* Blit du RETOUR par-dessus */
        SDL_Flip(ecran);

    }

while (continuer)
{
    SDL_WaitEvent(&event);
    switch(event.type)
    {
        case SDL_QUIT:
            continuer = 0;
            break;
        case SDL_MOUSEBUTTONUP:
            event.button.x = cliqueX; /* Reperage en x du clique gauche de la souris */
            event.button.y = cliqueY; /* Reperage en y du clique gauche de la souris */

            if cliqueX > 70 && cliqueX < 120 && cliqueY > 500 && cliqueY < 550 /* zone du numero 1 */
               fond = IMG_Load("regleP1.gif");

            if cliqueX > 190 && cliqueX < 240 && cliqueY > 500 && cliqueY < 550 /* zone du numero 2 */
               fond = IMG_Load("regleP2.gif");

            if cliqueX > 310 && cliqueX < 350 && cliqueY > 500 && cliqueY < 550 /* zone du numero 3 */
               fond = IMG_Load("regleP3.gif");

            if cliqueX > 430 && cliqueX < 750 && cliqueY > 500 && cliqueY < 550 /* zone du mot "RETOUR" */
               main(ecran);
            break;
    }

        position.x = 0;
        position.y = 0;
        SDL_BlitSurface(fond, NULL, ecran, &position); /* Blit du fond */

        position.x = 70;
        position.y = 500;
        SDL_BlitSurface(numero1, NULL, ecran, &position); /* Blit du numero 1 par-dessus */
        SDL_Flip(ecran);

        position.x = 190;
        position.y = 500;
        SDL_BlitSurface(numero2, NULL, ecran, &position); /* Blit du numero 2 par-dessus */
        SDL_Flip(ecran);

        position.x = 310;
        position.y = 500;
        SDL_BlitSurface(numero3, NULL, ecran, &position); /* Blit du numero 3 par-dessus */
        SDL_Flip(ecran);

        position.x = 430;
        position.y = 500;
        SDL_BlitSurface(numero2, NULL, ecran, &position); /* Blit du retour par-dessus */
        SDL_Flip(ecran);
}

    TTF_CloseFont(police1);
    TTF_CloseFont(police2);

    TTF_Quit();

    SDL_FreeSurface(texte);
    SDL_Quit();


    return EXIT_SUCCESS;
}



Aux lignes 99-100, je veux que quand le clique dans cette zone là (qui correspond au mot "RETOUR"), sa me renvoi à ma page d'accueil de mon jeu. Est-ce comme sa que je dois écrire pour réaliser cette action?

Merci à tous ceux qui prendront le temps de me lire.
kentin7112
Visiteur Confirmé
Visiteur Confirmé
 
Messages: 15
Inscription: 01 Mai 2011 09:55
 



Sujets similaires

Message ecran gris quelques secondes lorsque je clique sur un dossie
Salut tout le monde depuis plus de 15 jours de facon aleatoire innatendue apparait un ecran gris qui dure 2-3 secondes lorsque je clique sur un dossier puis cela revient sur le bureau par contre si je voulait faire un coller sur un dossier c'est à refaire .... je pensait que c'etait passager mais ...
Réponses: 2

Message Blocage du forum sur Firefox. Besoin d'aide.
Bonjour à tous,Etant donné que j'ai le même souci, j'ai suivi la méthode préconisée par Routman (une fois après avoir été informé je ne sais plus par qui et une seconde fois suite à un message de Pac428 aujourd'hui). Je vais reprendre point par point ce que j'ai fait pour que vous puissiez me dire s ...
Réponses: 2

Message Forcer un jeu à ignorer la souris.
Bonjour !Ma femme joue à Rise of the tomb raider sur l'écran secondaire pendant que moi je suis sur internet sur l'ecran principal. J'ai trouvé comment faire pour avoir chacun son audio sans sans que tout se mélange.Mais j'ai encore un problème : bien qu'elle joue avec la manette exclusivement, quan ...
Réponses: 1

Message Besoin d'aide, problème avec mon pc
Bonsoir et bienvenue Finks J'ai récemment acheté un nouveau pc, il y a une semaine environ.? Chez qui ? ça pourrait nous aider. ? Est-ce qu'il te serait possible de le retourner, éventuellement ?Fais savoir En cas de problème constaté sur un sujet, contactez un modérateur par MP svp. N'intervenez p ...
Réponses: 6

Message souris incontrolable
Bonjour,Lorsque je me sert de la souris, très souvent je n'arrive pas a a la contrôler elle fait un peu ce qu'elle veux.Cdt
Réponses: 6

Message clic souris
Bonjour,Comment faire pour ne cliquer qu'une seule fois sur le bouton gauche de la souris pour ouvrir une page ou un document etc..Merci.Cdt
Réponses: 51

Message Aide pour mail camera foscam
Bonjour à tousDepuis quelques jours, je ne recois plus d'alertes de déclenchement par mail, sur mes caméras foscam.Les caméras fonctionnent bien, mais quand je fais un test d'envoi j'ai ce message"cannot get initial ok message from server"Je sais que foscam est en liquidation judiciaire de ...
Réponses: 15


Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot] et 2 invités


.: Nous contacter :: Flux RSS :: Données personnelles :.