IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

Pétage de plombs de SDL durant le scrolling de mon niveau. [SDL 1.2]


Sujet :

SDL

  1. #1
    Membre régulier Avatar de JonathanTC
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2015
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2015
    Messages : 90
    Points : 112
    Points
    112
    Par défaut Pétage de plombs de SDL durant le scrolling de mon niveau.
    Tout est dans le titre.

    Je scroll parfaitement la map mais probleme arrive qu'a un moment la map ne scroll plus et bloque completement quand je m'amuse avec les fleches gauche et droite du clavier.
    A L'AIDE PLZ. !!!! .


    game.zip

    Je vous passe les source pour ceux qui veulent jeter un oeil dessus car pour le moment je ne vois pas d'ou sa vien.
    peut être que charge une image avec loadbmp à chaque passage de boucle et c'est pas bon je regarde donc dans cette direction je vous tiens au jus.

  2. #2
    Membre régulier Avatar de JonathanTC
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2015
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2015
    Messages : 90
    Points : 112
    Points
    112
    Par défaut
    c'est bon j'ai trouver je chargeai avec loadbmp l'image dans ma double boucle for et SDL ne supportai pas.

  3. #3
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    salut quelques rermarques sur le code:
    je pense que c'est vraiment utile de faire une classe CGame ou CNoyau_Jeu (par exemple) ainsi ça évitera de passer des pointeurs inutilement aux méthodes de la classe ( par exemple camera et niveau)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    ///// dans le fichier .h
    class CJeu
    {
    	private:
    	Camera m_camera_fc;
    	Niveau m_niveau_fc;
    	// ou bien avec des pointeurs
    	Camera *m_pCamera_fc;
    	Niveau *m_pNiveau_fc;
    	public:
    	CJeu();
    	void gestion_evenement();
     
    };
     
    //constructeur
    CJeu::CJeu()
    {
    	m_pCamera_fc=new Camera;
     
    }
     
    /////// implementation
     
     
    void CJeu::initialise_camera()
    {
        m_camera_fc.x = 0;
        m_camera_fc.y = 0;
    }
     
     
    /* FONCTION QUI GERE LES EVENEMENT DU CLAVIER OU DE LA SOURIS */
     
    bool CJeu::gestion_evenement()
    {
        SDL_Event event;
     
        while (SDL_PollEvent(&event))
        {
            switch (event.type)
            {
     
                case SDL_QUIT:
                    return true;
                break;
     
                case SDL_KEYDOWN:
                    switch (event.key.keysym.sym)
                    {
                        case SDLK_LEFT:
                            if(m_camera_fc.x > 0){
                                m_camera_fc.x = m_camera_fc.x - 7;
                            }
                            break;
    //....
                        default:
                            break;
                    }
                break;
     
                default:break;
            }
        }
     
        return false;
    }
     
    /* FONCTION QUI AFFICHE LA MAP */
     
    void CJeu::affiche_niveau()
    {
     
        SDL_Rect position;
        SDL_Surface *tuile;
     
        int compteur = 0;
     
        for(int i=0;i<m_niveau_fc.h;i++){
            for(int j=0;j<m_niveau_fc.w;j++)
    {
     
                    position.x = (j * 119) - m_camera_fc.x;
                    position.y = i * 168;
    //.....
     
            }
     
     
    }
    ensuite éviter les chiffres en dur par exemple position.y = i * 168;
    Il faut définir des constantes symboliques avec #define ou bien le mot clé const du C++
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    const int scrolling_max_y=168;

  4. #4
    Membre régulier Avatar de JonathanTC
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2015
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2015
    Messages : 90
    Points : 112
    Points
    112
    Par défaut Merci pour cette réponse.
    RE merci Mat c'est cool pour ta réponse.

    tu as raison c'est meilleur comme tu as fait. Ont comprend mieux. Par contre je sais pas si tu as cramé mais je code en c dans un cpp lol je sais c'est pas top pour le moment. De la je ne suis pas encore passer réellement au C++ même si j'ais de brèves souvenir de ce que j'ai appris en cours.

    En C c'est faisable avec des structure ?

  5. #5
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Oui c'est faisable mais le C++ permet je trouve de plus facilement structuré le code , il possède plus "d'outils" pour.

    En gros si tu veux faire un jeu en full C faudra améliorait ta rigueur dans le domaine .

  6. #6
    Membre régulier Avatar de JonathanTC
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2015
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2015
    Messages : 90
    Points : 112
    Points
    112
    Par défaut
    cool justement je veux m’améliorer. bref je prend note de toute ces infos. Et je continu sur la pratique car il y a que comme ça qu'ont apprend.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des cookies = pétage de plombs
    Par bulki dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 24/10/2007, 20h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo