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 :

[C] SDL_Rect et valeur negative


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Par défaut [C] SDL_Rect et valeur negative
    Bien le bonsoir !

    je voulais savoir pourquoi je ne peux pas mettre de valeur negative dans ma variable SDL_Rect en coordonnée x ou y.

    Pourtant les x,y de SDL_Rect sont des Sint donc positif ou négatif et
    les w,h sont Uint donc seulement positif.

    Le soucis c'est que si je mets positionfond.x à -50, SDL me le remet à 0 automatiquement quand il l'affiche du coup c'est pas genial vu que je voulai un perso qui evolue dans une map horizontal. Y'aurait il une solution?

    Merci a vous.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 10
    Par défaut
    Bonsoir,

    Peux tu afficher ton source, du moins la partie concernant ton problème car je e comprend pas pourquoi tu veux avoir une position negative?
    Il me semble que les axe commence à 0 au bord gauche ( axe x ) et bord supérieur ( axe y ).

    En esperant pouvoir t'aider

  3. #3
    Membre chevronné
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Par défaut
    Bah si mnt un perso sors sur la droite, sa position x negative, et donc il sera offscreen, mais SDL le bloque à la position 0.
    Tout c'que j'veux faire c'est le faire bouger tout à droite, et dès qu'il est offscreen, il apparait sur la gauche...
    Voici la partie du code décrementant sa position ->

    if(--naruto.position.x<=(-48))
    naruto.position.x = ecran.w;
    naruto etant de cette structure :
    typedef struct
    {
    SDL_Rect position;
    char table_sprite[100];
    int tailleSprite,nbSprite,typeMvt,numMvt,transP[3],delai;
    } Perso;

  4. #4
    Membre confirmé Avatar de Jordinateur
    Profil pro
    Inscrit en
    Février 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 119
    Par défaut
    En fait, tu l'as dis toi-même, les éléments d'un SDL_Rect x et y PEUVENT être négatif, mais le problème, c'est que c'est la SDL qui bloque ton personnage lorsqu'il est offscreen (seulement lorsque les données en abcisse ou en ordonnées sont negatives par contre...)

    Je n'ai pas bien compris ce que tu veux faire mais je vais te proposer la solution suivante :
    Tu fais une condition et si ton sprite est offscreen [u]entièrement[u], tu ne fais pas de blit offscreen c'est logique
    Ensuite tu blite l'image avec SDL_BlitSurface et tu donne en deuxième argument un SDL_Rect si une partie du sprite doit-être affiché dans ta fenêtre (par exemple la moitié du sprite et offscreen et l'autre non) (si tu ne comprends pas sa demande moi je t'expliquerais comment faire).

    C'est aussi simple que ça ;p


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(--naruto.position.x<=(-48))
    naruto.position.x = ecran.w;
    Je ne coomprends pas bien pourquoi tu met "--" devant naruto.position...

    EDIT : Préfère la balise CODE à la balise QUOTE pour poster du code

  5. #5
    Membre chevronné
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Par défaut
    Citation Envoyé par Jordinateur Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(--naruto.position.x<=(-48))
    naruto.position.x = ecran.w;
    Je ne coomprends pas bien pourquoi tu met "--" devant naruto.position...
    bah tant que la position x est superieur à -48, on decremente son abscisse,
    et si c'est inferieur, on le deplace à l'autre bout de l'ecran...

    Mais toi tu veux que j'fasse un algorithme assez complexe que si la moitié de du perso ne doit apparaitre qu'à l'ecran, il faut que je fasse un rognage du sprite...

    trop compliqué, y a pas plus simple...
    On peut pas creer notre propre structure SDL_Rect, qui peuvent contenir des abscisses et ordonnées negative?
    Quelle est la fonction qui bloque les abscisses et ordonnées à 0?
    la structure SDL_Rect, ou SDL_BlitSurface?

  6. #6
    Membre confirmé Avatar de Jordinateur
    Profil pro
    Inscrit en
    Février 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 119
    Par défaut
    Ba je n'ai pas d'autres solutions ! En fait c'est SDL_BlitSurface qui bloque ça. Moi j'arrive a bliter une seule fois en offscreen puis après sa ne marche plus...Je ne peux pas t'en dire plus mais pour moi c'est la seule solution qui existe...

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

Discussions similaires

  1. Probleme valeur negative dans OID avec TDISNMP
    Par fbalien dans le forum Web & réseau
    Réponses: 1
    Dernier message: 23/10/2014, 17h27
  2. Réponses: 2
    Dernier message: 30/11/2013, 18h22
  3. Suppression d'une valeur negative
    Par sami_rio dans le forum Excel
    Réponses: 5
    Dernier message: 25/03/2008, 22h25
  4. Réponses: 2
    Dernier message: 30/11/2007, 17h57
  5. Valeur negative qui sort des tenebres ?
    Par Battosaiii dans le forum C
    Réponses: 9
    Dernier message: 14/03/2006, 16h11

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