hincu |
» 2012-01-18 20:20:29 dodales wgl klase Collision do projektu? |
|
tomek5321 Temat założony przez niniejszego użytkownika |
» 2012-01-18 20:25:44 Jak dodałem tam const czyli prawie na początku programu: const sf::Sprite bohater, wrog; wyskakuje cała masa błędów typu: C:\Users\Dominik\Desktop\Moje\C++\C++\Gra\gra.cpp|24|error: passing 'const sf::Sprite' as 'this' argument of 'void sf::Drawable::SetPosition(float, float)' discards qualifiers|
a cała reszta: #include <SFML/Window.hpp> #include <SFML/Graphics.hpp> #include <SFML/Audio.hpp> #include "Collision.h"
int main() { int los; srand( time( NULL ) ); float kat; kat = 0; sf::RenderWindow oknoAplikacji( sf::VideoMode( 800, 600, 32 ), "Gra" ); sf::Image obohater, owrog, otlo; sf::Sprite tlo; const sf::Sprite bohater, wrog; obohater.LoadFromFile( "Obiekty/bohater.png" ); owrog.LoadFromFile( "Obiekty/bohater.png" ); otlo.LoadFromFile( "Obiekty/tlo.jpg" ); tlo.SetImage( otlo ); bohater.SetPosition( 0, 0 ); int b_x, b_y, w_y, w_x; b_x = 680; b_y = 480; w_y = 0; w_x = 0; bohater.SetImage( obohater ); bohater.SetPosition( b_x, b_y ); bohater.SetScale( 0.2, 0.2 ); wrog.SetImage( owrog ); wrog.SetPosition( w_x, w_y ); wrog.SetScale( 0.2, 0.2 ); sf::Music dzik; while( oknoAplikacji.IsOpened() ) { sf::Event zdarzenie; while( oknoAplikacji.GetEvent( zdarzenie ) ) { if( zdarzenie.Type == sf::Event::Closed || zdarzenie.Type == sf::Event::KeyPressed && zdarzenie.Key.Code == sf::Key::Escape ) oknoAplikacji.Close(); if( zdarzenie.Key.Code == sf::Key::Space ) { los =( rand() % 3 ) + 1; if( los == 1 ) { if( !dzik.OpenFromFile( "Muzyka/dzik1.wav" ) ) return EXIT_FAILURE; } if( los == 2 ) { if( !dzik.OpenFromFile( "Muzyka/dzik2.wav" ) ) return EXIT_FAILURE; } if( los == 3 ) { if( !dzik.OpenFromFile( "Muzyka/dzik3.wav" ) ) return EXIT_FAILURE; } if( los == 4 ) { if( !dzik.OpenFromFile( "Muzyka/dzik4.wav" ) ) return EXIT_FAILURE; } dzik.Play(); } } const sf::Input & sterowanie = oknoAplikacji.GetInput(); if( sterowanie.IsKeyDown( sf::Key::Left ) ) if( b_x > 0 ) bohater.Move( - 0.2, 0 ); if( sterowanie.IsKeyDown( sf::Key::Right ) ) if( b_x < 690 ) bohater.Move( + 0.2, 0 ); if( sterowanie.IsKeyDown( sf::Key::Up ) ) if( b_y > 0 ) bohater.Move( 0, - 0.2 ); if( sterowanie.IsKeyDown( sf::Key::Down ) ) if( b_y < 490 ) bohater.Move( 0, + 0.2 ); if( sterowanie.IsKeyDown( sf::Key::A ) ) { wrog.Move( - 0.1, 0 ); } if( sterowanie.IsKeyDown( sf::Key::D ) ) { wrog.Move( + 0.1, 0 ); } if( sterowanie.IsKeyDown( sf::Key::W ) ) wrog.Move( 0, - 0.2 ); if( sterowanie.IsKeyDown( sf::Key::S ) ) { wrog.Move( 0, + 0.2 ); } Collision::PixelPerfectTest( bohater, wrog ); if( zdarzenie.Key.Code == sf::Key::F1 ) { sf::Image zrzutEkranu = oknoAplikacji.Capture(); zrzutEkranu.SaveToFile( "zrzut-ekranu.png" ); } oknoAplikacji.Clear( sf::Color( 7, 123, 4 ) ); oknoAplikacji.Draw( tlo ); oknoAplikacji.Draw( bohater ); oknoAplikacji.Draw( wrog ); oknoAplikacji.Display(); } return 0; }
|
|
pekfos |
» 2012-01-18 20:34:40 Wywal tam te const. stałych obiektów nie mógłbyś zmieniać. |
|
tomek5321 Temat założony przez niniejszego użytkownika |
» 2012-01-18 20:43:55 Skoro tak, to co mam zrobic? Cos w tym stylu? cwrog = wrog; cbohater = bohater; const sf::Sprite cbohater; const sf::Sprite cwrog; Collision::PixelPerfectTest( cbohater, cwrog );
|
|
pekfos |
» 2012-01-18 20:47:03 niee. zostaw const. wróć do tego co było wcześniej. |
|
tomek5321 Temat założony przez niniejszego użytkownika |
» 2012-01-18 20:50:50 aha, czyli wracam do punktu wyjscia ;) Hmmm... jakies sugestie? |
|
pekfos |
» 2012-01-18 20:51:59 Podaj log.. |
|
tomek5321 Temat założony przez niniejszego użytkownika |
» 2012-01-18 20:54:27 ||warning: auto-importing has been activated without --enable-auto-import specified on the command line.| C:\Users\Dominik\Desktop\Moje\C++\C++\Gra\gra.cpp|| undefined reference to `Collision::PixelPerfectTest(sf::Sprite const&, sf::Sprite const&, unsigned char)'| ||Info: resolving vtable for sf::Sprite by linking to __imp___ZTVN2sf6SpriteE | ||=== Build finished: 1 errors, 1 warnings ===|
|
|
1 2 3 « 4 » 5 6 |