Il y a actuellement 379 visiteurs
Mercredi 20 Novembre 2024
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 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

Message Aide suite à une analyse FRST contre un virus vbc.exe
Bonjour tout le monde, J'ai récemment constaté que j'étais infecté par un virus lié à vbc.exe, ce qui entraîne une utilisation du CPU allant jusqu'à 30% voire 40%. J'ai donc effectué mes analyses FRST et voici les rapports obtenus : - FRST.txt: https://pjjoint.malekal.com/files.php?id=FRST_20240315_ ...
Réponses: 3

Message : besoin d'aide pour un pc portable à 500 euros
Bonjour à tous, J'ai besoin d'un sacré coup de main et de vos compétences. Voilà, j'ai un ami de mon fils avec ses frères et s?urs. Ils vont casser leur tirelire pour acheter un PC portable à leur s?ur pour son anniversaire . Elle va avoir 17 ans car leurs parents ne peuvent pas se le permettre . ...
Réponses: 3

Message Aide pc portable
Bonjour,Je souhaiterai faire plaisir à ma femme et lui acheter un pc portable qui ferait tourner world of warcraft en haute qualité (élevé ou ultra sans lag). J?ai fait un peu le tour sur le forum pour pas faire de doublon mais je n?ai rien trouvé. J?ai un petit budget max 700 euros avec un écran au ...
Réponses: 5

Message [réglé] aide pour achat imprimante compatible chromebook
Bonjour à tous, j'ai besoin d'acheter une imprimante laser n/b et couleur compatible Chromebook (un acer)Quelqu'un pourrait-il m'aider car je ne trouve rien par les moteurs de recherche. Les réponses données ne sont pas compatibles.Un grand merci pour votre aide
Réponses: 6


Qui est en ligne

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


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