Il y a actuellement 252 visiteurs
Samedi 06 Décembre 2025
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 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

Message moonlight sur android tv : pb touches clavier et souris
Bonjour,Je stream mon pc windows 11 avec apollo (nouveau sunshine) vers une tv box android (freebox pop) avec moonlightQuand je suis en streaming, donc sur ma télé j'ai des soucis de touches clavier et souris connecté sur ma box androidPour le clavier MX keys mini : - la touche windows lance une ...
Réponses: 2

Message souris qui bloque des fois
bonjour quand je navigue la souris des fois reste figé, j'ai passer ZHPCleaner hier et aujourdhui j'ai fait FRST64 y a un moment que j'ai pas ouvert pour nettoyage .
Réponses: 6

Message Besoin d'aide PC parasité par des étoiles
Bonjour à tous. Nouveau membre. Je possède un PC portable IdeaPad S145 et depuis 2 jours je ne peux pas l'éteindre en passant par l'icône en bas à gauche pour faire arrêter. Car une fenêtre s'ouvre et plein d'étoiles s'écrivent toutes seules comme si quelqu'un pilotait mon ordi. Et lorsque j'ouvre m ...
Réponses: 5

Message PC parasité par des étoiles en continu. Besoin d'aide
Bonjour à tous. Nouveau membre. J'ai posté vers 9h20 le message ci-dessous avec 13 visites mais pas de réponse. Je suis vraiment embêter avec mon problème. J'ai des recherches de travail à faire mais je suis parasité par ces étoiles qui s'affichent constamment et m'empêche d'effectuer mes recherch ...
Réponses: 1

Message Écran noir + aucune led d'allumée sur souris ou clavier
Bonjour et désolé si il peut m'arriver d'être impulsif, je le fait pas forcément exprès...Pour m'expliquer, ce matin mon ordinateur fonctionnait encore normalement, je suis allé sur internet, et à un moment mon écran s'est comme éteint pendant moins d'une 1sec,1h après, je l'éteint, je part, je vais ...
Réponses: 5


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


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