Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Poruszanie

Ostatnio zmodyfikowano 2016-03-02 21:17
Autor Wiadomość
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
C/C++
Vector2f norm = mysz - spaceship.getPosition(); //Counting the vector between the mouse and sprite
float rot = atan2( norm.y, norm.x ); // counting the rotation (angle)
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 ) ) ); // promiec od myszki do statku
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;
}
P-145452
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?
P-145459
pekfos
» 2016-03-01 19:10:24
C/C++
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?
P-145463
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 :).
P-145474
snajperek130
Temat założony przez niniejszego użytkownika
» 2016-03-02 00:00:00
czekaj pekfos, chodzi ci o to, ze ma byc:
C/C++
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
C/C++
Vector2f norm = mysz - spaceship.getPosition(); //Counting the vector between the mouse and sprite
float rot = atan2( norm.y, norm.x ); // counting the rotation
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 ) ) ); // promiec od myszki do statku

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;
}
P-145475
snajperek130
Temat założony przez niniejszego użytkownika
» 2016-03-02 21:17:14
Nie wiem, ale moze tu byc problem z tym
C/C++
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?...
P-145500
1 2 « 3 »
Poprzednia strona Strona 3 z 3