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

[sfml] Nie wyświetlają się kafelki mapy

Ostatnio zmodyfikowano 2014-08-24 19:10
Autor Wiadomość
Acarin1995
Temat założony przez niniejszego użytkownika
[sfml] Nie wyświetlają się kafelki mapy
» 2014-08-24 14:08:36
Witam chciałem zrobić mape kafelkową niby ładnie pięknie się kompiluje lecz nie wyświetla elementów graficznych ( kafelek ) kod poniżej:
C/C++
#include <SFML/Graphics.hpp>
#include "Mapa.hpp"
int main()
{
    int klatka( 0 ), kafelek;
    int szerokoscKafla( 16 ); // 16 pixeli
    int dlugoscKafla( 16 ); //16pixeli
    sf::RenderWindow App( sf::VideoMode( 800, 600, 32 ), "Okienko" );
    sf::Texture elementMapy;
    elementMapy.loadFromFile( "Mapa.png" );
    sf::Sprite kafelekMapy;
    kafelekMapy.setTexture( elementMapy );
    while( App.isOpen() )
    {
       
        sf::Event zdarzenie;
        while( App.pollEvent( zdarzenie ) )
        {
            if( zdarzenie.type == sf::Event::Closed )
                 App.close();
           
        }
        App.clear( sf::Color::White );
        for( int y = 0; y < 10; y++ )
        {
            for( int x = 0; x < 10; x++ )
            {
                if( mapa[ x ][ y ] == 0 )
                {
                    kafelek = 0;
                    kafelekMapy.setTextureRect( sf::IntRect( kafelek * 16, 0, 16, 16 ) );
                    int pozycjax, pozycjay;
                    pozycjay = y * 16;
                    pozycjax = x * 16;
                    kafelekMapy.setPosition( pozycjax, pozycjay );
                }
                if( mapa[ x ][ y ] == 1 )
                {
                    kafelek = 1;
                    kafelekMapy.setTextureRect( sf::IntRect( kafelek * 16, 0, 16, 16 ) );
                    int pozycjax, pozycjay;
                    pozycjay = y * 16;
                    pozycjax = x * 16;
                    kafelekMapy.setPosition( pozycjax, pozycjay );
                }
                if( mapa[ x ][ y ] == 2 )
                {
                    kafelek = 2;
                    kafelekMapy.setTextureRect( sf::IntRect( kafelek * 16, 0, 16, 16 ) );
                    int pozycjax, pozycjay;
                    pozycjay = y * 16;
                    pozycjax = x * 16;
                    kafelekMapy.setPosition( pozycjax, pozycjay );
                }
                if( mapa[ x ][ y ] == 3 )
                {
                    kafelek = 3;
                    kafelekMapy.setTextureRect( sf::IntRect( kafelek * 16, 0, 16, 16 ) );
                    int pozycjax, pozycjay;
                    pozycjay = y * 16;
                    pozycjax = x * 16;
                    kafelekMapy.setPosition( pozycjax, pozycjay );
                }
            }
        }
        App.draw( kafelekMapy );
        App.display();
    }
    return EXIT_SUCCESS;
}
I mam jeszcze jedno pytanie jak zrobić by przy dotarciu do krańca sceny pokazywał się ciąg dalszy mapy, i jaki zrobić warunek by nie dało się przejść poza mape. Za pomoc dziękuje.
P-115983
pekfos
» 2014-08-24 15:04:42
Dobra tekstura? Właściwe koordynaty?

I mam jeszcze jedno pytanie jak zrobić by przy dotarciu do krańca sceny pokazywał się ciąg dalszy mapy,
Google - scrolling mapy.
P-115984
Acarin1995
Temat założony przez niniejszego użytkownika
» 2014-08-24 15:39:17
Tak tekstura jest dobra wyświetla się jedynie jeden obrazek trawa prawie na środku a reszta wogóle... Co jest źle w kodzie? Kafelek ma 16x16 pix.
P-115986
Glazus
» 2014-08-24 17:06:34
Po każdym
kafelekMapy.setPosition( pozycjax, pozycjay );
 powinieneś dodać
App.draw( kafelekMapy );
. W tym momencie kilkukrotnie zmieniasz pozycję kafelka, ale rysujesz go tylko raz.  
P-115989
MrPoxipol
» 2014-08-24 18:59:54
Po każdym
kafelekMapy.setPosition( pozycjax, pozycjay );
 powinieneś dodać
App.draw( kafelekMapy );
. W tym momencie kilkukrotnie zmieniasz pozycję kafelka, ale rysujesz go tylko raz.
Tak się nie robi. Jeden obrót pętli - jedna klatka.
P-116005
Acarin1995
Temat założony przez niniejszego użytkownika
» 2014-08-24 19:08:21
Banalna sprawa zappomniałem dać draw w petli... << removed - niezwiązane z tematem >>
P-116006
oputyk
» 2014-08-24 19:10:11
1 problem = 1 temat

PS: Wystarczy poszukać tutaj http://www.sfml-dev.org​/tutorials/2.1/
P-116007
« 1 »
  Strona 1 z 1