Autor Wątek: Obracanie klockiem poprzez macierz  (Przeczytany 2623 razy)

Offline luppo19

  • Użytkownik

# Luty 14, 2012, 20:47:40
Witam piszę mini gre z wykorzystaniem silnika Irrlicht i mam problem z obracaniem klocka chciał bym żeby obracał się płynnie poprzez macierz a nie tak jak przez funkcję getposition(). Jeśli mógł bym prosić o pomoc w linku dodaje mój projekt ponieważ chcąc przesłać cały kod było by to zbyt nie czytelne jesli ktoś by mógł mi wstawić poruszanie się klockiem w taki sposób jaki opisałem był bym już bardzo wdzięczny


http://www.speedyshare.com/file/uJ7P5/
« Ostatnia zmiana: Luty 15, 2012, 09:39:49 wysłana przez luppo19 »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Minus

  • Użytkownik

# Luty 14, 2012, 21:24:13
mam problem z obracaniem klocka chciał bym żeby obracał się płynnie poprzez macierz
przez funkcję getposition()
wstawić poruszanie się klockiem w taki sposób jaki opisałem
Że co?

Przeczytałem to już z 5 razy i nie rozumiem w czym rzecz.

Offline luppo19

  • Użytkownik

# Luty 14, 2012, 22:01:06
Właśnie dlatego dodałem cały projekt chciałem zeby klocek, który jest w tej grze obracał sie o 90 stopni ale zeby wygladało to jak animacja czytałem ze robi się to poprzez modyfikacje macierzy ale nigdzie nie było przykładu.

Offline Minus

  • Użytkownik

# Luty 15, 2012, 00:51:08
Po prostu ustalasz target obrotu:
#define SIGN( _x ) ((_x) >= 0? 1 : -1)
// (...)
float target, angle;
// (...)
if( Input->( ... ) ) target += 90.0f;
// (...)
if( angle != target )
    angle += 1.0f*SIGN( target );
Jeżeli chodzi o płynne obracanie się:
#define SIGN( _x ) ((_x) >= 0? 1 : -1)
// (...)
float target, angle;
// (...)
if( Input->( ... ) ) target += 90.0f;
// (...)
if( abs(target) - abs(angle) < 0.2f )
    angle = target;
else
    angle += (target - angle)*0.2f;
« Ostatnia zmiana: Luty 15, 2012, 00:53:19 wysłana przez Minus »

Offline luppo19

  • Użytkownik

# Luty 15, 2012, 09:39:06
Dziękuje dziś spróbuje to zastosować