Il y a actuellement 394 visiteurs
Vendredi 29 Mars 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 É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

Message Aide achat PC Portable
Bonjour Je viens sur le forum car j'envisage de changer de PC Portable et j'ai besoin d'aide !! Mon PC actuel : PC Portable ASUS R415UA-EB035T - 14" FHD sur lequel je suis passé de 8Go de mémoire vive à 16Go de mémoire vive Mon budget : 800 euros max Mon utilisation : internet et Word et lectur ...
Réponses: 9

Message icônes qui tremblent lors du déplacement de la souris.
Bonjourj'ai un petit pc de bureau THOMSON Windows 10 Home intel CELERON 4GO DDR4 64GO de stockage. Mon souci est le suivant : quand je bouge la souris les icones tremblent toutes seules j'ai téléchargé et lancer malwarebytes aucun souci trouvé ( du coup j'ai désinstallé malwarebytes)J?ai lancé une a ...
Réponses: 1


Qui est en ligne

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


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