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);
}
|