Skocz do zawartości

Marcin1147

Użytkownicy
  • Postów

    56
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Marcin1147

  1. Nadal kupa. Gdy direction=0 wtedy grafika porusza się w prawo, gdy dam np. 45 to wtedy staje w miejscu :(
  2. Chodzi mi o to, że ten kod nie działa jak powinien, zwyczajnie "świruje". Chciałem aby ktoś znający się trochę na matmie napisał algorytm działający jak GM'owe speed i direction bo mój kod (z pierwszego postu) zwyczajnie nie działa.
  3. Yyy, to jest mój kod tylko skrócony? Nic się nie zmieniło.
  4. Potrzebuje poruszania się po danym kącie z daną szybkością. Kiedyś miałem taki fajny kod, ok. 4 linie ale działał perfekcyjnie. Z pamięci napisałem takie coś, ale nie działa tak jakbym chciał. Kod jest do C#, ale mi chodzi o sam algorytm. angle = direction * (180/Math.PI); dx = Math.Cos(angle) * speed; dy = Math.Sin(angle) * speed; x += (int)dx; y += (int)dy; Pomóżcie!
  5. Marcin1147

    Gmclan City

    No, dzięki :P EDIT: Siedziba PM-Games:
  6. Marcin1147

    Gmclan City

    Siedziba YYG (wiem, nie mam talentu):
  7. C++'owy geniusz! Pomógł mi we wszystkich problemach. Zasłużone 5 gwiazdek!

  8. Ok, działa - a jak zwolnić pamięć po tworzonej co sekundę strukturze? O, tej: Chodzi mi o coś w stylu: EDIT: BTW. Dzięki, wygląda nawet nieźle!
  9. Hej, pisze sobie w C++ taki, hmmm... Motion-blur, i mam problem z usuwaniem iteratorów z listy STL w pętli "for". Gdy zakomentuję pogrubioną linijkę kodu to blur działa, gdy nie to dostaje errora: list iterator is not incrementable... Pomóżcie.
  10. Sory, pomyłka: obj2.x=x+lengthdir_x(32,obj1.direction); obj2.y=y+lengthdir_y(32,obj1.direction);
  11. obj2.x=lengthdir_x(32,obj1.direction); obj2.y=lengthdir_y(32,obj1.direction); ??
  12. Marcin1147

    włosy

    Ołówkiem :D
  13. Super, teraz już wszystko wiem! Rozwiązałeś wszystkie moje problemy + problem głodu na ziemi oraz problem bezrobocia! Super! Znakomicie... :(
  14. // //Początek GMCLAN'owego syfa // struct vec2 { float x; float y; }; //Operatory wektor<->float vec2 operator* (vec2& v1,float& v2) { vec2 temp; temp.x=v1.x*v2; temp.y=v1.y*v2; return(temp); }; vec2 operator/ (vec2& v1,float& v2) { vec2 temp; temp.x=v1.x/v2; temp.y=v1.y/v2; return(temp); }; vec2 operator+ (vec2& v1,float& v2) { vec2 temp; temp.x=v1.x+v2; temp.y=v1.y+v2; return(temp); }; vec2 operator- (vec2& v1,float& v2) { vec2 temp; temp.x=v1.x-v2; temp.y=v1.y-v2; return(temp); }; //Operatory wektor<->float //Operatory wektor<->wektor vec2 operator* (vec2& v1,vec2& v2) { vec2 temp; temp.x=v1.x*v2.x; temp.y=v1.y*v2.y; return(temp); }; vec2 operator/ (vec2& v1,vec2& v2) { vec2 temp; temp.x=v1.x/v2.x; temp.y=v1.y/v2.y; return(temp); }; vec2 operator+ (vec2& v1,vec2& v2) { vec2 temp; temp.x=v1.x+v2.x; temp.y=v1.y+v2.y; return(temp); }; vec2 operator- (vec2& v1,vec2& v2) { vec2 temp; temp.x=v1.x-v2.x; temp.y=v1.y-v2.y; return(temp); }; //Operatory wektor<->wektor float dot(vec2 v1,vec2 v2) { return v1.x*v2.x+v1.y*v2.y; } vec2 reflect(vec2 I,vec2 N) { return I-2.0f*N*dot(N,I); } int point_direction(int x1, int x2, int y1, int y2) { return(atan2(y2-y1,x2-x1) * 180 / M_PI); } double degtorad( double alfa) { return alfa * M_PI / 180; } float lengthdir_x(float len,float dir) { return(cos(degtorad(dir))*len); } float lengthdir_y(float len,float dir) { return(sin(degtorad(dir))*len); } void Odbij() { vec2 srodek; srodek.x=12; srodek.y=12; vec2 kierunek,nowy; kierunek.x=lengthdir_x(ball->direction,1); kierunek.y=lengthdir_y(ball->direction,1); nowy=reflect(srodek,kierunek); ball->direction=point_direction(0,0,nowy.x,nowy.y); } // //Koniec GMCLAN'owego syfa // Ten sam error!
  15. Ok, mam takie coś: // //Początek GMCLAN'owego syfa // struct vec2 { float x; float y; }; vec2 operator* (vec2& v1,float& v2) { vec2 temp; temp.x=v1.x*v2; temp.y=v1.y*v2; return(temp); }; vec2 operator/ (vec2& v1,float& v2) { vec2 temp; temp.x=v1.x/v2; temp.y=v1.y/v2; return(temp); }; vec2 operator+ (vec2& v1,float& v2) { vec2 temp; temp.x=v1.x+v2; temp.y=v1.y+v2; return(temp); }; vec2 operator- (vec2& v1,float& v2) { vec2 temp; temp.x=v1.x-v2; temp.y=v1.y-v2; return(temp); }; float dot(vec2 v1,vec2 v2) { return v1.x*v2.x+v1.y*v2.y; } vec2 reflect(vec2 I,vec2 N) { return I-2.0f*N*dot(N,I); } int point_direction(int x1, int x2, int y1, int y2) { return(atan2(y2-y1,x2-x1) * 180 / M_PI); } double degtorad( double alfa) { return alfa * M_PI / 180; } float lengthdir_x(float len,float dir) { return(cos(degtorad(dir))*len); } float lengthdir_y(float len,float dir) { return(sin(degtorad(dir))*len); } void Odbij() { vec2 srodek; srodek.x=12; srodek.y=12; vec2 kierunek,nowy; kierunek.x=lengthdir_x(ball->direction,1); kierunek.y=lengthdir_y(ball->direction,1); nowy=reflect(srodek,kierunek); ball->direction=point_direction(0,0,nowy.x,nowy.y); } // //Koniec GMCLAN'owego syfa // I wywala: Illegal structure operation tutaj:
  16. Brakuje mi jeszcze lengthdirów do C++, kiedyś widziałem to na GMClanie ale teraz nie mogę znaleźć!
  17. We wszystkich funkcjach operatorów wywala takie coś: Attempting to return a reference to local variable 'temp'
  18. Jezu, dzięki PsichiX że wytrzymałeś tyle czasu z takim noobem jak ja ^_^ Dam znać czy działa, i jeszcze raz dzięki.
  19. struct vec2 { float x; float y; }; //pomijam operatory vec2 reflect(vec2 I,vec2 N) { return I-2.0f*N*dot(N,I); { float dot(vec2 v1,vec2 v2) { return v1.x*v2.x+v1.y*v2.y; } int point_direction(int x1, int x2, int y1, int y2) { atan2(y2-y1,x2-x1) * 180 / M_PI; //korzystam z math.h } void Odbij() { vec2 kierunek,nowy; kierunek.x=lengthdir_x(ball->direction,1); kierunek.y=lengthdir_y(ball->direction,1); nowy=reflect(12,kierunek); ball->direction=point_direction(nowy.x,nowy.y, -co tutaj-, -co tutaj-); } A co z x2, y2 :(
  20. Czekaj, a co mam w takim razie wstawić w miejsce i_co_teraz(); aby przerobić ten hmm "wektor" spowrotem na ball->direction ?
  21. Czekaj, uaktualnie mój cudowny kod: struct vec2 { float x; float y; }; vec2 reflect(vec2 I,vec2 N) { return I-2.0f*N*dot(N,I); { float dot(vec2 v1,vec2 v2) { return v1.x*v2.x+v1.y*v2.y; } void Odbij() { vec2 kierunek,nowy; kierunek.x=lengthdir_x(ball->direction,1); kierunek.y=lengthdir_y(ball->direction,1); nowy=reflect(12,kierunek); i_co_teraz(); }
  22. OMG dobra, to łatwiejsze niż myślałem :P Wiesz Vec kojarzy mi się z wektorem, takim co ma pkt. zaczepienia kierunek, wartość i inne syfy :P Ale skoro I to promień padania, to jak mam go wyrazić w X i Y?
  23. A w jakiej bibliotece jest ten typ vec2, vec3 - bo chyba nie w standardowych :P
  24. Przepraszam, ale ten kod to chyba do 3d, bo skąd ja mam w 2d wziąć coś takiego jak Z? :P
×
×
  • Dodaj nową pozycję...