Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Kontener obiektów, SFML

Ostatnio zmodyfikowano 2014-01-29 15:18
Autor Wiadomość
Vesper7
Temat założony przez niniejszego użytkownika
Kontener obiektów, SFML
» 2014-01-28 19:01:34
Więc tak, miałem taki zamysł aby program automatycznie ładował mi obrazki w folderze, użyłem do tego kontenera i wyszło dość nie fajnie
efekt jest taki, że na kolejnych elementach kontenera sprite pojawia się zniekształcony, pomniejszony bądź nie ma go wcale, kolejnym problemem jest to że gdy wczytam kilka sprintów to zamiast powiedzmy 3 pojawia się tylko jeden
oto on

C/C++
std::vector < sf::Texture > texture;
std::vector < sf::Sprite > sprite;

for( int i = 0; i < 5; i++ )
{
    texture.push_back( sf::Texture );
    nazwa = "GFX/";
    nazwa +=( i + '0' );
    nazwa += ".png";
    texture[ i ].loadFromFile( nazwa.c_str() );
    sprite.push_back( sf::Sprite );
    sprite[ i ].setTexture( texture[ i ] );
}
P-103448
RazzorFlame
» 2014-01-28 19:04:11
Zacznijmy od tego że ten kod nie ma prawa się skompilować a co dopiero działać. Podaj kompletny kod bo widać, że coś kręcisz.
P-103450
Vesper7
Temat założony przez niniejszego użytkownika
» 2014-01-28 19:08:13
myślałem że podanie samej funkcji wystarczy no ale dobra
C/C++
#include <SFML/Graphics.hpp>
#include <vector>

int main()
{
    sf::RenderWindow window( sf::VideoMode( 1600, 1200 ), "GFX" );
    while( window.isOpen() )
    {
        sf::Event event;
        while( window.pollEvent( event ) )
        {
            if( event.type == sf::Event::Closed )
                 window.close();
           
            if( event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Return )
                 window.close();
           
        } //while
        window.clear( sf::Color::White );
       
        std::vector < sf::Texture > texture;
        std::vector < sf::Sprite > sprite;
        for( int i = 0; i < 5; i++ )
        {
            texture.push_back( sf::Texture );
            nazwa = "GFX/";
            nazwa +=( i + '0' );
            nazwa += ".png";
            texture[ i ].loadFromFile( nazwa.c_str() );
            sprite.push_back( sf::Sprite );
            sprite[ i ].setTexture( texture[ i ] );
        }
        window.draw( sprite[ 0 ] ); //przykładowo
        window.display();
    } //while
    return 0;
}
[/i][/i]
P-103451
RazzorFlame
» 2014-01-28 19:12:19
Człowieku, jeszcze raz ten post napisz a kod wklej między
[cpp]kod[/cpp]
 bo coś co podałeś wyżej jest źle interpretowane (jako tekst) i kod
[ i ]
 jest oznaczony jako kursywa...[/code]
P-103453
MrPoxipol
» 2014-01-28 19:16:10
Co klatkę ładujesz tekstury..
P-103455
Vesper7
Temat założony przez niniejszego użytkownika
» 2014-01-28 19:18:27
na razie chodzi tylko o to żeby automatycznie ładował teksturę którą wybiorę w programie
P-103456
RazzorFlame
» 2014-01-28 19:20:14
Nie ładuj tekstur w pętli... załaduj je przed nią.
P-103457
Vesper7
Temat założony przez niniejszego użytkownika
» 2014-01-28 19:23:48
ta zmiana nie daje efektu niestety
chodzi mi bardziej o problem który dzieje się w pętli i dotyczy przekazywania obiektów do kolejnych elementów konteneru
trochę się pośpieszyłem wtedy z tym wrzucaniem programu całego bo go miałem trochę na klasy podzielone teraz powinno wszystko grać i widać problem tylko z tą częścią kontenerową
C/C++
#include <SFML/Graphics.hpp>
#include <vector>
#include <string>


int main()
{
    sf::RenderWindow window( sf::VideoMode( 1600, 1200 ), "GFX" );
   
    std::vector < sf::Sprite > sprite;
    std::vector < sf::Texture > texture;
    std::string nazwa;
   
    for( int i = 0; i < 5; i++ )
    {
        texture.push_back( sf::Texture );
        nazwa = "GFX/";
        nazwa +=( i + '0' );
        nazwa += ".png";
        texture[ i ].loadFromFile( nazwa.c_str() );
        sprite.push_back( sf::Sprite );
        sprite[ i ].setTexture( texture[ i ] );
    }
   
    while( window.isOpen() )
    {
        sf::Event event;
        while( window.pollEvent( event ) )
        {
            if( event.type == sf::Event::Closed )
                 window.close();
           
            if( event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Return )
                 window.close();
           
        } //while
        window.clear( sf::Color::White );
        window.draw( sprite[ 0 ] ); //przykładowo
        window.display();
    } //while
    return 0;
}
P-103458
« 1 » 2 3
  Strona 1 z 3 Następna strona