Kolizje już rozwiązane... Piszę takową grę aby poćwiczyć programowanie obiektowe, natknąłem się na kolejny problem na ekranie nic się nie wyświetla :/ kod
#include <SFML/Graphics.hpp>
using namespace std;
using namespace sf;
int mapa[ 8 ][ 8 ] =
{
{ 0, 1, 1, 1, 1, 1, 1, 0 },
{ 2, 5, 5, 5, 5, 5, 5, 4 },
{ 2, 5, 5, 5, 5, 5, 5, 4 },
{ 2, 5, 5, 5, 5, 5, 5, 4 },
{ 2, 5, 5, 5, 5, 5, 5, 4 },
{ 2, 5, 5, 5, 5, 5, 5, 4 },
{ 2, 5, 5, 5, 5, 5, 5, 4 },
{ 0, 3, 3, 3, 3, 3, 3, 0 }
};
class players
{
protected:
Texture playerss;
Sprite player;
int x_p, y_p;
public:
players::players()
{
playerss.loadFromFile( "C:\\Users\\Maciek\\Documents\\Visual Studio 2010\\Projects\\sfml\\Debug\\graph\\players.png" );
player.setTexture( playerss );
player.setOrigin( 16, 16 );
player.setPosition( 80, 80 );
}
public:
void cords_p()
{
x_p = player.getPosition().x;
y_p = player.getPosition().y;
}
~players() { };
};
class enemy
{
protected:
Texture spiders;
Sprite spider;
int x_e, y_e;
public:
enemy::enemy()
{
spiders.loadFromFile( "C:\\Users\\Maciek\\Documents\\Visual Studio 2010\\Projects\\sfml\\Debug\\graph\\xxx.png" );
spider.setTexture( spiders );
spider.setOrigin( 16, 16 );
spider.setPosition( 48, 48 );
}
public:
void cords_e()
{
x_e = spider.getPosition().x;
y_e = spider.getPosition().y;
}
~enemy() { };
};
class maps
: players
, enemy
{
private:
Texture water, water_grass, gras;
Sprite spr0, spr1, spr2R, spr2D, spr2L, spr2U;
RenderWindow oknoAplikacji;
public:
void rysuj()
{
water.loadFromFile( "C:\\Users\\Maciek\\Documents\\Visual Studio 2010\\Projects\\sfml\\Debug\\graph\\water.png" );
spr0.setTexture( water );
gras.loadFromFile( "C:\\Users\\Maciek\\Documents\\Visual Studio 2010\\Projects\\sfml\\Debug\\graph\\gras.png" );
spr1.setTexture( gras );
water_grass.loadFromFile( "C:\\Users\\Maciek\\Documents\\Visual Studio 2010\\Projects\\sfml\\Debug\\graph\\water_grassU.png" );
spr2U.setTexture( water_grass );
spr2R.setTexture( water_grass );
spr2R.setOrigin( 32, 0 );
spr2R.setRotation( 270 );
spr2D.setTexture( water_grass );
spr2D.setOrigin( 32, 32 );
spr2D.setRotation( 180 );
spr2L.setTexture( water_grass );
spr2L.setOrigin( 0, 32 );
spr2L.setRotation( 90 );
for( int i = 0; i < 8; i++ )
{
for( int j = 0; j < 8; j++ )
{
if( mapa[ j ][ i ] == 0 )
{
spr0.setPosition( i * 32, j * 32 );
oknoAplikacji.draw( spr0 );
}
if( mapa[ j ][ i ] == 1 )
{
spr2U.setPosition( i * 32, j * 32 );
oknoAplikacji.draw( spr2U );
}
if( mapa[ j ][ i ] == 2 )
{
spr2R.setPosition( i * 32, j * 32 );
oknoAplikacji.draw( spr2R );
}
if( mapa[ j ][ i ] == 3 )
{
spr2D.setPosition( i * 32, j * 32 );
oknoAplikacji.draw( spr2D );
}
if( mapa[ j ][ i ] == 4 )
{
spr2L.setPosition( i * 32, j * 32 );
oknoAplikacji.draw( spr2L );
}
if( mapa[ j ][ i ] == 5 )
{
spr1.setPosition( i * 32, j * 32 );
oknoAplikacji.draw( spr1 );
}
}
}
}
public:
void rysuj_gracz()
{
oknoAplikacji.draw( player );
}
public:
void rysuj_spider()
{
oknoAplikacji.draw( spider );
}
};
int colision( int lvll, int xx, int yy, bool gg, bool dd, bool ll, bool rr )
{
bool gog, god, gol, gor;
gog = false; god = false;
gol = false; gor = false;
if( gg == true )
{
yy = yy - 32;
if( mapa[ xx / 32 ][ yy / 32 ] == 0 )
{
return gog = false;
}
else
{
return gog = true;
}
}
if( dd == true )
{
yy = yy + 32;
if( mapa[ xx / 32 ][ yy / 32 ] == 0 )
{
return god = false;
}
else
{
return god = true;
}
}
if( rr == true )
{
xx = xx + 32;
if( mapa[ xx / 32 ][ yy / 32 ] == 0 )
{
return gor = false;
}
else
{
return gor = true;
}
}
if( ll == true )
{
xx = xx - 32;
if( mapa[ xx / 32 ][ yy / 32 ] == 0 )
{
return gol = false;
}
else
{
return gol = true;
}
}
}
int main()
{
RenderWindow oknoAplikacji( VideoMode( 256, 256, 32 ), "xxx" );
bool g, d, l, r;
g = false;
r = false;
d = false;
l = false;
Event zdarzenie;
while( oknoAplikacji.isOpen() )
{
while( oknoAplikacji.pollEvent( zdarzenie ) )
{
if( zdarzenie.type == Event::Closed )
{
oknoAplikacji.close();
}
if( zdarzenie.type == Event::KeyPressed && zdarzenie.key.code == Keyboard::Escape )
{
oknoAplikacji.close();
}
if( zdarzenie.type == Event::KeyPressed && zdarzenie.key.code == Keyboard::Up )
{
g = true;
}
if( zdarzenie.type == Event::KeyPressed && zdarzenie.key.code == Keyboard::Down )
{
d = true;
}
if( zdarzenie.type == Event::KeyPressed && zdarzenie.key.code == Keyboard::Left )
{
l = true;
}
if( zdarzenie.type == Event::KeyPressed && zdarzenie.key.code == Keyboard::Right )
{
r = true;
}
}
oknoAplikacji.clear( Color::Black );
maps engine;
engine.rysuj();
oknoAplikacji.display();
}
return 0;
}