Programuje obiektowo prostą grę przy użyciu sfml -a... I mam taki problem:
W int main potrzebuje wartości z konstruktora klasy Gamer < gracza >
za pośrednictwem klasy Maps, dokładnie chodzi o to że:
Clasa Gamer:
class Gamer
{
protected:
Sprite player;
private:
Texture players;
double x_p, y_p;
public:
Gamer()
{
players.loadFromFile( "C:\\Users\\Maciek\\Documents\\Visual Studio 2010\\Projects\\sfml\\Debug\\graph\\players.png" );
player.setTexture(players);
player.setOrigin(16, 16);
**x_p = player.getPosition().x;
y_p = player.getPosition().y;**
}
~Gamer() {}
// reszta klasy...
classa Maps (rysuje mapy ładuje grafikę i takie tam ( interesują nas kolizje)):
**int colision(int lvll, int xx, int yy, int goo)** // i tu wszystko jest ok
{
bool go = false;
int fields;
if (goo==1)
{
fields = mapa[lvll][xx/32][(yy/32)-1];
int * a = find( wals, wals + 10, fields );
if(a == wals + 10 )
{
return go = true;
}
}
if (goo==2)
{
fields = mapa[lvll][xx/32][(yy/32)+1];
int * a = find( wals, wals + 10, fields );
if(a == wals + 10 )
{
return go = true;
}
}
if(goo=4)
{
fields = mapa[lvll][(xx/32)+1][yy/32];
int * a = find( wals, wals + 10, fields );
if(a == wals + 10)
{
return go = true;
}
}
if(goo==3)
{
fields = mapa[lvll][(xx/32)-1][yy/32];
int * a = find( wals, wals + 10, fields );
if(a == wals + 10 )
{
return go = true;
}
}
}
W int main mam chciałbym użyć funkcji kolizje parametrem z konstruktora Gamer <x_p zamiast xx, y_p zamiast yy >
Napisałem to tak:
if(Keyboard::isKeyPressed(Keyboard::Up)) // ruch odpowiedzialna za ruch postaci zmieniają się tylko parametry w zależności od strony
{
**if(maps.colision(lvl, x_p, y_p, go = 1)**
{
gamer.ruch(0,-32 * KrokCzasowy.asSeconds() * speed,4);
}
}
Komunikat o błędzie nie zdeklarowano x_p, y_p. I oto jest problem, prosił bym o pomoc i wytłumaczenie w programowaniu obiektowym jestem nowy :v