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

Ruch obiektu po lini prostej z punktu do punktu

Ostatnio zmodyfikowano 2014-06-13 17:30
Autor Wiadomość
aaadam
Temat założony przez niniejszego użytkownika
Ruch obiektu po lini prostej z punktu do punktu
» 2014-06-11 20:55:08
Witam chcę zaimplementować ruch pocisków wystrzeliwane przez obiekty enemy, podczas strzelania obiekt enemy pobiera współrzędne mojego samolociku i w jego kierunku wystrzeliwuje te pociski, czytałem coś o sinusach i cosinusach ale nie mam pojęcia jak się do tego zabrać pomocy.
https://drive.google.com/file​/d/0B8TlCEZ3nnsTakRXTHZvSlZDTVU​/edit?usp=sharing.

P-111952
SeaMonster131
» 2014-06-11 21:30:22
C/C++
kat = atan2(..);

x += cos( kat );
y += sin( kat );
P-111954
aaadam
Temat założony przez niniejszego użytkownika
» 2014-06-11 21:33:22
dobra ogarnąłem już jak przemieszczać obiekty
C/C++
this->y += cos(( kat * 3.14 ) / 180.0f ) * predkosc;
this->x += sin(( kat * 3.14 ) / 180.0f ) * predkosc;

tylko jak obliczyć ten kąt ?
P-111955
pekfos
» 2014-06-11 22:07:20
tylko jak obliczyć ten kąt ?
C/C++
kat = atan2(..);
P-111957
aaadam
Temat założony przez niniejszego użytkownika
» 2014-06-11 22:48:19
to jest moja funkcja(wykonuje się około 30 razy na sekundę zależy od timera, potem obliczanie kąta będzie się wykonywać raz podczas tworzenia obiektu bullet) obliczam kąt dla y==100 i x ==500 i coś zawsze moje pociski przemieszczają się do dołu nawet gdy zmienię współrzędne na całkiem  inne
jeszcze jedno pytanie te obliczanie kąta odbywa się na zasadzie współrzędnych punktu A==(0,0) i B==(100,500)?
C/C++
/.
void bullet::move()
{
   
   
    this->destroyNormalState++;
    this->i_DestroyShottingAnimationState++;
    if( this->i_State == this->Normal )
    {
        kat = atan2( 100.0, 500.0 ); //tutaj wkleję pobieranie wspolrzednych obiektu mojego samolociku
       
        kat = kat *( 3.14159265358979323846 / 180.0 );
        //std::cout<<kat<<std::endl;
        this->y += cos(( kat * 3.14159265358979323846 ) / 180.0f ) * 5;
        this->x += sin(( kat * 3.14159265358979323846 ) / 180.0f ) * 5;
        //this->x+=5;
    }
   
}
P-111961
pekfos
» 2014-06-11 23:02:17
atan2() zwraca kąt w radianach, a nie stopniach. Dostałeś gotowca, czemu po prostu nie przepisałeś..?
C/C++
kat = atan2(..);

x += cos( kat );
y += sin( kat );
Widać tu jakieś mnożenia i dzielenia?
P-111964
aaadam
Temat założony przez niniejszego użytkownika
» 2014-06-12 18:05:08
dzięki za pomoc, nie za bardzo mi to wychodziło ponieważ współrzędne x oraz y miałem jako int a przecież są zaokrąglane teraz,kolejne pytanie jeżeli pobieram np współrzędne x=100 i y=100 do funkcji: atan2(100.0,100.0) to jest to jeden punkt, a drugi to 0.0,0.0 ?
P-111994
pekfos
» 2014-06-12 19:50:13
Mniej więcej.
P-111999
« 1 » 2
  Strona 1 z 2 Następna strona