wezyrnorbert Opublikowano 10 Maja 2008 Udostępnij Opublikowano 10 Maja 2008 Wytłumaczy mi ktoś ten kod linijkę po linijce po chcę go przerobić aby desz padał nie z viewa[0] tylko z krańców rooma: view_center_x = view_xview[0]+view_wview[0]/2; view_center_y = view_yview[0]+view_hview[0]/2; for ( i=0; i<gestosc; i+=1 ) { if ( time > 0 ) time[ i ] -= 1; if ( alpha > 0 ) alpha[ i ] -= 0.02; if ( time[ i ] <= 0 || point_distance( X[ i ], Y[ i ], view_center_x, view_center_y ) < 64+random(64) || alpha[ i ] <= 0 ) { img[ i ] = random( 4 ); _side = round(random( 10 )); if ( _side == 1 ) draw_sprite( sDrop, random(2), X[ i ], Y[ i ] ); _side = round(random( 1 )); if ( _side ) { X[ i ] = choose( view_xview[0], view_xview[0]+view_wview[0] ); Y[ i ] = random( view_hview[0] ); } else { X[ i ] = random( view_wview[0] ); Y[ i ] = choose( view_yview[0], view_yview[0]+view_hview[0] ); } dir[ i ] = point_direction( X[ i ], Y[ i ], view_center_x, view_center_y ); spd[ i ] = 5 + random( 3 ) + gestosc/50; time[ i ] = 50 + random( 30 ); alpha[ i ] = 1; //random( 1 ) + 0.5; } X[ i ] += lengthdir_x( spd[ i ], dir[ i ] ); Y[ i ] += lengthdir_y( spd[ i ], dir[ i ] ); draw_sprite_ext( sRain, img[ i ], X[ i ], Y[ i ], 1, 1, dir[ i ], c_white, alpha[ i ] ); } if ( rAlpha > 0 ) rAlpha -= 0.1; _side = round(random( 230 - gestosc )); if ( _side == 1 ) { rAlpha = random(1)+0.5; rRate = random( 0.5 ) + 0.2 } draw_set_alpha( rAlpha ); draw_rectangle( view_xview[0], view_yview[0], view_xview[0]+view_wview[0], view_yview[0]+view_hview[0], 0 ); draw_set_alpha(1); Chyba trzeba przerobić to view_center_x = view_xview[0]+view_wview[0]/2; view_center_y = view_yview[0]+view_hview[0]/2; ale niewiem jak :P Z góry dzieki :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 10 Maja 2008 Udostępnij Opublikowano 10 Maja 2008 if ( _side ) { X[ i ] = choose( view_xview[0], view_xview[0]+view_wview[0] ); Y[ i ] = random( view_hview[0] ); } else { X[ i ] = random( view_wview[0] ); Y[ i ] = choose( view_yview[0], view_yview[0]+view_hview[0] ); } Za losowanie miejsc odpowiada to. Zamień przy losowaniu viewy na 0,0,room_width i height i bingo. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
wezyrnorbert Opublikowano 10 Maja 2008 Autor Udostępnij Opublikowano 10 Maja 2008 EDIT : Czyli if ( _side ) { X[ i ] = choose( 0,0,room_width ); Y[ i ] = random( view_hview[0] ); } else { X[ i ] = random( view_wview[0] ); Y[ i ] = choose( 0,0,room_height ); } } ??? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 10 Maja 2008 Udostępnij Opublikowano 10 Maja 2008 Nie, nie. Poza tym zostawiłeś w jednym wymiary viewa. Weźże zastanów się co robisz. view_xview to lewy brzeg viewa(ekranu). view_wview to szerokość viewa. Po dodaniu ich otrzymujemy prawy brzeg ekranu. Analogicznie z y. Czyli jeśli chodzi o room zamiast view_xview musisz podstawić 0 a dalej się domyśl. room_width+room_height O boże... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
wezyrnorbert Opublikowano 10 Maja 2008 Autor Udostępnij Opublikowano 10 Maja 2008 Mógłbyś mi to napisać bo jakoś nie skumałem :P Wyszło mi że deszcz pada tylko po lewej stronie i z góry :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Yoda Opublikowano 10 Maja 2008 Udostępnij Opublikowano 10 Maja 2008 { X[ i ] = choose( 0,room_width ); Y[ i ] = random( room_height ); } else { X[ i ] = random( room_width ); Y[ i ] = choose( 0,room_height ); } Teraz porównaj i wyciągnij wnioski. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
wezyrnorbert Opublikowano 10 Maja 2008 Autor Udostępnij Opublikowano 10 Maja 2008 Ok działa bo mi sie chyba pomyliło height w width i 2 razy napisalem to samo ale dzial i thx :P EDIT : A jak jeszcze zrobić aby sprite sRain znikało dopiero gdy odległość od obj_hero większa niż 80 ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pasterz Opublikowano 10 Maja 2008 Udostępnij Opublikowano 10 Maja 2008 GML if distance_to_object(oHero)>= 80 {instance_destroy()} Daj to w step obiektu rain. ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
wezyrnorbert Opublikowano 10 Maja 2008 Autor Udostępnij Opublikowano 10 Maja 2008 Tylko że tam niema obj rain tylko drawuje go obj_pogoda :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się