-
Postów
4 891 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
53
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez I am Lord
-
Community Awards 2011 - przykład/silnik/artykuł
I am Lord odpowiedział(a) na Uzjel temat w Archiwum CA
Artykuł: Wyszukiwanie binarne Platyna -
Co najbardziej interesuje player'ów?
I am Lord odpowiedział(a) na I am Żyd and Lewak temat w Dyskusje o GM
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 -
Co najbardziej interesuje player'ów?
I am Lord odpowiedział(a) na I am Żyd and Lewak temat w Dyskusje o GM
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. -
GM się sypie? a może robie coś źle.
I am Lord odpowiedział(a) na Poo-ding temat w Pytania początkujących
Zabawne że Poo-ding wszystkie swoje błędy zgania na bugi GMa. -
Co najbardziej interesuje player'ów?
I am Lord odpowiedział(a) na I am Żyd and Lewak temat w Dyskusje o GM
O to polecę ci "Die by the sword" stara ale nie widziałem lepszego systemu walki w innych grach. -
Southparka tworzono na początku z fotografowanych wycinanek a teraz robią to samo ale w 3ds max :D
-
collision_line zwracając id pierwszego obiektu
I am Lord odpowiedział(a) na Nirvan temat w Pytania początkujących
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. -
collision_line zwracając id pierwszego obiektu
I am Lord odpowiedział(a) na Nirvan temat w Pytania początkujących
Jaki kod masz obecnie? -
sprite_create_from_screen będzie bardziej wydajne
-
Jeśli masz gdzieś używać redraw i refresh co step to odpuść sobie ten pomysł, musisz zrobić to inaczej nie ma wyjścia.
-
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.
-
6 argument prec musi być zaznaczony w tym wypadku.
-
A materiał tego elementu ma włączone mieszanie kolorów? Musisz dopisać do pliku z materiałem pod texture_unit: colour_op alpha_blend
-
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.
-
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.
-
+miliard :D
-
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; } }
-
Bo jak testowałem to na AI vs AI i zapomniałem zmienić.
-
edit: a nie jednak to też nie zadziała :/ coś innego wymyślę
-
Narysuj sytuację na rysunku bo nie ogarniam co chcesz w końcu zrobić.
-
W opcjach rozgrywki ustaw sobie, którą paletką chcesz grać.
-
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
-
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 } } }
-
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.
-
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