Welcome, Guest. Please login or register. Did you miss your activation email?

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Kaev

Pages: [1]
1
SFML projects / Re: TGUI: a c++ GUI for SFML (with Form Builder)
« on: February 09, 2013, 09:50:26 pm »
Doesn't work for me.

Testing around now, when i found on anything, i'll tell you.

2
SFML projects / Re: TGUI: a c++ GUI for SFML (with Form Builder)
« on: February 09, 2013, 08:58:24 pm »
When i use sf::RenderWindow instead of tgui::Window, i can draw sf::Text.

// Main.cpp
tgui::Window Spiel(sf::VideoMode(640, 500, 32), "Spiel", sf::Style::Close);
...
        Spiel.globalFont.loadFromFile("Font/Seagram tfb.ttf");
...
        // Textbox works well in main.cpp
        tgui::TextBox* textbox = Spiel.add<tgui::TextBox>("textbox");
        textbox->load(150, 100, 12, "graphics/Black");
        textbox->setPosition(485, 320);
        textbox->changeColors(sf::Color(193, 177, 140), sf::Color::Black, sf::Color::Black, sf::Color::Transparent);
        textbox->setText("TEXT");

        // When i insert my Label here, it works also

...

Spiel.clear();
Spiel.drawGUI();
Spiel.display();

 

// Interface class
    Interface(tgui::Window &Spiel)
    {
        // Label Ebene doesn't work in class, but works in main.cpp
        // sf::Text doesn't work anymore in a class
        tgui::Label* Ebene = Spiel.add<tgui::Label>("label");
        Ebene->setText("Ebene 0");
        Ebene->setPosition(360, 25);
        Ebene->setTextColor(sf::Color::White);
        Ebene->setTextSize(12);
       }
 
 

3
SFML projects / Re: TGUI: a c++ GUI for SFML (with Form Builder)
« on: February 09, 2013, 08:41:53 pm »
Hello,

i'm using v0.6-dev and cant draw a label or sf::Text from a class.
When i put the code in my main.cpp, it works well.
Maybe a bug?

// Interface class
        Interface(tgui::Window &Spiel)
        {
                // Ebene
                tgui::Label* Ebene = Spiel.add<tgui::Label>("label");
                Ebene->setText("Ebene 0");
                Ebene->setPosition(360, 25);
                Ebene->setTextColor(sf::Color::White);
                Ebene->setTextSize(12);
       }
 

Also doesn't work when i create tgui::Label* Ebene at my attributes, doesn't work when i call Spiel.drawGUI() in my drawmethod.. it doesnt draw sf::Text also anymore.
Any help would be nice.

4
Graphics / Re: Cant draw Tilemap with Class
« on: October 22, 2012, 04:30:32 pm »
Thanks eXpl0it3r, everything works fine now.

@Laurent:
My indentation in VC++ is made with tabs, not spaces. After copy it into the codefunction, everything was messy so i had to clean it with spaces. That's why it looks so bad here.

Problem is fixed and thread can be closed now.
Thank you!

5
Graphics / Re: Cant draw Tilemap with Class
« on: October 22, 2012, 02:35:48 pm »
map1.txt is like:
3 3
0 2 1
2 0 1
 

main.cpp (copied important lines from mine):
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <SFML/System.hpp>
#include "map.cpp"

sf::RenderWindow window(sf::VideoMode(800, 608, 32), "Spiel", sf::Style::Close);
Spiel.setVerticalSyncEnabled(true);

Map map1;
map1.loadMap("map1.txt");

while (window.isOpen())
{
        sf::Event event;
        while (window.pollEvent(event))
        {
                        switch(event.type)
                        {
                        case sf::Event::Closed:
                                window.close();
                                break;
                        default:
                                break;
                        }
                }

          window.clear();
          map1.draw(window);
          window.display();
          }
}

return EXIT_SUCCESS;
}
 

map.cpp:
see above

EDIT:
You should fix the code-tag, everytime it ruins my indentation :P

6
Graphics / Re: Cant draw Tilemap with Class
« on: October 22, 2012, 02:17:02 pm »
#include <iostream>
#include <fstream>
#include <vector>
#include <SFML/Graphics.hpp>

using namespace std;

class Map
{
        public:
                int map_x, map_y;                       // width, height
                int map[100][100];                      // Maparray
                sf::Image image;                        // Image Tilemap
                sf::Texture textur;                     // Texture from Image Tilemap
                vector<sf::Sprite> tiles;               // Tilevector
                sf::RenderTexture rMap;         // Texture sMap
                sf::Sprite sMap;                        // Mapsprite

        public:

                Map()
                {
                        map_x = 0;
                        map_y = 0;  
                       
                        // Loading Texture
                        image.loadFromFile("graphics/boden.png");
                        if(!image.loadFromFile("graphics/boden.png"))
                       {
                              std::cout << "boden.png konnte nicht geladen werden!\n";
                       }
                       textur.loadFromImage(image);
                };

                ~Map(){};

                // Just tilesize
                static int getTile()
                {
                        return 32; // 1 Tile = 32 Pixel
                }

                void loadMap(const char *filename)
                {
                        // Load map from filename, first line width and height, other lines: id of tile
                        int loadCounterX = 0, loadCounterY = 0;
                        std::ifstream file(filename);
                        if(file.is_open())
                        {
                                file >> map_x >> map_y;
                                while(!file.eof())
                                {
                                        file >> map[loadCounterX][loadCounterY];
                                        loadCounterX++;
                                        if(loadCounterX >= map_x)
                                        {
                                                loadCounterX = 0;
                                                loadCounterY++;
                                        }
                                }
                        }
                       
                        // Create tiles
                        for(int x = 0; x < map_x; x++)
                        {
                                for(int y = 0;y < map_y; y++)
                                {
                                        int tileId = map[x][y];
                                        sf::Sprite tile;
                                        tile.setTexture(textur);
                                        tile.setTextureRect(sf::IntRect(map[y][x]*32, 0, 32, 32));
                                        tile.setPosition(x*32, y*32);
                                        tiles.push_back(tile);
                                }
                        }

                        // Draw tiles on rMap
                        for(int x = 0; x < tiles.size(); x++)
                        {
                                rMap.draw(tiles.at(x));

                        }

                        rMap.display();
                        sMap.setTexture(rMap.getTexture(), true);
                }

                // get Mapsprite
                const sf::Sprite& getSprite() const
                {
                        return sMap;

                }

                //draw Mapsprite on target
                void draw(sf::RenderTarget& target) const
                {
                        target.draw(sMap);
                }
};
 

Still everything black. :/
Indentation is changed a bit by the forum, sorry for this.

7
Graphics / Re: Cant draw Tilemap with Class
« on: October 22, 2012, 01:58:47 pm »
I though I knew that problem from somewhere (spieleprogrammierer)... ;D

The problem I think lies in the call sMap.setTexture(rMap.getTexture());, because you set a new texture but you don't change the size of the texture rectangle, so you actually don't cut out anything from the render texture. (I think Schorsch already tried to point you in that direction).
Try changing it to: sMap.setTexture(rMap.getTexture(), true);
Also you shouldn't return a copy of the sprite when calling drawMap() but instead use a const reference. ;)

:P

sMap.setTexture(rMap.getTexture(), true);
Still everything black. :/

const sf::Sprite sMap
Error at
sMap.setTexture(rMap.getTexture(), true);
Error: The object has type qualifiers that are not compatible with the member function
(German error: Error: Das Objekt weist Typqualifizierer auf, die nicht mit der Memberfunktion kompatibel sind)


8
Graphics / Cant draw Tilemap with Class
« on: October 22, 2012, 01:11:52 pm »
Hello!

First: Sry for my bad english  :P
I wrote a class to load a map from my map1.txt.
Every value in the maparray is correct.
But i cant see anything in my window except my playercharacter and a black screen behind him, not one single tile.

#include <iostream>
#include <fstream>
#include <vector>
#include <SFML/Graphics.hpp>

using namespace std;

class Map
{
        public:
                int map_x, map_y;
                static int tile;
                int map[100][100];
                sf::Image image;
                sf::Texture textur;  
                vector<sf::Sprite> tiles;
                sf::RenderTexture rMap;
                sf::Sprite sMap;

        public:

                Map()
                {
                        map_x = 0;
                        map_y = 0;  
                       
            image.loadFromFile("graphics/boden.png");
            if(!image.loadFromFile("graphics/boden.png"))
            {
                std::cout << "boden.png konnte nicht geladen werden!\n";
            }
            textur.loadFromImage(image);
                };

                ~Map(){};

                void loadMap(const char *filename)
                {
                        int loadCounterX = 0, loadCounterY = 0;
                        std::ifstream file(filename);
                        if(file.is_open())
                        {
                                file >> map_x >> map_y;
                                while(!file.eof())
                                {
                                        file >> map[loadCounterX][loadCounterY];
                                        loadCounterX++;
                                        if(loadCounterX >= map_x)
                                        {
                                                loadCounterX = 0;
                                                loadCounterY++;
                                        }
                                }
                        }
                       
                        for(int x = 0; x < map_x; x++)
                        {
                                for(int y = 0;y < map_y; y++)
                                {
                                        int tileId = map[x][y];
                                        sf::Sprite tile;
                                        tile.setTexture(textur);
                                        tile.setTextureRect(sf::IntRect(map[y][x]*32, 0, 32, 32));
                                        tile.setPosition(x*32, y*32);
                                        tiles.push_back(tile);
                                }
                        }

                        for(int x = 0; x < tiles.size(); x++)
                        {
                                rMap.draw(tiles.at(x));
                                cout << "x";

                        }
                }

                sf::Sprite drawMap()
                {
                        rMap.display();

                        sMap.setTexture(rMap.getTexture());
                        return sMap;

                }
};
 

first i called this out of the mainloop:
Map map1;
map1.loadMap("map1.txt");
 

And in my mainloop i call:
Spiel.draw(map1.drawMap());
 

Hope you can help me.

Greetings!

Pages: [1]