snajperek130 Temat założony przez niniejszego użytkownika |
» 2016-03-01 16:31:53 okej, ale po zastosowaniu sie dalej nie dziala poprawnie. Predkosc liniowa ustawilem narazie na 5 Vector2f norm = mysz - spaceship.getPosition(); float rot = atan2( norm.y, norm.x ); float r = static_cast < float >( sqrt(( norm.x - spaceship.getPosition().x ) *( norm.x - spaceship.getPosition().x ) +( norm.y - spaceship.getPosition().y ) *( norm.y - spaceship.getPosition().y ) ) ); float predkoscKatowa = 5.0 / r; rot += predkoscKatowa; if( key == "A" ) { float xN = cos( rot * M_PI / 180.0 ) * r + norm.x; float yN = sin( rot * M_PI / 180.0 ) * r + norm.y; vx -= xN * 0.0001; vy += yN * 0.0001; }
|
|
Gibas11 |
» 2016-03-01 18:23:22 A co jest nie tak? EDIT: float rot = atan2( norm.y, norm.x ); Czy to nie zwraca Ci przypadkiem kąta w radianach? |
|
pekfos |
» 2016-03-01 19:10:24 float xN = cos( rot * M_PI / 180.0 ) * r + norm.x; float yN = sin( rot * M_PI / 180.0 ) * r + norm.y; vx -= xN * 0.0001; vy += yN * 0.0001; |
Ty w ogóle rozumiesz wzory, których używasz? |
|
snajperek130 Temat założony przez niniejszego użytkownika |
» 2016-03-01 23:20:38 Gibas11 tak, ale zmiana tego nic nie daje. Gdy myszka jest na polnocy od statku, to statek porusza sie w kierunku myszki, a pozniej mnie wiecje o 90 stopni w kierunku wshcodnim, gdy na poludniu to to samo, natomiast gdy myszka jest na wschod lub zachod, to statke sie oddala. Jeszcze jak po skosach to statek przybliza sie do osi x i nie przekracza jej, tylko oddala sie wzdloz niej.
Pekfos, uzywam wzorow podanych przez Gibas11, mnie wiecej je rozumie, jesli mozesz mnie nakierowac to prosilbym o pomoc, bo chce dobrze to zrozumiec by w przyszlosci juz nie prosic o pomoc w kazdym z ruchow :). |
|
snajperek130 Temat założony przez niniejszego użytkownika |
» 2016-03-02 00:00:00 czekaj pekfos, chodzi ci o to, ze ma byc: float xN = sin( rot * M_PI / 180.0 ) * r + norm.x; float yN = cos( rot * M_PI / 180.0 ) * r + norm.y;
? EDIT Dobra, jestesmy juz blisko xd, statek porusza sie wokol myszki, ale niestety dalej w coraz to wiekszej odleglosci Vector2f norm = mysz - spaceship.getPosition(); float rot = atan2( norm.y, norm.x ); float r = static_cast < float >( sqrt(( norm.x - spaceship.getPosition().x ) *( norm.x - spaceship.getPosition().x ) +( norm.y - spaceship.getPosition().y ) *( norm.y - spaceship.getPosition().y ) ) );
if( key == "A" ) { float predkoscKatowa = 0.05 / r; rot += predkoscKatowa; float xN = sin( rot ) * r + norm.x; float yN = cos( rot ) * r + norm.y; vx += xN * 0.0001; vy -= yN * 0.0001; }
|
|
snajperek130 Temat założony przez niniejszego użytkownika |
» 2016-03-02 21:17:14 Nie wiem, ale moze tu byc problem z tym vx -= xN * 0.0001; vy += yN * 0.0001;
Ja to tak rozumiem, ze obliczamy nowa pozycje xN i yN i nastepnie odpowiednio dodajemy/odejmujemy od vx/vy, a ale wartosci za za duze i zmniejszam je sobie 0.0001. Moze te 0.0001 zle zmienia odleglosci, ale nawet jesli tak to jak inaczej da sie to zrobic?... |
|
1 2 « 3 » |