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 - constructeur06

Pages: [1]
1
Général / Re : [Bug] Fenetre SFML ne s'affichant pas
« le: Juin 29, 2013, 03:13:49 pm »
Je crois que j'ai compris ! En changeant la taille de la fenêtre, j'ai plus ce problème ! =)

2
Général / Re : [Bug] Fenetre SFML ne s'affichant pas
« le: Juin 29, 2013, 03:04:57 pm »
En faisant juste ça j'ai le même problème :

main.cpp


#include <iostream>
#include <cstdio>
#include <string>


#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>

 #include "Engine.hpp"

using namespace std;
using namespace sf;

int main()
{

sf::VideoMode mode(1440, 900, 32);
sf::RenderWindow Game;
Game.create(mode, "Ultra Shooter 0.2");

        while(Game.isOpen())//Fenetre
        {


            Game.display();
        }

//int exit_code = game.Run();

    return 0;
}

 

3
J'ai déjà eu cette erreur, faut installer GCC 4.7 TDM (SJLJ) et pas GCC 4.7 MinGW (DW2)

Bonne chance  ;)

4
Général / Re : Erreur point d'entrée
« le: Juin 29, 2013, 02:22:18 pm »
Salut,

J'avais fait la même erreur que toi, il faut que tu télécharge GCC 4.7 TDM (SJLJ) et pas GCC 4.7 MinGW (DW2)  ;)

5
Général / [Résolu] Fenetre SFML ne s'affichant pas
« le: Juin 29, 2013, 12:18:05 pm »
Bonjour,

Dans le but de créer un projet en 2D, j'ai décidé d'utiliser SFML. Donc je lance le programme, aucune erreurs n'apparaissent, la console se lance, la fenêtre du jeu apparait dans la barre Windows, mais lorsque je clique sur cette dernière, impossible de l'afficher à l'écran... Elle ne réagit pas et reste en petit dans la barre Windows.

Nous sommes plusieurs sur ce projet et je suis le seul à rencontrer ce problème, chez les autres tout marche... Le pire c'est que le code source fournit dans le tuto sur le site SFML marche très bien ! La fenêtre avec le fond noire s'ouvre, et j'ai bien un cercle vert au milieu.

J'utilise Code::Blocks 12.11 et SFML TDM 2.0, j'ai tout linké comme il faut, et j'ai pas oublié : "SFML_DYNAMIC".

Si quelqu'un pouvait m'aider, j'en serait ravi... ça fait deux jours que je suis bloqué sur ce problème. J'ai cherché sur Google, et il semble que personne n'a rencontré ce problème.

Voici une partie du code quand même :

main.cpp :


#include <iostream>
#include <cstdio>
#include <string>


#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>

 #include "Engine.hpp"

using namespace std;
using namespace sf;

int main()
{

Engine game(sf::VideoMode(1440, 900, 32));

int exit_code = game.Run();

    return exit_code;
}

 

Engine.cpp :


#include "Engine.hpp"
#include <SFML/Window.hpp>
#include "Player.hpp"

#include <iostream>
#include <sstream>
#include <cmath>

using namespace std;
using namespace sf;

template <typename T> string NumberToString ( T Number )
{
    ostringstream ss;
    ss << Number;
    return ss.str();
}



Engine::Engine(sf::VideoMode Mode)
{
    Game.create(Mode, "Ultra Shooter 0.2");

}

int Engine::Run()
{

    sf::Clock fps_clock;


    player = new Player(sf::Vector2f(200.f, 200.f));

//Game.setVerticalSyncEnabled(true);
    Game.setFramerateLimit(60);
    MainView.setSize(1440, 900);
    MainView.setCenter(1440/2, 900/2);
    Game.setView(MainView);

    IsRunning=true;
    while(IsRunning)
    {

        while(Game.isOpen())//Fenetre
        {


            localMousePosition = sf::Mouse::getPosition(Game);
//Pour la répétition il faut utiliser les lignes ci-dessous.
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
            {
                player->move(-15.00f, 00.00f);
            }
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
            {
                player->move(15.00f, 00.00f);
            }
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
            {
                player->move(0.00f, -15.00f);
            }
            if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
            {
                player->move(0.00f, 15.00f);
            }

            if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
            {
                            sf::Vector2f converted_coord;//la position de la souris est en int
                converted_coord.x=(float)localMousePosition.x;//donc on la convertie en float car Player::Shoot(sf::Vector2f, sf::RenderWindow &myRenderWindow)
                converted_coord.y=(float)localMousePosition.y;//sf::Vector2f est en float

                AllBullets.push_back(Bullet(player->getPosition(), player->Shoot(converted_coord, Game)));

            }
//Pour des touches séparées(avec délai du système), il vaut mieux utiliser ces lignes là(pollEvent).
            while (Game.pollEvent(WindowEvent))
            {
                if (WindowEvent.type == Event::Closed)
                {
                    Game.close();
                    IsRunning=false;
                }
                /* else if (WindowEvent.type == Event::MouseMoved)
                 {
                     MousePosition.x=WindowEvent.mouseMove.x;
                     MousePosition.y=WindowEvent.mouseMove.y;
                 }*/

                if (WindowEvent.type == sf::Event::Resized)
                {
                    // on met à jour la vue, avec la nouvelle taille de la fenêtre
                    MainView.setSize(WindowEvent.size.width, WindowEvent.size.height);
                    //sf::FloatRect visibleArea(0, 0, WindowEvent.size.width, WindowEvent.size.height);
                    //Game.setView(sf::View(visibleArea));
                    Game.setView(MainView);
                }
                if (WindowEvent.type == Event::KeyPressed)
                {
                    if (WindowEvent.key.code == sf::Keyboard::Space)
                    {

                        std::cout << "the space key was pressed" << std::endl;
                        std::cout << "control:" << WindowEvent.key.control << std::endl;
                        std::cout << "alt:" << WindowEvent.key.alt << std::endl;
                        std::cout << "shift:" << WindowEvent.key.shift << std::endl;
                        std::cout << "system:" << WindowEvent.key.system << std::endl;
                    }
                }
                if (WindowEvent.type == sf::Event::MouseButtonPressed)
                {
                    if (WindowEvent.mouseButton.button == sf::Mouse::Right)
                    {
                        std::cout << "the right button was pressed" << std::endl;

                    }
                }
                if (WindowEvent.type == sf::Event::MouseWheelMoved)
                {
                    std::cout << "wheel movement: " << WindowEvent.mouseWheel.delta << std::endl;

                }
            }//pollEvent



            Vector2i object_pixel_position=Game.mapCoordsToPixel(player->getPosition(), MainView);
            if(object_pixel_position.x < 100)
            {
                MainView.move(-15.f, 0.f);
                Game.setView(MainView);
            }
            if(object_pixel_position.x > Game.getSize().x-100)//ignorer avertissement de la comparaison entre expressions entières signée et non signée
            {
                MainView.move(15.f, 0.f);
                Game.setView(MainView);
            }
            if(object_pixel_position.y < 100)
            {
                MainView.move(0.f, -15.f);
                Game.setView(MainView);
            }
            if(object_pixel_position.y > Game.getSize().y-100)//ignorer avertissement de la comparaison entre expressions entières signée et non signée
            {
                MainView.move(0.f, 15.f);
                Game.setView(MainView);
            }


                for(unsigned int n=0; n<AllBullets.size(); n++)
            {
               AllBullets.at(n).UpdatePosition();
               if(CheckIfOutOfWindow(AllBullets.at(n).getPosition()) == true)
{
AllBullets.erase(AllBullets.begin()+n);
}

            }



  Game.clear(Color(255,255,255));

            for(unsigned int n=0; n<AllBullets.size(); n++)
            {
                Game.draw(AllBullets.at(n));
            }

            Game.draw(*player);
            Game.display();

            /* float currentTime = fps_clock.restart().asSeconds();
            int fps = static_cast<int> ( 1.f / currentTime);
            string fps_string = NumberToString(fps);
             Game.setTitle("Ultra Shooter 0.2 FPS : "+fps_string);*/


        }
        delete player;
    }

    return 0;
}

bool Engine::CheckIfOutOfWindow(sf::Vector2f Position)
{
    sf::Vector2u window_size=Game.getSize();
    if(     static_cast<unsigned int>(Position.x) < 0             ||
            static_cast<unsigned int>(Position.x) > window_size.x ||
            static_cast<unsigned int>(Position.y) < 0             ||
            static_cast<unsigned int>(Position.y) > window_size.y)
    {

        return true;

    }
    else
    {

        return false;

    }
}


Engine::~Engine()
{
    Game.close();
}


 

Cordialement,

constructeur06

Pages: [1]