Skocz do zawartości

PsichiX

Użytkownicy
  • Postów

    5 647
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    12

Treść opublikowana przez PsichiX

  1. więc przeanalizuj jak tam to wygląda i działa i dopasuj do swojego stylu
  2. sprawdź to: https://forum.gmclan.org/index.php?showtopic=18982
  3. PsichiX

    Czy musze...

    nie musisz, mozesz zrobic gierke w edytorze gier jak Game Maker
  4. PsichiX

    Particles

    to wynika z samej struktury petli ktora masz, i Twoj sposob z -- jest dobry, ja zapomnialem ze moim sposobem ominie jednego particla
  5. PsichiX

    GM'owe "bounce" w C++

    bo mususz miec operatory vec2<->float oraz vec2<->vec2, a ty masz tylko te pierwsze. zapomnaiels o drugich, dla tego nie moze wykonac dzialan wektora z wektorem.
  6. PsichiX

    GM'owe "bounce" w C++

    float lengthdir_x(float len,float dir) { return(cos(degtorad(dir))*len) }; float lengthdir_y(float len,float dir) { return(sin(degtorad(dir))*len) };
  7. PsichiX

    GM'owe "bounce" w C++

    to jak zwraca "vec2&" zamien na "vec2" bez "&"
  8. PsichiX

    GM'owe "bounce" w C++

    zapomnialem jeszcze o operatorach dla vec2 z liczbami bez ktorych nie zadziala funkcja reflect: 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); };
  9. PsichiX

    GM'owe "bounce" w C++

    ball->direction=point_direction(0,0,nowy.x,nowy.y); bo wektor kierunku to tylko kierunek, bez pozycji poczatkowej, a raczej pozycja ta lezy na [0,0]
  10. PsichiX

    GM'owe "bounce" w C++

    point_direction() musisz sobie napisac. na forum nie raz byl poruszany o tym watek z tego co wiem
  11. PsichiX

    GM'owe "bounce" w C++

    musisz jeszcze zrobic przeciazenie operatora mnozenia dla vec2 (przy okazji reszte tez) 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); };
  12. PsichiX

    GM'owe "bounce" w C++

    generalnie kierunki lepiej trzymac w wektorach. zawsze konwertuj kierunki obrotu na wektory za pomoca lengthdirs. vec2 kierunek; kierunek.x=lengthdir_x(direction,1); kierunek.y=lengthdir_y(direction,1);
  13. PsichiX

    GM'owe "bounce" w C++

    sam mozesz je sobie zrobic. Korzysci z obiektowosci. struct vec2 { float x; float y; };
  14. PsichiX

    GM'owe "bounce" w C++

    to mnoz tylko 2 pierwsze: X i Y, Z w tym przypadku bedzie zawsze rowne 0 float dot(vec2 v1,vec2 v2) { return v1.x*v2.x+v1.y*v2.y };
  15. PsichiX

    Particles

    pocisk_iter->pocisk_y-=3; if(pocisk_iter->pocisk_y<-(b_pocisk->h)) { pociski.erase(pocisk_iter++); continue; } masked_blit(b_pocisk,b_bufor,0,0,pocisk_iter->pocisk_x,pocisk_iter->pocisk_y, b_pocisk->w,b_pocisk->h); natura iteratorow wymaga by w petli iterator wskazujacy na element do usuniecia zostal inkrementowany/dekrementowany przy usuwaniu aby ominac ten wlasnie blad
  16. nalezalo by to przechowac w strukturze listy. co klatke sprawdzalo by sie czy od pozycji ostatniego wektora jest wystarczajaca odleglosc i jesli tak to zapamietuje bierzaca pozycje jako nowy wektor
  17. GML filet=file_bin_open('lol.txt',0); msg='' repeat(file_bin_size(filet))msg+=chr(file_bin_read_byte(filet)); file_bin_close(filet); show_message(msg); lub: GML filet=file_text_open_read('lol.txt'); msg='' while(!file_text_eof(filet)) { msg+=file_text_read_string(filet); file_text_readln(filet) if(!file_text_eof(filet))msg+=chr(13)+chr(10) } show_message(msg); file_text_close(filet);
  18. przytrzymujac przycisk myszy zapamietujesz jej sciezke i przerabiasz ja na liste wektorow kierunkow wzgledem poprzedniego wektora. potem sprawdzasz ze wzorcem uwzgledniajac dopuszczalne odchylenia od normy i jesli miesci sie w normach to ksztalt zostal narysowany poprawnie
  19. Cos mi tu nie gra. Niech ktos wiarygodny przetestuje, jesli to zarty badz trojan itp, osobiscie zablokuje konto na kilka dni za to + brak szablonu.
  20. Buźka mordki Wy moje ;**

  21. PsichiX

    Particles

    daj wać projekt (ale nie fragment kodu, tylko projekt cały bo to nie działa jak w GM. spoko, nie podkradne nic :P) edit: nom to czekam :) edit2: odeslane edit2: ale gupi blad xD iter->y+iter->speed; // zapomnialem dac "+=" zamiast "+" i nie dodawal do pozycji ;P
  22. PsichiX

    Particles

    EDIT: Poprawilem aktualizacje, bo pokracznie ja przepisalem ;p podeślij mi projekt na PW i poprawie bo wiem gdzie leży błąd, ale nie wytłumacze Ci go na sucho, jesli sam tego nie dostrzezesz
  23. PsichiX

    Particles

    dlatemu - kasujesz nowo powstały particle. ja ten kod napisałem ogólnikowo, czyli co kiedy sie robi, to nie jest kod dla zwykłego kopiuj-wklej całości. Gdzieś na początku: struct PARTICLE_DESC { int x; int y; int speed; }; // lista particli list<PARTICLE_DESC> particles; gdzieś indziej sobie dodasz ze 100 particli: for(int i=0;i<100;i++) { PARTICLE_DESC part; part.x=rand()%320; part.y=0; part.speed=rand()%10+1; particles.push_back(part); } potem w pętli głównej aktualizujesz (poprawilem, dziwne ze nikt nie zauwazyl ;p): for(list<PARTICLE_DESC>::iterator iter=particles.begin();iter!=particles.end();iter++) { iter->y+iter->speed; if(iter->y>240) { iter->x=rand()%320; iter->y=0; iter->speed=rand()%10+1; } masked_blit(partic,bufor,0,0,iter->x,iter->y,partic->h,partic->w); } a gdy ich już nie potrzebujesz to dajesz: jeśli chcesz usunąć wszystkie particle: particles.clear() lub jeśli chcesz usunąć jakiś konkretny: int _i=0; for(list<PARTICLE_DESC>::iterator iter=particles.begin();iter!=particles.end();iter++) { if(_i==id_particla_do_usuniecia) { particles.erase(iter); break; } _i++; }
  24. PsichiX

    Particles

    po includzie: using namespace std;
×
×
  • Dodaj nową pozycję...