Darono Temat założony przez niniejszego użytkownika |
Dwa problemy - Obrót koła i wystrzał pocisków [ SFML 2.1 ] » 2013-12-27 00:58:57 Witam. Otóż stworzyłem koło - sf::CircleShape, oraz lufe sf::Sprite. Leżą one obok siebie i pierwszy problem polega na tym że gdy nasze koło obraca się o np. 69% to żeby lufa obracała się razem z nim. Drugi mój problem polega na tym, iż gdyby wieżyczka (koło i lufa) namierzyły gracza, to żeby wystrzelały do niego pociski. Nie chodzi mi tu o strzały w góre,dół,lewo,prawo, ew. na skos, tylko o strzał związany z kątem lufy. Sorka jeżeli nie wyrażam się jasno, ale trochę trudno jest mi to przedstawić. Mój aktualny kod wygląda tak EDIT: W kodzie jest orginX i Y, dlatego bo próbowałem zrobić setOrgin(), ale po użyciu tego lufa nawet nie pojawiała się na ekranie. int _tmain( int argc, _TCHAR * argv[] ) { sf::Event evente; sf::RenderWindow okno( sf::VideoMode( 500, 500, 32 ), " TURRET TEST " ); sf::Texture textturreta; textturreta.loadFromFile( "xxx" ); sf::CircleShape turret( 20.0, 100 ); turret.setTexture(( sf::Texture * ) & textturreta ); turret.setPosition( 240, 240 ); sf::Texture Lufatext; Lufatext.loadFromFile( "xxx" ); sf::Sprite lufa; lufa.setTexture( Lufatext ); int orginY = turret.getPosition().y + 20; int orginX = turret.getPosition().x + 20; lufa.setPosition( turret.getPosition().x + 18, turret.getPosition().y + 35 ); while( okno.isOpen() ) { while( okno.pollEvent( evente ) ) { } okno.display(); okno.clear(); okno.draw( turret ); okno.draw( lufa ); } return 0; }
Liczę na pomoc :) |
|
pekfos |
» 2013-12-27 11:07:36 |
|
Darono Temat założony przez niniejszego użytkownika |
» 2013-12-27 11:26:04 Dobra z tym strzelaniem to raczej znajdę coś na forum, ale o tym linku co mi podałeś to dawno wiedziałem i czytałem ale problem leży w tym że kompletnie nie rozumiem jak to działa. Bo jeżeli domyślnie setOrigin() ustawiony jest na 0,0 ,a ja ustawie to na 20,20 ,to logicznie myśląc ustawienie wtedy sprit'a na 1,1 ustawi mi go patrząc na domyślne ustawienie na pozycje 21,21. Może mi ktoś (najlepiej na obrazku) wytłumaczyć ? |
|
pekfos |
» 2013-12-27 11:32:57 |
|
Darono Temat założony przez niniejszego użytkownika |
» 2013-12-27 11:46:28 co to znaczy że nie ustawiam ? ja teraz ustawiłem to tak : lufa.setOrigin( turret.getPosition().x + 20, turret.getPosition().y + 20 );
Czyli co to znaczy ? że środkiem jest środek koła - turreta, a jeżeli teraz dam lufie funkcje rotate() to będzie obracać się wookół koła ? Co w takim razie z setPosition(), jak wtedy działa ta funkcja ? |
|
pekfos |
» 2013-12-27 13:05:42 |
|
« 1 » |