Dzień dobry!
Zmagam się z pewnie banalnymi błędami a natomiast błędami takimi:
D:\sfml\tut\skakanie 2\main.cpp|35|undefined reference to `gracz::gora()'|
D:\sfml\tut\skakanie 2\main.cpp|40|undefined reference to `gracz::dol()'|
D:\sfml\tut\skakanie 2\main.cpp|45|undefined reference to `gracz::lewo()'|
D:\sfml\tut\skakanie 2\main.cpp|50|undefined reference to `gracz::prawo()'|
Nie znalazłem nic na ten temat w googlu, a bardzo prosze o pomoc. Ps. jak by ktoś chciał może ulepszyć mój kod chodzenia itd. :)
Oto kod:
Main.cpp
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include "gracz.h"
int main()
{
sf::Texture blokk, ludz;
blokk.loadFromFile("obiekt.png");
ludz.loadFromFile("ludzik.png");
sf::Sprite ludzik, blok;
ludzik.setTexture(ludz);
blok.setTexture(blokk);
sf::RenderWindow oknoAplikacji( sf::VideoMode( 640, 480, 32 ), "platformowka - test 2" );
gracz player;
while( oknoAplikacji.isOpen() )
{
sf::Event zdarzenie;
while( oknoAplikacji.pollEvent( zdarzenie ) )
{
if( zdarzenie.type == sf::Event::Closed )
oknoAplikacji.close();
if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Escape )
oknoAplikacji.close();
if( zdarzenie.type == sf::Event::MouseButtonPressed && zdarzenie.mouseButton.button == sf::Mouse::Middle )
oknoAplikacji.close();
if(zdarzenie.type==sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Up)
{
player.gora();
}
if(zdarzenie.type==sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Down)
{
player.dol();
}
if(zdarzenie.type==sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Left)
{
player.lewo();
}
if(zdarzenie.type==sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Right)
{
player.prawo();
}
}
if(ludzik.getGlobalBounds().intersects(blok.getGlobalBounds()))
{
player.y=player.y-1;
}
else
{
player.y=player.y+1;
}
oknoAplikacji.clear(sf::Color::White);
ludzik.setPosition(player.x, player.y);
blok.setPosition(100, 300);
oknoAplikacji.draw(ludzik);
oknoAplikacji.draw(blok);
oknoAplikacji.display();
}//end
return 0;
}
gracz.h
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
class gracz
{
public:
int x=100, y=0; //wzdloz = x
//ruszanie sie
void lewo();
void gora();
void dol();
void prawo();
void spadanie();
};
gracz.cpp
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include "gracz.h"
void gracz::gora()
{
y=y-1;
}
void gracz::dol()
{
y=y+1;
}
void gracz::prawo()
{
x=x+1;
}
void gracz::lewo()
{
x=x-1;
}
void gracz::spadanie()
{
if(ludzik.getGlobalBounds().intersects(blok.getGlobalBounds()))
{
y=y-1;
}
}