Skocz do zawartości

Pogromca_kodu77

Użytkownicy
  • Zawartość

    32
  • Rejestracja

  • Ostatnia wizyta

Reputacja

0 Neutralny

O Pogromca_kodu77

  • Tytuł
    Chicken
  1. bardzo duża sceneria i kilka miejszych obrazków tła(parallaxa)

    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ę...
  2. bardzo duża sceneria i kilka miejszych obrazków tła(parallaxa)

    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ł...
  3. Obstawiam Adobe illustrator ale mogę się mylić..Bardzo ładna oprawa graficzna;-) chętnie zagram w tą grę..
  4. 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ąć...
  5. 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..
  6. 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);
  7. 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
  8. Lina pozioma łamana łukowa pod różnym kątek + fizyka?

    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;-)
  9. 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);
  10. 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.
  11. Lina pozioma łamana łukowa pod różnym kątek + fizyka?

    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}
  12. Lina pozioma łamana łukowa pod różnym kątek + fizyka?

    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?
  13. Lina pozioma łamana łukowa pod różnym kątek + fizyka?

    Z forum yoyogames :-) W dodatku z Nowej Zelandii
  14. Lina pozioma łamana łukowa pod różnym kątek + fizyka?

    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.
  15. Lina pozioma łamana łukowa pod różnym kątek + fizyka?

    Wiesz...jakbym powiedział ile biorę za zbudowanie prostej sieci komputerowej to też mogłaby cena zwalić z nóg:-)wszystko zależy dla kogo:-)
×