Skocz do zawartości

I am Lord

Użytkownicy
  • Postów

    4 891
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    53

Treść opublikowana przez I am Lord

  1. Mam nadzieję że Anty się nie obrazi jak to tutaj też wstawię :P Tematy akurat się zeszły. http://indiehub.pl/showthread.php?tid=28&pid=199#pid199
  2. Ale co, chodzi ci że zbyt wytrzymałe postacie? Wszystko zależy od ustawień tutaj np. praktycznie 1 hit - 2 hity to ucięcie kończyny.
  3. Zabawne że Poo-ding wszystkie swoje błędy zgania na bugi GMa.
  4. O to polecę ci "Die by the sword" stara ale nie widziałem lepszego systemu walki w innych grach.
  5. I am Lord

    Galeria Grafik

    Southparka tworzono na początku z fotografowanych wycinanek a teraz robią to samo ale w 3ds max :D
  6. hehe masz małe pojęcie o optymalizaczji, ten sam kod co dałeś tylko szybszy: GML s=collision_line(x,y,x,y+500,par_objbounce,0,1); if s { draw_sprite_ext itd } A co do tematu to spróbuj może wykorzystać algortym wyszukiwania binarnego, który gdzieś w artykułach leży. Napisał go Platyna.
  7. sprite_create_from_screen będzie bardziej wydajne
  8. Jeśli masz gdzieś używać redraw i refresh co step to odpuść sobie ten pomysł, musisz zrobić to inaczej nie ma wyjścia.
  9. No tak pamiętam że też miałem z tym problem. I zdecydowałem się robić buttony ze stałą przeźroczystością zdefiniowaną w materiałach. material Core/MainBlackOverlayMat { technique { pass { scene_blend alpha_blend depth_write off texture_unit { alpha_op_ex source1 src_manual src_current 0.5 texture BlackOverlay.png } } } } Jak zrobisz tak to będziesz mógł sobie zmieniać przeźroczystość, niestety na stałe. Nie wiem jak się robi to dynamicznie ale możesz spróbować zmieniać parametry materiału funkcjami do tworzenia materiałów. Od razu zaznaczę że nie próbowałem tego.
  10. 6 argument prec musi być zaznaczony w tym wypadku.
  11. A materiał tego elementu ma włączone mieszanie kolorów? Musisz dopisać do pliku z materiałem pod texture_unit: colour_op alpha_blend
  12. Wiem co to powoduje ale nie wiem jak naprawić. Chodzi oto że _other.object_index nie działa z indexami parentów tylko z indexami objectów.
  13. hehe faktycznie widać postępy. W którymś levelu widziałem pasek życia ale się nie przesuwał za ekranem. A no i gra nie jest zoptymalizowana bo się na jakimś większym levelu ścinała.
  14. Racja wtedy można zrobić tak: GML if ( collision_line( xprevious, yprevious, x, y, p_shootable, 0, 0 ) ) { _other = collision_while( xprevious, yprevious, p_shootable ) if ( _other > 0 ) switch ( _other.object_index ) { case obj_walker: instance_destroy(); // pocisk się zniszczy with ( _other ) instance_destroy(); // przeciwnik takze break; case obj_block: instance_destroy(); break; // tutaj tylko pocisk sie zniszczy ( sciana nie ) break; } }
  15. Bo jak testowałem to na AI vs AI i zapomniałem zmienić.
  16. edit: a nie jednak to też nie zadziała :/ coś innego wymyślę
  17. Narysuj sytuację na rysunku bo nie ogarniam co chcesz w końcu zrobić.
  18. W opcjach rozgrywki ustaw sobie, którą paletką chcesz grać.
  19. może to? draw_sprite(lvl,lvl,view_xview[c]+640,view_yview[c]+32,); Czy mi się wydaje, czy masz zmienną nazwaną tak samo jak zasób ze spritem. Poza tym na końcu tej funkcji masz jakiś pusty przecinek
  20. Nie musisz wiedzieć co się dzieje w samym skrypcie żeby go używać :P 1. Origin sprita pocisku ustaw na jego czubku. 2. Skrypt zadziała jeżeli do wyświetlania i przesuwania instancji pocisku używasz wbudowanych zmiennych, x, y, speed, direction, image_angle. 3. Skrypt poprawnie zadziała tylko w end step oraz draw. 4. Standardowe eventy kolizji z pociskiem powywalaj . 5. End step pocisku: GML var _other; if ( collision_line( xprevious, yprevious, x, y, oWall, 0, 0 ) ) { _other = collision_while( xprevious, yprevious, oWall ) if ( _other ) { instance_destroy(); // zaistniala kolizja ten kod wykona sie w instancji pocisku with ( _other ) { instance_destroy(); // a ten kod wykona się w instacji sciany } } }
  21. Tutaj collision line jest sprawdzany raz. A długość przestrzeni w którą strzela nie ma znaczenia. W tym skrypcie, wartość prędkości decyduje o tym ile razy wykona się pętla. W najgorszym wypadku pętla wykona się tyle razy ile wynosi prędkość a w najlepszym tylko raz.
  22. Już daję, ale to nie jest najszybsza metoda: GML (collisionwhile) // skrypt collision_while( cofajX, cofajY, obj ); x = argument0; y = argument1; var _count, _collision; _count = 0; while ( true ) { _collision = instance_place( x, y, argument2 ); x += cos( direction*pi/180 ); y -= sin( direction*pi/180 ); _count += 1; if ( _count > speed ) return noone; if ( _collision != noone ) return _collision; } Sposób użycia: GML if ( collision_line( xprevious, yprevious, x, y, oWall, 0, 0 ) ) { if ( collision_while( xprevious, yprevious, oWall ) ) instance_destroy(); } Skrypt zwraca ID 1 napotkanej instacji więc możesz sobie zwrócić twoje .other Ten bedzie działał jeszcze szybciej, ale nie ma blokady przeciwko zapętleniu się ( na wypadek gdyby poszło coś nie tak ) GML (collisionwhile) // skrypt collision_while( cofajX, cofajY, obj ); x = argument0; y = argument1; var _collision; while ( true ) { _collision = instance_place( x, y, argument2 ); x += cos( direction*pi/180 ); y -= sin( direction*pi/180 ); if ( _collision != noone ) return _collision; } Edit: Origin ustaw na czubku pocisku. Sprawdzanie kolizji wykonuj w evencie end step
×
×
  • Dodaj nową pozycję...