Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Evourak

unregistriert

1

26.09.2014, 16:45

[Sfml][C++] Spieler wird nicht angezeigt

Hallo zusammen!
Ich habe mich gerade registriert bin aber schon seit 1 1/2 Monaten "stiller Leser" im Forum.
Ich programmiere momentan mein erstes "größeres" Spiel mithilfe der SFML.
Leider bin ich nacht nichtmal 20 minuten schon auf den ersten Fehler gestoßen. Ich zerbreche mir schon seit vorgesern den Kopf warum es nicht funktioniert:
Das Spiel hat eine Tilemap diese wird auch wie gewollt angezeigt. Ich will das der Spieler über die Tiles gezeichnet wird.
Aber der Spieler wird nicht angezeigt.

Hier der Code: (nur die main.cpp und die player.cpp, Header und die Tilemap werden ja nicht gebraucht. Falls doch sagt es mir bitte):

main.cpp:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <SFML/Graphics.hpp>
#include "map.hpp"
#include "player.hpp"

int main()
{
    sf::RenderWindow window(sf::VideoMode(800, 600), "Plattformer");

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }

        map mainMap;
        mainMap.drawMap(window, "block1.png");

        player Spieler("player.png");
        Spieler.positionSet(1, 1);
        Spieler.render(window);

        window.display();

    }

    return 0;
}


player.cpp :

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <SFML\Graphics.hpp>
#include "player.hpp"


player::player(sf::String tex)
{
    sf::Texture Tplayer;
    Tplayer.loadFromFile(tex);

    sf::Sprite Splayer;
    Splayer.setTexture(Tplayer);
}
void player::positionSet(int xPos, int yPos)
{
    //Tiles sind 50 x 50 pixel groß. So muss ich nur die Koordinaten in der Tilemap angeben. Player wird über Tiles gezeichnet.
    xPos = xPos*50;
    yPos = yPos*50;
    Splayer.setPosition(xPos, yPos);
}
void player::render(sf::RenderWindow &Window)
{
    Window.draw(Splayer);
}

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Evourak« (28.09.2014, 16:44)


2

26.09.2014, 17:01

Im konstruktor vom spieler legst du eine textur und ein sprite an, das du aber wieder verwirfst. Du solltest beides in der player-klasse speichern.

Evourak

unregistriert

3

28.09.2014, 16:43

Vielen Dank!
Es funktioniert alles!

Werbeanzeige