Skocz do zawartości

Pogromca_kodu77

Użytkownicy
  • Zawartość

    28
  • Rejestracja

  • Ostatnia wizyta

Reputacja

0 Neutralny

O Pogromca_kodu77

  • Tytuł
    Chicken
  1. 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..
  2. 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);
  3. 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
  4. 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;-)
  5. 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);
  6. 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.
  7. 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}
  8. 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?
  9. Lina pozioma łamana łukowa pod różnym kątek + fizyka?

    Z forum yoyogames :-) W dodatku z Nowej Zelandii
  10. 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.
  11. 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:-)
  12. Lina pozioma łamana łukowa pod różnym kątek + fizyka?

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

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

    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...??
×