aaadam Temat założony przez niniejszego użytkownika |
» 2013-06-29 14:47:27 no to więc tablica w której trzymam ruch robaczków jeszcze jest jedna wazniejsza na samym dole to wlasnie dla tej chce zrobic zeby ladnie sie obracaly obrazki char tab1[ 900 ] = { 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0 , 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0 , 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 2, 0, 0 }; to jest pentla która odpowiada za poruszanie oczywiście tworze sobie wektor tych robakow void Logika() { direction = tab1; if( i < 900 ) { if( direction[ i ] == 1 ) x--; else if( direction[ i ] == 0 ) y++; else if( direction[ i ] == 3 ) y--; else if( direction[ i ] == 2 ) x++; i++; } if( x == 0 ) { x += 200; y = 0; } if( x >= 575 ) { x -= 200; y = 0; } if( y == 600 ) y = 0; if( i >= 900 ) i = 0; } a to jest funkcja która odpowiada za wyświetlanie zmiana obrazka następuje co 0.5 sekundy jak się nie mylę i odpowiednio gdy hp robaka jest 1 lub2oraz 3 for( itR2 = Robaki2.begin(); itR2 != Robaki2.end(); itR2++ ) { itR2->Logika(); if( zmianaObrazka ) { if( itR2->gethp() == 2 ) al_draw_bitmap_region( robak2, 0, 0, 20, 20, itR2->getX(), itR2->getY(), NULL ); else if( itR2->gethp() == 1 ) al_draw_bitmap_region( robak3, 20, 0, 20, 20, itR2->getX(), itR2->getY(), NULL ); else al_draw_bitmap_region( robak3, 40, 0, 20, 20, itR2->getX(), itR2->getY(), NULL ); } else { if( itR2->gethp() == 2 ) al_draw_bitmap_region( robak3, 0, 0, 20, 20, itR2->getX(), itR2->getY(), NULL ); else if( itR2->gethp() == 1 ) al_draw_bitmap_region( robak2, 20, 0, 20, 20, itR2->getX(), itR2->getY(), NULL ); else al_draw_bitmap_region( robak2, 40, 0, 20, 20, itR2->getX(), itR2->getY(), NULL ); } } klasa robak: class Robak { private: float x, y, ex, ey, t, hp; public: int sourceX; static bool zmianaObrazka; static bool strzal; static int randR, randR2, randR3; Robak( int x, int y, int i, int i2, int ex, int ey, int HP ); Robak( void ); int getX() { return x; } int getY() { return y; } int geteY() { return ey; } int geteX() { return ex; } int gethp() { return hp; } int getRand() { return randR; } void addX( int xx ) { x += xx; } void addY( int yy ) { y += yy; } void addHp( int HP ) { hp += HP; } void iniRand( int yy ) { randR = yy; } void poruszanie(); void strzelanie(); char * direction, * direction2, * direction3, * direction4; int i, i2, i3; void Logika() { direction = tab1; if( i < 900 ) { if( direction[ i ] == 1 ) x--; else if( direction[ i ] == 0 ) y++; else if( direction[ i ] == 3 ) y--; else if( direction[ i ] == 2 ) x++; i++; } if( x == 0 ) { x += 200; y = 0; } if( x >= 575 ) { x -= 200; y = 0; } if( y == 600 ) y = 0; if( i >= 900 ) i = 0; } void lewoprawo() { direction2 = tab2; if( i2 < 362 ) if( direction2[ i2 ] == 1 ) x--; else if( direction2[ i2 ] == 2 ) x++; else; i2++; if( i2 >= 362 ) i2 = 0; } void Logika2() { direction3 = tab3; if( i < 900 ) { if( direction3[ i ] == 1 ) x = x - 1; else if( direction3[ i ] == 0 ) y += 1; else if( direction3[ i ] == 3 ) y -= 1; else if( direction3[ i ] == 2 ) x += 1; i++; } if( x == 0 ) { x += 200; y = 0; } if( x >= 575 ) { x -= 200; y = 0; } if( y == 600 ) y = 0; if( i >= 900 ) i = 0; if( x >= 575 ) { y = 0; x = 100; } } void Logika4() { direction4 = tab4; if( i < 900 ) { if( direction3[ i ] == 1 ) x = x - 1; else if( direction3[ i ] == 0 ) y += 1; else if( direction3[ i ] == 3 ) y -= 1; else if( direction3[ i ] == 2 ) x += 1; i++; } if( x == 0 ) { x += 200; y = 0; } if( x >= 575 ) { x -= 200; y = 0; } if( y == 600 ) y = 0; if( i >= 900 ) i = 0; if( x >= 575 ) { y = 0; x = 100; } } }; jeszcze jedna tablica poruszania char tab2[ 362 ] = { 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1 , 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 4, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 , 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2 , 4, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 };
|