Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Kitsu Hokkaido

Pages: [1]
1
Système / Re: Simple question sur les sf:Time et sf::Clock
« le: Juillet 09, 2018, 09:57:36 pm »
En fait j'essaye juste de trouver une solution à mon problème qui n'en est peut être pas un ! J'ai une map constitué de tiles qui fait 800*30*32 (la taille des tiles 32) ensuite mon perso avec son anim attaque effichage(vie inventaire) et des monstres il se trouve que lorsque je commence à avoir 5 monstres mon programme ne bug pas juste mon perso avance moin vite et saute moin vite donc est-ce normal ou pas pour je trouve bien peu d'éléments(ma map n'est même pas pleine de tile->platformer voilà !
Merci pour votre aide futur !

2
Système / Re: Simple question sur les sf:Time et sf::Clock
« le: Juin 12, 2018, 07:31:59 pm »
Et bien un sf::Time correspond à un simple sf::Clock::getElapsedTime() donc je ne comprends pas l'utilité si il ne peut pas prendre le temps et le mettre à 0 pour cette variable si vous voyez ce que je veux dire ! Bref, le véritable sens de ma question c'est que je crée un jeu de plateforme et lorsque j'ai beaucoup de monstre environ 10 (il y a une boucle for pour les faire fonctionner chaque fonction de leur classe), mon perso saute pas haut du tout je me suis dit que cela venait peut-être de ma question plus haute...
Voilà c'est tout merci.

3
Sujet résolu !! ;D

4
Système / Simple question sur les sf:Time et sf::Clock
« le: Juin 07, 2018, 07:01:48 pm »
Bonjour,
Ca fait pas mal de temps que je programme avec la SFML et lorsque j'utilise la classe sf::Clock souvent j'utilise 10 variables de cette classe ma question est de savoir si une seule horloge suffit et de faire 10 sf::Time, à ce propos je ne comprends pas l'utilité de sf::Time...
Merci pour vos aides futur !

5
Bonjour,
Jusqu'à maintenant lorsque je codais mon jeu de plateforme seul la collision du bas de mon personnage m'intérressée, je n'avais aucun problème. Mais maintenant, je m'intèresse aussi à la droite et à la gauche. J'ai codé cette fonction mais lorsque je suis en l'air et que je me cogne à un mur mon personnage reste en fait à la même hauteur, cela est du à la position de mes tests. Ma question est donc comment y arriver. Peut-être que je suis parti dans la mauvaise voie.
Mon code :
void Organisme::collisionMap(int *level, int width, int height)
{
        //initilisation de la variable pour nous faire chuter s'il n'y a pas collision
        onGround = false;

        int haut = organisme.getPosition().y;
        int gauche = organisme.getPosition().x;
        int droite = organisme.getPosition().x + 32;
        int bas = organisme.getPosition().y + 32;

        for (int x = 0; x < width; x++)
        {
                for (int y = 0; y < height; y++)
                {
                        int hautM = y * 32;
                        int basM = y * 32 + 32;
                        int gaucheM = x * 32;
                        int droiteM = x * 32 + 32;

                        if (level[x + y*width] == 2 || level[x + y*width] == 4 || level[x + y*width] == 1 || level[x + y*width] == 6 || level[x + y*width] == 9 || level[x + y*width] == 10)
                        {

                                //test si il y a ue collision avec le bas du personnage
                                if (std::abs(bas - hautM == 0) && gauche >= gaucheM && gauche <= droiteM || std::abs(bas - hautM == 0) && droite >= gaucheM && droite <= droiteM)
                                {
                                        organisme.setPosition(organisme.getPosition().x, hautM-32);
                                        onGround = true;
                                        break;
                                }

                                //test si il y a une collision sur la droite
                                if (std::abs(droite - gaucheM == 0) && haut >= hautM && haut <= basM || std::abs(droite - gaucheM == 0) && bas >= hautM && bas <= basM)
                                {
                                        organisme.setPosition(gaucheM - 31, organisme.getPosition().y);
                                        break;
                                }

                                //test si il y a une collision sur la gauche
                                else if (std::abs(gauche - droiteM == 0) && haut >= hautM && haut <= basM || std::abs(gauche - droiteM == 0) && bas >= hautM && bas <= basM)
                                {
                                        organisme.setPosition(droiteM + 33, organisme.getPosition().y);
                                        break;
                                }
                        }
                }
        }

        if (organisme.getPosition().x <= 0)
        {
                organisme.move(0.5, 0);
        }
        else if (organisme.getPosition().x + 32 >= 32 * width)
        {
                organisme.move(-0.5, 0);
        }
}
 
Merci de votre aide.

6
Graphique / Re : Probléme de Mémoire avec sf::Vertex
« le: Mars 30, 2017, 06:32:02 pm »
Lorsque je l'utilise il m'ouvre une nouvelle page : "chkstk.asm", où je comprends rien, mais j'ai trouvé une solution, qui ne me plait pas trop. Je déclare mon tableau en dehors de la classe TileMap, mais du coup il est public(le tableau), ca m'embète un peu !!! :-\ :'( Si vous avez une autre solution !?

Re: Il semble que private soit une pile car, si je déclare mon tableau à l'intérieur :

class TileMap: public sf::Drawable, sf::Transformable
{
public:
        TileMap();
        ~TileMap();
private:
        sf::Vertex quadV[500 * 500 * 4];
};
Ca ne marche que si je déclare ma classe en dehors d'une autre classe :
class Main
{
public:
        Main();
        ~Main();
private:
};
TileMap carte;

peut être que je me tompe mais comme ça, ça marche.

Re: c'est bon j'ai trouvé, il faut que je le mettent en pointeur :
class Main
{
public:
        Main();
        ~Main();
private:
        TileMap *carte;
};
 

Donc, je ne vous embête plus, merci beaucoup pour votre aide !!

7
Graphique / Re : Probléme de Mémoire avec sf::Vertex
« le: Mars 28, 2017, 03:25:17 pm »
Merci beaucoup, mais je l'ai dit au début (sans stack ).  :)

8
Graphique / Re : Probléme de Mémoire avec sf::Vertex
« le: Mars 27, 2017, 03:39:14 pm »
Il n'écrit rien à part des attentions. Mais aucune erreur, c'est quand je lance le jeu qu'il me dit Stack overflow

9
Graphique / Re : Probléme de Mémoire avec sf::Vertex
« le: Mars 26, 2017, 09:26:12 pm »
J'ajoute que ce n'est pas la même erreur qui se créer, il y a violation d'accés, mais pas un overflow.

10
Graphique / Re : Probléme de Mémoire avec sf::Vertex
« le: Mars 26, 2017, 09:21:16 pm »
Non, désolé, il se trouve que j'ai réssayé entre temps et que j'ai fais un copié collé du mauvais fichier. De plus, je viens de réssayer et ça ne marche toujours pas.

11
Graphique / Re : Probléme de Mémoire avec sf::Vertex
« le: Mars 26, 2017, 07:47:35 pm »
Désolé, je ne comprends pas, vous voulez dire où est ce que je remplis mes fonctions ? Quand je les utilises ?
Dans ce cas comme ce ci :

#include "Main.h"

const int carte[]=
{/*je ne vais pas le remplir*/};

Main::Main()
{
        map.loadMap("Tiles.png", sf::Vector2u(32, 32), carte, 500, 500);
}

void Main::game()
{
        sf::RenderWindow window(sf::VideoMode(800, 600), "VertexTableau");
        while (window.isOpen())
        {
                sf::Event event;
                while (window.pollEvent(event))
                {
                        if (event.type == sf::Event::Closed)
                                window.close();
                }
                window.clear();
                map.cupTo(0, 0, 10, 500);
                window.draw(map);
                window.display();
}

int main(void)
{
      Main *main;
      main = new Main;

      main->game();

      delete main;
      return 0;
}

Et au cas ou le .h :

#include "TileMap.h"
#include "Include.h"

class Main
{
public:
        Main();
        ~Main();
        void game();
private:
        TileMap map;
};

12
Graphique / Re : Probléme de Mémoire avec sf::Vertex
« le: Mars 26, 2017, 11:13:41 am »
Voici comment je l'implémente: (je n'ai fais que suivre le cours en l'adaptant à un tableau non dynamique)

#include "TileMap.h"

bool TileMap::loadMap(const string& image1, sf::Vector2u sizeTuile, const int* jeuxTuile, unsigned int posX, unsigned int posY)
{
        if (!image.loadFromFile(image1))
        {
                return false;
        }

        for (unsigned int x = 0; x < posX; ++x)
        {
                for (unsigned int y = 0; y < posY; ++y)
                {
                        positionTuile = jeuxTuile[x + y*posX];

                        reste = positionTuile % (image.getSize().x / sizeTuile.x);
                        division = positionTuile / (image.getSize().x / sizeTuile.x);

                        sf::Vertex *quad;
                        quad = &quadV[(x + y * posX) * 4];

                        quad[0] = sf::Vertex(sf::Vector2f(x * sizeTuile.x, y * sizeTuile.y), sf::Vector2f(reste * sizeTuile.x, division * sizeTuile.y));
                        quad[1] = sf::Vertex(sf::Vector2f((x + 1) * sizeTuile.x, y * sizeTuile.y), sf::Vector2f((reste + 1) * sizeTuile.x, division * sizeTuile.y));
                        quad[2] = sf::Vertex(sf::Vector2f((x + 1)* sizeTuile.x, (y + 1)* sizeTuile.y), sf::Vector2f((reste + 1)* sizeTuile.x, (division + 1)* sizeTuile.y));
                        quad[3] = sf::Vertex(sf::Vector2f(x * sizeTuile.x, (y + 1) * sizeTuile.y), sf::Vector2f(reste * sizeTuile.x, (division + 1) * sizeTuile.y));
                }
        }

        return true;
}

void TileMap::cupTo(int x, int y, int carre, int width)
{
        square = carre;
        start = x;
        start1 = y;
        tailleMap = width;
}

Je sais qu'il y a des pertes de donnés au niveau de mon implémentation, (conversion de 'unsigned int' en 'float'). Ce doit être les répétions, mon probléme.

13
Graphique / Re : Probléme de Mémoire avec sf::Vertex
« le: Mars 25, 2017, 09:31:42 pm »
Merci pour votre réponse.
Il n'est pas déclaré dans une fonction : (dans un fichier .h sous private)

#pragma once
#include "Include.h"

class TileMap : public sf::Drawable, sf::Transformable
{
public:
   bool loadMap(const std::string& image1, sf::Vector2u sizeTuile, const int* jeuxTuile, unsigned int posX, unsigned int posY);
   void cupTo(int x, int y, int carre, int width);

private:
   sf::Texture image;
   sf::Vertex quadV[100*100*4];

   int positionTuile;
   int reste;
   int division;
   int square, tailleMap, start, start1;

   virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const
   {
      states.transform *= getTransform();
      states.texture = &image;
      for (int i = start; i <start+square; i++)
      {
         for (int j = start1; j<start1+square; j++)
         {
            target.draw(&quadV[(i + j*tailleMap) * 4], 4, sf::Quads, states);
         }
      }
   }
};

14
Graphique / Probléme de Mémoire avec sf::Vertex
« le: Mars 25, 2017, 04:54:48 pm »
Bonjour,
Mon probléme est simple. Lorsque j'utilise un tableau de sf::Vertex et que je lui donne une taille supérieur à 100*100*4 (40 000), il y a un overflow. Mais si j'utilise sf::VertexArray et que je lui met une taille supérieur il n'y a aucun probléme. >:(
Merci de votre réponse.

Pages: [1]