Pogromca_kodu77
Użytkownicy-
Postów
57 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez Pogromca_kodu77
-
bardzo duża sceneria i kilka miejszych obrazków tła(parallaxa)
Pogromca_kodu77 odpowiedział(a) na Pogromca_kodu77 temat w GM:Studio 1.x
A w GMS 1.4 rozumiem,że ilość maksymalnie 8(background) na jeden pokój room mogę ustawić na powtarzanie się w osi x i y lub jednej osi? Ktoś mógłby mi pokazać jakiś przykład takiego powtarzającego się tła? Dziękuję... -
bardzo duża sceneria i kilka miejszych obrazków tła(parallaxa)
Pogromca_kodu77 odpowiedział(a) na Pogromca_kodu77 temat w GM:Studio 1.x
Co masz na myśli mówiąc...że problem będzie wydawał się nieskończony? W GMS można tworzyć duże scenerie zbudowane z kafelek.. Tła już gorzej..ale tych bezpiecznych rozmiarów jak będę się trzymał to będzie wszystko dobrze.. Pytanie moje jest właśnie związane z dopasowaniem tła do dużych scenerii. Ktoś z was myślę,że z podobnego rozwiązania korzystał... -
Garden Adventure - darmowa gra logiczna z zajączkiem
Pogromca_kodu77 odpowiedział(a) na Ehrgeiz temat w Gotowe gry i programy
Obstawiam Adobe illustrator ale mogę się mylić..Bardzo ładna oprawa graficzna;-) chętnie zagram w tą grę.. -
bardzo duża sceneria i kilka miejszych obrazków tła(parallaxa)
Pogromca_kodu77 opublikował(a) temat w GM:Studio 1.x
Cześć wszystkim... Borykam się z takim zagadnieniem jeszcze nie problemem... Mam zaprojektowaną dużą scenerię o wymiarach 8192x2024 oczywiście całość podzielona na małe fragmenty aby niepotrzebnie zwiększać texture page... Obecnie texture page mam ustawione na wartość 4096x4096 i nie chcę tego zmieniać... Teraz moje pytanie jest następujące...do tej scenerii będę rysował trzy tła..na których chcę uzyskać efekt parallaxy..w stosunku do tych obrazów tła nie będę dzielił je na małe fragmenty..bo dużo zabawy jest potem z ustawieniem parallaxy..wobec tego wybrałem metodę załadowania całych obrazków png..ale żeby nie przekroczyć tej nieszczęsnej texture page 4096x4096 narysuje trzy tła np o parametrach 4096x1024 lub 4096x2024...i teraz tak..jak ustawić parallaxe takiego tła jeśli nie stanowi on całości rozmiarów scenerii? Macie może jakiś na to przykład? ktoś na pewno z was tworzył większe scenerię i dopasowywał do nich tła... Próbowałem coś w sieci wyszukać,ale nie mogę nic sensownego znaleźć z dobrym wyjaśnieniem,a najlepiej przykładem... Może jest jakaś zasada jak mają mieć rozmiary tła jeśli sceneria ma takie rozmiary jak powyżej podałem? Za każdą pomoc radę sugestię bardzo wam z góry dziękuję... Utknąłem z takim zagadnieniem i nie wiem jak z tego jak najlepiej wybrnąć... -
Spokojnie..tu nie chodzi o analize całego kodu... Napisałem co chciałbym osiągnąć.. Wspominałeś żebym użył funkcji surface... Właśnie to chce zrobić..tylko utknąłem z problemem. Próbuje zmusić piorun żeby generował się na danym tylko obszarze,a nie całej scenerii.. Wyżej są współrzędne gdzie ma się te zjawisko pojawiać.. W przypadku wcześniejszym jak błysk było to o tyle łatwiejsze bo wystarczyło użyć w draw tej funkcji... draw_sprite_stretched_ext(sPixel2, 0, x+200, y, 1000, 600, c_black, 1); Natomiast przy piorunie to się nie sprawdzi.. Bo piorun nie ma sprita..
-
Chyba zagram w toto lotka;-) bo chyba nikt tu nie zagląda.. Zawsze jakaś szansa,że trafię chociaż trójkę ;-) parę groszy wpadnie;D Jeśli chodzi o wymuszenie pozycji obiektu błysku zrobiłem coś takiego.. znając współrzędnie z room edytota w draw dałem tak draw_sprite_stretched_ext(sPixel2, 0, x+200, y, 1000, 600, c_black, 1); Co prawda może nie jest to super rozwiązanie,ale w takim oknie na takim obszarze miga obraz... Wolałbym mieć uniwersalne rozwiązanie..bo rozmiar okna mogę zmienić i wtedy znów musiałbym ręcznie zmieniać parametry w draw obiektu błyskawicy Takiego też rozmiaru jest obj_deszcz który rozciągam niewidzialnym spritem w room edytorze i na tym fragmencie tworzy się deszcz... Ten obj_deszcz może mieć dowolny rozmiar to jego zaleta... Ok został jeszcze piorun... tu nie wiem jak to rozwiązać..nawet nie mam koncepcji.. mam współrzędne wyżej linijka.. ale jak to zrobić? dać w draw pioruna jakiś warunek? Gnysek wspominał o draw_surface... tych draw_surface jest od groma.. może chodzi o draw_surface_part? pomoglibyście Mi z tymi piorunami? chciałbym żeby występowały wyłącznie na tym obszarze co wyżej... tu jeszcze raz kod w draw piorunów obj_piorun draw ///Rysujemy piorun n_br = 0; //Liczba galezi //Uzywamy mb dla galezi glownych i sub dla rozgalezien mb_dir = 200+random(140); //Kierunek fragmentu linii for (i=0;i<_irr;i+=1) { mb_x[i] = _x; mb_y[i] = _y; //Pozycja porazenia _branching = (random(_br)<1); //Niezalezne porazenia od pioruna i rozgalezienia if (_branching = true) { n_br += 1; b_irr[n_br] = random(_irr); //Ilosc porazen dla tego rozgalezienia sb_x[n_br,0] = mb_x[i]; sb_y[n_br,0] = mb_y[i]; _c = cos(pi*floor(random(2))); if (_c=1) sb_dir = 190+random(60); else sb_dir = 350-random(60); // To sprawia, że galac będzie w lewo lub w prawo; nie w lewo i potem w prawo for (j=1;j<b_irr[n_br];j+=1) { sb_x[n_br,j] = sb_x[n_br,j-1]+lengthdir_x(random(_ml),sb_dir); sb_y[n_br,j] = sb_y[n_br,j-1]+lengthdir_y(random(_ml),sb_dir); if (_c=1) sb_dir = 190+random(60); else sb_dir = 350-random(60); } } _x += lengthdir_x(random(_ml),mb_dir); _y += lengthdir_y(random(_ml),mb_dir); mb_dir = mb_dir-30+random(60); if (mb_dir > 340) mb_dir -= random(60); if (mb_dir < 200) mb_dir += random(60); //Piorun nie idzie w gore;zapobiegamy temu } alpha -= 1/9; //Powolne zanikanie pioruna if alpha<0{instance_destroy()} //Niszczenie jak zaniknie juz piorun draw_set_blend_mode(bm_add); draw_set_color(make_color_rgb(217,160,255)); //Ustawiamy rzecz na kolor purpurowy draw_set_alpha(alpha/2); //Rysujemy piorun w podanej wartosci alpha for (xxx=-1;xxx<=1;xxx+=1) { for (yyy=-1;yyy<=1;yyy+=1) { draw_primitive_begin(pr_linestrip); for (i=0;i<_irr;i+=1) { draw_vertex(mb_x[i]+xxx,mb_y[i]+yyy); } draw_primitive_end(); for (i=1;i<n_br;i+=1) { draw_primitive_begin(pr_linestrip); for (j=0;j<b_irr[i];j+=1) { draw_vertex(sb_x[i,j]+xxx,sb_y[i,j]+yyy); } draw_primitive_end(); } } } draw_set_alpha(1); //Ustawienie przezroczystosci draw_set_color(c_white); //Ustawienie koloru a tu wywołuje te dwa obiekty w obiekcie deszcz obj_deszcz begin step if ds_list_size(partType) > 0 && !notInView(){ part_emitter_region(partSystem,partEmitter,max(bbox_left,view_xview[0]),min(bbox_right,view_xview[0]+view_wview[0]),max(bbox_top,view_yview[0]-50),min(bbox_bottom,view_yview[0]+view_hview[0]),ps_shape_rectangle,ps_distr_linear); for (i=0;i<ds_list_size(partType);i++) { part_emitter_burst(partSystem,partEmitter,ds_list_find_value(partType,i),ds_list_find_value(partCount,i)*((min(bbox_right,view_xview[0]+view_wview[0])-max(bbox_left,view_xview[0]))/32)*((min(bbox_bottom,view_yview[0]+view_hview[0])-max(bbox_top,view_yview[0]))/32)); } } //Tworzymy blysk i blyskawice if random(80) < 1 //jesli wartosc losowa wynosi 1 { instance_create(random(room_width),0,obj_piorun); //Tworzymy piorun instance_create(0,0,obj_blyskawica) //Tworzymy blysk } Z tym surface kombinuje.. To ma sens..ale nie wiem czy dobrze to rozumiem.. Żeby wymusić konkretną pozycję obj_piorun to w draw muszę dodać taki wpis if !surface_exists(surf) { surf = surface_create(view_width, view_height); draw_surface_part(surf, 0, 0, 1000, 600, x+200, y ); } A w create obj_pioruna Coś takiego.. surf = surface_create(view_width, view_height);
-
Jednak będę potrzebował waszej pomocy... Nie będę wklepywał tu setek kodu.. do rzeczy.. 1. sprawa co wyżej rozwiązana..podniosłem wartość y o y-50 i jest ok;-) 2. mam już kod na pioruny oraz kod na błyskanie ekranu.. Obecnie błyska i grzmi na całej planszy..chce aby wyłącznie grzmiało i błyskało na tym fragmencie do zaznaczyłem w room edytorze deszcz... Próbowałem dodać to do kodu...w draw błyskawicy i piorunów max(bbox_left,view_xview[0]),min(bbox_right,view_xview[0]+view_wview[0]),max(bbox_top,view_yview[0]),min(bbox_bottom,view_yview[0]+view_hview[0]) ale mimo to nic się nie dzieje.. jeszcze raz poniżej kod.. obj_deszcz (ma sprita niewidzialnego którego rozciągam w room edytorze i na danej nierozciągniętej części ekranu pada deszcz obj_deszcz begin step if ds_list_size(partType) > 0 && !notInView(){ part_emitter_region(partSystem,partEmitter,max(bbox_left,view_xview[0]),min(bbox_right,view_xview[0]+view_wview[0]),max(bbox_top,view_yview[0]-50),min(bbox_bottom,view_yview[0]+view_hview[0]),ps_shape_rectangle,ps_distr_linear); for (i=0;i<ds_list_size(partType);i++) { part_emitter_burst(partSystem,partEmitter,ds_list_find_value(partType,i),ds_list_find_value(partCount,i)*((min(bbox_right,view_xview[0]+view_wview[0])-max(bbox_left,view_xview[0]))/32)*((min(bbox_bottom,view_yview[0]+view_hview[0])-max(bbox_top,view_yview[0]))/32)); } } //Tworzymy blysk i blyskawice if random(80) < 1 //jesli wartosc losowa wynosi 1 { instance_create(random(room_width),0,obj_piorun); //Tworzymy piorun instance_create(0,0,obj_blyskawica) //Tworzymy blysk } i teraz tak obj_blyskawica draw draw_sprite_ext(sprite_piksel,0,0,0,room_width,room_height,0,c_black,image_alpha); obj_piorun draw ///Rysujemy piorun n_br = 0; //Liczba galezi //Uzywamy mb dla galezi glownych i sub dla rozgalezien mb_dir = 200+random(140); //Kierunek fragmentu linii for (i=0;i<_irr;i+=1) { mb_x[i] = _x; mb_y[i] = _y; //Pozycja porazenia _branching = (random(_br)<1); //Niezalezne porazenia od pioruna i rozgalezienia if (_branching = true) { n_br += 1; b_irr[n_br] = random(_irr); //Ilosc porazen dla tego rozgalezienia sb_x[n_br,0] = mb_x[i]; sb_y[n_br,0] = mb_y[i]; _c = cos(pi*floor(random(2))); if (_c=1) sb_dir = 190+random(60); else sb_dir = 350-random(60); // To sprawia, że galac będzie w lewo lub w prawo; nie w lewo i potem w prawo for (j=1;j<b_irr[n_br];j+=1) { sb_x[n_br,j] = sb_x[n_br,j-1]+lengthdir_x(random(_ml),sb_dir); sb_y[n_br,j] = sb_y[n_br,j-1]+lengthdir_y(random(_ml),sb_dir); if (_c=1) sb_dir = 190+random(60); else sb_dir = 350-random(60); } } _x += lengthdir_x(random(_ml),mb_dir); _y += lengthdir_y(random(_ml),mb_dir); mb_dir = mb_dir-30+random(60); if (mb_dir > 340) mb_dir -= random(60); if (mb_dir < 200) mb_dir += random(60); //Piorun nie idzie w gore;zapobiegamy temu } alpha -= 1/9; //Powolne zanikanie pioruna if alpha<0{instance_destroy()} //Niszczenie jak zaniknie juz piorun draw_set_blend_mode(bm_add); draw_set_color(make_color_rgb(217,160,255)); //Ustawiamy rzecz na kolor purpurowy draw_set_alpha(alpha/2); //Rysujemy piorun w podanej wartosci alpha for (xxx=-1;xxx<=1;xxx+=1) { for (yyy=-1;yyy<=1;yyy+=1) { draw_primitive_begin(pr_linestrip); for (i=0;i<_irr;i+=1) { draw_vertex(mb_x[i]+xxx,mb_y[i]+yyy); } draw_primitive_end(); for (i=1;i<n_br;i+=1) { draw_primitive_begin(pr_linestrip); for (j=0;j<b_irr[i];j+=1) { draw_vertex(sb_x[i,j]+xxx,sb_y[i,j]+yyy); } draw_primitive_end(); } } } draw_set_alpha(1); //Ustawienie przezroczystosci draw_set_color(c_white); //Ustawienie koloru
-
Lina pozioma łamana łukowa pod różnym kątek + fizyka?
Pogromca_kodu77 odpowiedział(a) na Pogromca_kodu77 temat w Pytania początkujących
Słuszna uwaga Gnysek..na enum można by było to bardziej czytelniej napisać.. Ja dopiero się uczę tego wszystkiego;-) wiem wiem ify ktoś może powiedzieć,że to same zło;-) -
Dobra...znalazłem taki przykład z neta co prawda na emiterach na razie nie widzę,żeby obciążało zbyt mocno procesor.. Zresztą chcę to tylko używać na małym obszarze planszy.. mam tu deszcz i mgłę..ale brakuje błysku..burzy...może ktoś wspomoże mnie? fajnie jakby taki błysk działał z piorunami lub bez piorunów w creaction code deszczu. a teraz do rzeczy;-) zaznaczam sobie na room edytorze fragment prostokątny na którym ma się utworzyć deszcz i tak się też dzieje.. problem jest tego typu...kiedy przemieszczam się bohaterem to ten fragment deszczu też się przemieszcza..a zależy mi na tym żeby był wyłącznie w tym miejscu co go zaznaczyłem.. Dziwnie to wygląda,bo jak przemieszczam się bohaterem np góra dół..to widzę "początek zaczęcia tworzenia deszczu/sprita deszczu" a nie powinienem tego widzieć.. Być może ma to wpływ parallaxa moja w grze,ale mimo to chciałbym żeby był w stałym miejscu...bez względu na ruch gracza. Gnysek wspomniał o draw_surface..to jest ok.ale jak to ze sobą połączyć? ten kod jest dość uniwersalny... żeby deszcz padał muszę jeszcze w room edytorze w creacion code obj_deszcz wpisać taki kod który stworzy deszcz o sile padania =1 tak przynajmniej to rozumiem. i zapewne tu w creaction code trzeba by było ustawić stałe położenie deszczu... wolałbym konkretne rozwiązanie niż sugestia..;-) ja wiem,że Gnysek robi co może,ale myślę,że ktoś z was NA PEWNO mógł mieć z tym styczność... obj_deszcz room_edytor creation code haveParticles(pRain,1); obj_deszcz create hspdAdd = 0; vspdAdd = 0; partEmitter = part_emitter_create(partSystem); partType = ds_list_create(); partCount = ds_list_create(); destroy part_emitter_destroy(partSystem,partEmitter); ds_list_clear(partType); ds_list_clear(partCount); begin step hspd += other.hspdAdd; vspd += other.vspdAdd; if ds_list_size(partType) > 0 && !notInView(){ part_emitter_region(partSystem,partEmitter,max(bbox_left,view_xview[0]),min(bbox_right,view_xview[0]+view_wview[0]),max(bbox_top,view_yview[0]),min(bbox_bottom,view_yview[0]+view_hview[0]),ps_shape_rectangle,ps_distr_linear); for (i=0;i<ds_list_size(partType);i++) { part_emitter_burst(partSystem,partEmitter,ds_list_find_value(partType,i),ds_list_find_value(partCount,i)*((min(bbox_right,view_xview[0]+view_wview[0])-max(bbox_left,view_xview[0]))/32)*((min(bbox_bottom,view_yview[0]+view_hview[0])-max(bbox_top,view_yview[0]))/32)); } } i emitery... któryś z nich odpowiada za to gdzie zaczyna się rysowanie kropli deszczu..który to jeszcze nie wiem... pDeszcz = part_type_create() part_type_alpha3(pDeszcz,0,.5,0); //part_type_colour1(pDeszcz,c_aqua); //part_type_shape(pDeszcz,pt_shape_line); part_type_sprite(pDeszcz, spr_kropladeszczu, 0, 0, 0); //part_type_size(pDeszcz,0.15,0.15,0,0); part_type_gravity(pDeszcz,1,270); part_type_direction(pDeszcz,270,270,0,0); part_type_speed(pDeszcz,8,16,0,0); part_type_orientation(pDeszcz,90,90,0,0,0); part_type_life(pDeszcz,3,5);
-
Cześć, Potrzebuje żywego przykładu.. Mam na myśli deszcz oraz błyskawice losowo które bedą się pojawiać a ekran będzie wtedy migał. Na necie jest troche przykładów..ale jest jeden haczyk.. Chciałbym mieć możliwość taką że zaznaczam fragment planszy i tylko na tym fragmencie planszy ma pojawić się deszcz z błyskawicami. Nie na całości scenerii.. Ktoś wie z was jak coś takiego zrobić? Z góry wszystkim pragnę podziękować za wszelką pomoc.
-
Lina pozioma łamana łukowa pod różnym kątek + fizyka?
Pogromca_kodu77 odpowiedział(a) na Pogromca_kodu77 temat w Pytania początkujących
Dzięki..ale to akurat wiem... Mi bardziej chodziło o to,że gracz jak zaczyna planszę z prawej strony ekranu to jego sprite jest odwrócony w lewo i jak zaczyna grę z lewej strony ekranu planszy to jego sprite jest odwrócony w prawo;-) Już to ogarnąłem... Stworzyłem coś takiego,może komuś się przyda z forumowiczów... obj_bohater create //Ustaw kierunek patrzenia twarz = dir_lewo //Sprawdzanie pozycji gracza if (obj_bohater.x > room_width - 100) {twarz = dir_prawo} dir_dol= 270 dir_gora = 90 dir_lewo = 180 dir_prawo = 0 obj_bohater draw if (twarz = dir_prawo) {image_xscale = -1} -
Lina pozioma łamana łukowa pod różnym kątek + fizyka?
Pogromca_kodu77 odpowiedział(a) na Pogromca_kodu77 temat w Pytania początkujących
Nie ma problemu chłopaki..na pewno to potem zademonstruje tutaj w swoim demku pokazowym gry;-) Poprosiłem faceta żeby mi to szczegółowo w kodzie w komentarzach opisał...sam jestem ciekaw efektu końcowego. mam takie pytanie do was...wiem,że to błahostka..ale opiszę w skrócie o co mi chodzi.. W grze mój sprite bohatera zaczyna grę obrócony w prawą stronę w lewej części ekranu czy to na górze lub na dole...ale mam też kilka plansz,gdzie gracz zaczyna w prawym dolnym rogu lub w prawym górnym rogu przygodę i chciałbym żeby wtedy zaczynał ta plansze odwrócony w lewą stronę... Wiadomo,że to jest czasowe,bo takich plansz tylko kilka jest u mnie w grze gdzie gracz powinien zaczynać planszę odwrócony w lewą stronę. Jak to zrobić? dodać jakiś warunek w danym pokoju? jakiś przykład? -
Lina pozioma łamana łukowa pod różnym kątek + fizyka?
Pogromca_kodu77 odpowiedział(a) na Pogromca_kodu77 temat w Pytania początkujących
Z forum yoyogames :-) W dodatku z Nowej Zelandii -
Lina pozioma łamana łukowa pod różnym kątek + fizyka?
Pogromca_kodu77 odpowiedział(a) na Pogromca_kodu77 temat w Pytania początkujących
Dogadałem się z gościem z yoyogames. Za 40$ zrobi mi te wszystkie liny plus pionowe liny plus fizyka plus ruchome mosty i obiekty ruchome na wodzie:-) także cena 150 ponad zł całkiem rozsądna. -
Lina pozioma łamana łukowa pod różnym kątek + fizyka?
Pogromca_kodu77 odpowiedział(a) na Pogromca_kodu77 temat w Pytania początkujących
Wiesz...jakbym powiedział ile biorę za zbudowanie prostej sieci komputerowej to też mogłaby cena zwalić z nóg:-)wszystko zależy dla kogo:-) -
Lina pozioma łamana łukowa pod różnym kątek + fizyka?
Pogromca_kodu77 odpowiedział(a) na Pogromca_kodu77 temat w Pytania początkujących
Kiedyś używałem path do ruchomych platform;-) potrzebowałem wind..i to całkiem nieźle działało, ale nie wiem czy sobie z tym poradzę;-) to dość złożone zagadnienie... Jak coś to mogę wczesny projekt gry podesłać w gms 1,4;-) -
Lina pozioma łamana łukowa pod różnym kątek + fizyka?
Pogromca_kodu77 odpowiedział(a) na Pogromca_kodu77 temat w Pytania początkujących
Gnysek bezpiecznie by było żebyś nie dawał sobie ręki obcinać,a co najwyżej paznokieć duży od lewej stopy;-) Obstawiam,że na pewno byłyby efekty zadowalające;-) kwestia dogadania ceny no i same chęci;-) -
Lina pozioma łamana łukowa pod różnym kątek + fizyka?
Pogromca_kodu77 odpowiedział(a) na Pogromca_kodu77 temat w Pytania początkujących
Rozumiem...zagadnienie nie jest proste. I wymaga sporej wiedzy programistycznej. Sam próbuje to rozwiązać od pewnego czasu. Może inaczej..ktoś jest wstanie odpłatnie coś takiego wykonać? Bazując na moim silniku gry...?? -
Lina pozioma łamana łukowa pod różnym kątek + fizyka?
Pogromca_kodu77 odpowiedział(a) na Pogromca_kodu77 temat w Pytania początkujących
:-) -
Lina pozioma łamana łukowa pod różnym kątek + fizyka?
Pogromca_kodu77 odpowiedział(a) na Pogromca_kodu77 temat w Pytania początkujących
Konrad-GM Bardzo fajnie to zademonstrowałeś na powyższych rysunkach;-) właśnie coś takiego mam na myśli;-) Szczerze...trochę mnie to przeraża;-) jak mam to ogarnąć... łatwe rzeczy nie ma problemów,ale jak przychodzi takie wyzwanie to ręce opadają.. Skrypt nie jest duży..a mógłbyś zmontować dla mnie działający przykład takiego ruchu? może być z użyciem tego rysunkowego przykładu...pod gms 1.4 Na górze jest mój kod od liny... Będzie łatwiej mi się z tym zaznajomić i przeanalizować..Ja już sobie to poskładam w swoim kodzie gry. -
Lina pozioma łamana łukowa pod różnym kątek + fizyka?
Pogromca_kodu77 odpowiedział(a) na Pogromca_kodu77 temat w Pytania początkujących
Nie nie..w Wormsach mamy coś takiego,że robak wypuszcza linę i ta lina chwyta się skały razem z Robakiem. Tu ja mam już narysowaną linę i na nią nakładam niewidoczny obiekt sprite..w postaci kwadratu rozciągam go i po tym wspina sięi bohater..dając wrażenie jakby wspinał się po linie To działa dobrze na linie prostej poziomej..ale jak wspomniałem problem jest z liną łamaną a nie wspomnę jak już namalowałbym parabolę.. Te liny nie muszą się ruszać,bo to za dużo zabawy..istotne jest to,żeby gracz mógł spokojnie wspinać się po nich lewo prawo...o coś takiego mi chodzi.. Co do kodu liny jest wyżej w moim poście.. Może przydałby się też ruch Y dla zakrzywionych linii lub kabli itp obiektów podobnych wtedy mamy potencjalną kolizję z 4 stron gracza aby nie spadł musi zmienić kierunek aby pozostać na linie/przewodzie... Tu też Gnysek ma ciekawe rozwiązanie z interpolacją liniową. Ktoś byłby wstanie coś z was takiego dla mnie zrobić?wykorzystując np mój kod wyżej z tego postu? Moje pomysły się wyczerpały...nie mam takich zaawansowanych umiejętności. Bardzo dziękuję za każdą możliwą pomoc. -
Lina pozioma łamana łukowa pod różnym kątek + fizyka?
Pogromca_kodu77 odpowiedział(a) na Pogromca_kodu77 temat w Pytania początkujących
Mam tu na myśli wspinaczkę po takich linach.Czyli chwyta się rękami takiej liny i przemieszcza lewo i w prawo.Bohater nie będzie chodził po nich tylko i wyłącznie wspinał się. Rozumiem jak wspomniałeś,że jest to zwykłe wchodzenie pod górkę... Tylko problem polega na tym jak zmusić bohatera żeby wspinał się po takich linach w kształcie paraboli? No i co najważniejsze żeby z nich nie spadł. Mam w powyższym kodzie obiekt niewidoczny obj_lina w postaci kwadratu który rościągam i nakładam na interesujący mnie obiekt na scenerii czyli na linę w kształcie paraboli,a po niej chodzi bohater.Co prawda kąt jego można zmienić ale i tak bohater spada z liny w kształcie paraboli.. -
Lina pozioma łamana łukowa pod różnym kątek + fizyka?
Pogromca_kodu77 opublikował(a) temat w Pytania początkujących
Cześć wszystkim, Próbuje stworzyć poziomą linę po której bohater przemieszcza się lewo prawo. Ten etap udało Mi się osiągnąć...lina działa idealnie na obiektach poziomych bez załamań łuków skosów itp. Jednak chciałbym aby ta lina działała mi również i głównie na linach łukowych i pod różnym kątem. Czy coś takiego bez włączania fizyki w gms 1.4 można osiągnąć? Ktoś byłby wstanie pomóc mi tak przerobić mój kod aby gracz mógł chodzić po takich linach? za wszelką pomoc wam dziękuję z góry.. a tu mój obecny kod liny.. wiadomo obj_gracz create lina = false; obj_gracz step //lina if place_meeting(x,y,obj_lina) && place_meeting(x,y,obj_lina) && place_meeting(x,y-125,obj_lina) && czas <= 0 && (key_check(key.left) || key_check(key.right) && wPowietrzu) { lina = true; vspd = 0; hspd = 0; } //Chodzenie po linie if lina == true { var __hsign = keyboard_check(vk_right)-keyboard_check(vk_left); hspd = min(max(hspd+__hsign*2,-4),4); if __hsign == -1 && !place_meeting(x-40,y,obj_lina) { lina = false; hspd = -1; } if __hsign == 1 && !place_meeting(x+40,y,obj_lina) { lina = false; hspd = 1; } if __hsign != 0 { image_xscale = __hsign; } if __hsign == -1 && !wPowietrzu { lina = false; } if !place_meeting(x,y,obj_lina) || !place_meeting(x,y-125,obj_lina) { lina = false; } } obj_gracz step 2 if lina == true { if x == xprevious && y == yprevious { if sprite_index != spr_bohater_wisinalinie { sprite_index = spr_bohater_wisinalinie; } } else { if sprite_index != spr_bohater_lina { sprite_index = spr_bohater_lina; } } } -
system zmiany broni-ale czegoś brakuje nie działa
Pogromca_kodu77 odpowiedział(a) na Pogromca_kodu77 temat w Pytania początkujących
Już to podgarnąłem dzięki za wskazówki ;-) -
system zmiany broni-ale czegoś brakuje nie działa
Pogromca_kodu77 opublikował(a) temat w Pytania początkujących
Otóż mam system zmiany broni.. Powiedzmy,że prawie działa.Już mówię w czym problem.. Gracz ma do dyspozycji kilka rodzai broni w tym przypadku jest ich 5. jedna z nich jest broń którą ma przy sobie zawsze i jest nieograniczona..więc pozostałe cztery bronie są do zdobycia i mają ograniczoną ilość amunicji.. Żeby gracz otrzymał daną broń dodatkową musi ją sobie znaleźć na planszach.. Wtedy jak znajdzie,to ta broń automatycznie doda się do niego wraz z ilością amunicji jaka jest w kodzie przydzielona.. I teraz tak..problem polega na tym,że mimo,że gracz odnajduje broń dodatkową na planszy to i tak jej nie ma.. widzę tylko,że zmienia się w gui sprite na tą dodatkową broń,ale nadal nie może z niej strzelać.. Nie wiem gdzie jest błąd..czemu mimo implementacji w create broni dodatkowej i w kolizji gracza,gdzie wskazuje w obiekcie jaka broń ma mu się dodać to z tej broni nie można strzelac.. specjalnie zdublowałem ten sam kod na broń co podstawowa z różnica taką,że zmieniłem sprita,żeby się nie pomylić.. Tak jakby czegoś brakowało,że mimo zdobycia broni dodatkowej nie mogę z niej strzelać.. Proszę pomóżcie mi...może wam szybciej pójdzie wyłapanie błędu.. moje pomysły się wyczerpały.. edit..Gnysek przepraszam,że i do Ciebie na PM napisałem...pomyślałem,że jak rzadko tu zaglądasz to zapewne szybciej odczytasz wiadomość prywatną.. obj_player create have = true; ammo = 10; firerate = 15; dmg_min = 3; dmg_max = 5; obj_player step ////Bohater atakuje (nowy kod uproszczony) czas-- var cur = obj_kontroler_gry.current_weapon; // obiekt kontrolny ma indeks aktualnej broni, więc musimy go najpierw pobrać if keyboard_check_pressed(ord('X')) && czas <= 0 && global.wep[cur,e_wep.ammo] > 0{ czas = global.wep[cur,e_wep.firerate]; global.wep[cur,e_wep.ammo]-=1; var ins = instance_create(x, y-17, obj_kula); //bron podstawowa ins.hspeed = image_xscale * 15; ins.dmg = irandom_range(global.wep[cur,e_wep.dmg_min],global.wep[cur,e_wep.dmg_max]); } obj_skrzyniazbronia tu kolizja z graczem(jak najedzie na skrzynie to dostaje tą broń i amunicje) //bron laser global.wep[1,e_wep.have] = true; global.wep[1,e_wep.ammo] += 30; obj_kontroler_gry naciśnięcie przycisku S for(var i=0;i<weapons_total;i++) if keyboard_check_pressed(ord("s")+i) if global.wep[i,e_wep.have] current_weapon = i; Teraz tak tu obj_kontroler_gry perssistent który zawsze w grze towarzyszy.. obj_kontroler_gry Create enum e_wep { have,ammo,firerate,dmg_min,dmg_max } enum e_gun { kulki,laser,strzelba,miotacz,bazooka } current_weapon = 0; weapons_total = 5; var i = 0; //bron kulki global.wep[0, e_wep.have] = false; global.wep[0 ,e_wep.ammo] = 100; //nieograniczona w stepie jest kod na to global.wep[0 ,e_wep.firerate] = 5; global.wep[0 ,e_wep.dmg_min] = 3; global.wep[0 ,e_wep.dmg_max] = 5; //bron laser global.wep[1, e_wep.have] = false; global.wep[1 ,e_wep.ammo] = 30; global.wep[1 ,e_wep.firerate] = 10; global.wep[1 ,e_wep.dmg_min] = 3; global.wep[1 ,e_wep.dmg_max] = 5; //bron strzelba global.wep[2, e_wep.have] = false; global.wep[2 ,e_wep.ammo] = 20; global.wep[2 ,e_wep.firerate] = 15; global.wep[2 ,e_wep.dmg_min] = 3; global.wep[2 ,e_wep.dmg_max] = 5; //bron miotacz global.wep[3, e_wep.have] = false; global.wep[3 ,e_wep.ammo] = 10; global.wep[3 ,e_wep.firerate] = 20; global.wep[3 ,e_wep.dmg_min] = 3; global.wep[3 ,e_wep.dmg_max] = 5; //bron bazooka global.wep[4, e_wep.have] = false; global.wep[4 ,e_wep.ammo] = 5; global.wep[4 ,e_wep.firerate] = 25; global.wep[4 ,e_wep.dmg_min] = 3; global.wep[4 ,e_wep.dmg_max] = 5; obj_kontroler_gry Draw GUI var box_width = sprite_get_width(mask_explosion); //how wide is each box that will display a weapon? for (var i = 0; i < weapons_total; i ++){ draw_x = i * box_width; draw_y = 0; //rysowanie sprite od góry do lewej //jeśli posiadamy obraz każdej broni w tym samym duszku, możemy narysować je wszystkie za pomocą "i" if ( global.wep[i,e_wep.have] == true ) draw_sprite(spr_bron, i, draw_x, draw_y); } tu dodałem jeszcze w dodatkowej broni w create taki wpis obj_laser (broń ma taki sam kod co broń podstawowa różni się tylko spritem) create //bron nr 1 zaczynając indeskacje od 0 gdzie 0 to bron podstawowa kulki gun = e_gun.laser;