Il y a actuellement 81 visiteurs
Samedi 31 Juillet 2021
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 !
En cas de problème constaté sur un sujet, contactez un modérateur par MP. N'intervenez pas vous-même. Merci bien.
Aucune aide ni support ne sera fourni par MP.
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
En cas de problème constaté sur un sujet, contactez un modérateur par MP. N'intervenez pas vous-même. Merci bien.
Aucune aide ni support ne sera fourni par MP.
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 Aide à la décision + besoins informatique
Bonjour à tous,Je viens vers vous car j'ai besoins de quelques conseils de la part de personnes régulièrement au courant des évolutions du monde PC. Je vais mettre mes quelques questions en gras pour faciliter le repérage J'ai acheté il y a 3 ans environ une tour pour un budget d'environ 1000 ? av ...
Réponses: 80

Message compatibilité souris sur w10
Bonjour,je souhaite acheter une souris sans fils afin de surfer sur le net sans prendre ma souris gaming. Le problème est que dans la description du modèle que je veux, la plupart des windows sont marqués mais pas windows 10. Comment puis-je savoir si la souris va fonctionner ou non sur mon pc ? (av ...
Réponses: 15

Message affichage erroné du nom d'un fichier vidéo - besoin d'aide
BonjourJe vous explique mon problème : quand j'utilise mon player freebox en tant que lecteur réseau, le nom de plusieurs fichiers vidéo (en MKV) est affiché de manière "erronée" (si je puis m'exprimer ainsi) à l'écran.Ainsi, un fichier que j'ai intitulé "1 Le Concert" apparaît à ...
Réponses: 2

Message [Réglé] Aide à l'achat ordi fixe
Bonjour à tous,Je reviens vers vous pour avoir des conseils sur l'achat d'une tour pour mon activité professionnel.Je suis dessinateur projeteur en bâtiment et souhaite investir dans un ordi.A mon taf, je suis sur un ACER Veriton M4640G INTEL CORE i7-6700 3.40 GHz RAM 16 GoCG: NVIDIA Quadro K2000D ...
Réponses: 16

Message Périphériques souris/microcasque
Bonjour, déjà merci pour les précédents conseils qui sont toujours bons. Aujourd'hui j'ai en tête de changer mon casque bien usé et/ou ma souris.j'ai actuellement casque logitech G430souris logitech G520L'idée c'est d'avoir à peu de chose près les mêmes, en neuf et sans fil. En sachant que j'aime be ...
Réponses: 0

Message Souris - saccade du curseur
Bonjour, j'aurais besoin d'aide pour comprendre quelque chose qui parait simple au premier abord: j'ai récemment changé de souris et lorsque je l'utilise, le curseur saccade à l'écran. Ces saccades ne sont pas gênante lorsque le mouvement du curseur est grand (ex: traverser tout l'écran d'un coup), ...
Réponses: 5

Message Démarrer mon pc via mon clavier ou ma souris ?
Bonjour,Dans le temps, j'avais un pc que je pouvais démarrer via un clic de souris ou n'importe quel touche de mon clavier en activant une option dans le bios. Je souhaiterai pouvoir faire la même chose avec mon pc actuel qui est sous windows 10 mais je n'y connais rien au niveau du bios. La référen ...
Réponses: 0


Qui est en ligne

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


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