Skocz do zawartości

ereg

Użytkownicy
  • Postów

    253
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez ereg

  1. mozna tez cos takiego GML Information about object: o_hrac Sprite: sprite0 Solid: false Visible: true Depth: 0 Persistent: false Parent: <no parent> Mask: <same as sprite> Create Event: execute code: _timer=0; _time_pause=1; // pause sec Step Event: execute code: if (_timer<current_time) {_timer=-1; }; // reset timer Mouse Event for Left Released: execute code: if (sprite_index==sprite0 && _timer==-1) { _timer=current_time+_time_pause*1000; sprite_index=sprite1; } else if (sprite_index==sprite1 && _timer==-1) { _timer=current_time+_time_pause*1000; sprite_index=sprite2; } else if (sprite_index==sprite2 && _timer==-1) { _timer=current_time+_time_pause*1000; sprite_index=sprite3; } else if (sprite_index==sprite3 && _timer==-1) { _timer=current_time+_time_pause*1000; sprite_index=sprite4; };
  2. zazwyczaj wszystko co chcesz miec w roomu masz juz w grze, zatem wystarczy zapisac i pozniej wczytac polozenie instancji v roomu. uzyj funkce: file_ room_add jak bys chcial dodawac tez nowe objekty to v GM8 nie problem z plikow zrobic znajdzies je v GM help *_add zapisz do search i wybieraj room , object, event lub inne co cie interesujom
  3. jasne o 1, ale mozna rozbudowac za pomoco datowych structur(ds_ ), podobno jak radzi ci Threef. jak nieznamy twych zamiarow dokladnie, to moezemy nawymyslac sobie co my chcemy, ze? co dodac, datove structury so fajne :)
  4. malo informacji co do losovania room door, ale jak by chodzilo tylo o powrot do ostatniego rooma to chyba vystarczy zapisac tego rooma przed GML // colission o_player s o_door global._last_room=room; room_goto(choose(room1, room2, room3, room4)); lub bez global do o_player jesli jest permamentny
  5. fajne rozwiozanie jest zrobic tylko jeden objekt o_drzwi i dalej w roomie dawac potrzebno ilosc instanci o_drwzi dalej za pomoco ctrl+RMB vyvolac menu i creation code tam mozes zapisac instancji o_drzwi do creation code GML _cel=_ime_celowego_roomapotem objektu o_drzwi dac do colision z o_playerGML // jesli niema difinicji _cel to definuj na room0 if (!variable_local_exists("_cel") ) { _cel=room0; }; // jesli jest room z zmiennej _cel to idz do tego rooma if room_exists(_cel) { room_goto(_cel); } else { show_message("zle ime celovego rooma dla instancji nr."+string(id)+"# ustawiam defaultny room0"); _cel=room0; }; jasne ze jezeli defaultny room0 niemasz to zmien nazwe na inny defaultny room. teraz mozes zaraz po ustawieniu objektu o_drzwi do rooma da instanci o_drzwi jej unikalny room create v ktorym jej mowisz dokod ma zawiesc gracza. niejestes ograniczony licboz dozwolonych drzwi i roomow. niem problemu miec te same drzwi(wiodoce do tego samego rooma. a jak zapomnisz dac drwiam cel to nadal so funkcjonalne( cel majo do defaultnego rooma) :) message dalem bys wiedzal jak bys dal zle ime rooma, ale mozna wywalic precz. nienapisalesz jako verzie GM uzywasz to dodam, ze toto jest pisane do GM8.0(8.1 chyba tez), ale GMS naprzyklad ma miec odwrocony order creation. v GMS by mialo byc 1. instance creation 2. room instance creation co jest duuzo lepse niz jak jest v GM8 gdzie musze miec "if (!variable_local_exists("_cel") ) { _cel=room0; };" by nie przepysywac juz v roomie danej zmiennej :)
  6. jak by interesowalo kogos innego to zrobilem przyklad :) wystarczy wrzucic do draw eventu GML if ( keyboard_check_released(vk_space) ) { x1=get_integer("dej x1",""); x2=get_integer("dej x2",""); }; for ( if(x1<x2){x3=-5;} else {x3=5}; x3*sign(x3)<15; if(x1<x2){x3-=1} else {x3+=1} ){ draw_text(room_width*.5+22*(x3-5*sign(x3)), 30, string(x3)+", " ); }; draw_text(2, 5, " x1= "+string(x1)+" x2= "+string(x2)+" x3= "+string(x3) + " SPACE wloz x1 and x2, jesli x1<x2 pak wyniky beda ponizej zera" ); a v create eventuGML x1=1; x2=2; mozna tez modyfikowac, tylko po IF wzsystko musi byc w {} GML for ( if(x1<x2){x3=-5; if(x1<x2){x3=-5;}; } else {x3=5}; x3*sign(x3)<(15); if(x1<x2){x3-=1} else {x3+=1} )do warunku konca for niebylo mozna dac if :)
  7. jezeli tak szybko stracili wszystci zapal, to chyba YXE nawet dobrze zrobil. co pali sie nagle, tez nagle konczy <_< fajne jest miec wszystko zaraz, bez pracy i takie jakie sobie sie wymarzylo, ale zycie takie niejest... skoda ze nie, ale trudno :) moze i dzielo YXE niebezdzie takie jakie sobie vymarzylem, ale dostosuje sie. jezeli ktos zrobi drugi symulator robotov, tez sie dostosuje :) u nas sie mowi " darovanemu koni na zuby nehled" BTW: probowalem tlumaczenia v google i nic moc mi sie niepodobalo. sam bym tlumaczyl "ofiarowanemu koniu na zeby niepatrz" znaczenia chyba nietrza tlumaczyc ;-)
  8. mysle ze miec zal do YXE o termin, sposob wykonania jest glupi pomysl. jak by on nie rozpoczal prace, to kto by roboty zrobil? jest ktos? to moze sie pokazac swo praco :) sam mam obawy jakie dzielo YXE bedzie, ale tez jestem ciekaw i trzymam kciuki :thumbsup:
  9. jak by robil gre tylko na pc to shadery i inne rzeczy by byly fajne :) tylko mam obave by to sie ruszalo na slabych urzodzieniach. moze dodam pare linkow na obrazky by pokazac co mialem na mysli, kdy mowilem o oziwieniu czerwonych murow - obr1 nietrzeba miec cegly 100% nowe - obr2 a obr3 i wtedy kdy sie powtarzajo te same cegly mozna sobie pomoc drobnymi sprite, ktore naruzsajo monotonnosc czerwonego muru - obr4 mozna tez dodac ozdobne sprite ruszajoce sie byle jak, lub lepiej ruszajoce sie wedlug avatara gracza :) oczy lub reka szkieletona wycognieta czasz od czasu po avatara dobrze odwruci uwage gracza od monotonnych cegielek
  10. uzyj image_angle=irandom_range(1, 360) mozna tez jesce odwrucic sprite robioc jego mirror na osi x lub y GML draw_sprite_ext(sprite_index, irandom(image_number) , x, y, choose(-1,1), choose(-1,1),c_white, irandom_range(1, 360), 1); // losovy subimage mirror x mirror y random angle</span>
  11. bardzo ci dziekuje, dawno sie tak nienasmialem. nic w zlym :) rozchmurzylesz moj zly dzien problem jest prosty , pomysl co program robi GML losowy_kierunek = choose(1,2,3,4); //vybiera kierunek switch(losowy_kierunek) // stosuje wybor kierunku do case { case 1: y-=1;//W górę if y=-64 then break; //przesuwa się w lini prostej o 64px i konczy case // tu mowi jesli JEST y inne niz -64 to zrob case 2, inaczej ukoncz case 1 case 2: y+=1;//W dół if y=64 then break; // tu mowi jesli JEST y=64 to zrob case 3, inaczej ukoncz case 2 case 3: x-=1;//W lewo if x=-64 then break; // tu mowi jesli JEST x powyzej -64 to zrob case 2, inaczej ukoncz case 3 case 4: x+=1;//W prawo if x=64 then break; // tu mowi jesli JEST x powyzej -64 to zrob case 2, inaczej ukoncz case 4 dalej nic niema to i tak konczy } z tego wychodzi, ze jezeli y niejest na -64 to niemoze isc w gore i jesli x niejest na -64 tez niemoze isc do lewa niemogo dlatego ze w rzeciwistosci ido! ALE zaraz wracajo do punktu wyjsca :) x-1+1=x dlaczego rusza tylko w dol lub? dlatego ze jak jest 3 to y=y1 i x=x+1-1 dlaczego rusza tylko w dol w prawo? dlatego ze jak jest 4 to x=x+1 chyba chciales zarownac ruch objektu do siatky, ale break v if ci pokzyzowal plany. jezeli das jesce jeden break; pod koniec case to x, y poprawnie zmieni sie o 1 pix, ale ruch w siatce to co innego :)
  12. chyba bedzies musiec duzo poczytac o GM i polecam GML. tak jak masz gre zrobiono (i jedynego objektu player i v background jest grafika background + platform ) zrobic gre bardzo ciezko. teoretycznie by mozna, ale znaczy to tak duzo pracy z gml i datowymi strukturami+szynchronizacjo playera i backgroundu, ze nikt tak nierobi. wiecej wad niz zalet. zwroc tez uwage, ze to prawie tilesety so na tworzenie backgroudu z powtarzajocych sie ulamkow obrazka. potem mozesz skladac background jak puzzle :) bezdziesz musiec zrobic to: - poduczyc sie na innych przykladach platformowek - doloczyc dalsze obiekty ( platformy, nieprzyjaciele, sztrzaly itp. ) - wlozyc duzo pracy do nauczenia i wykorzystania tej wiedzy :) na foru tez znajdzies duzo informacji a jak bezdie jakis konkretny problem ludzie pomogo v zrozumienu mas fajny cel dla poczotkujocego taki akurat. to tez zyce milej zabavy przy dalszej pracy nad gro.
  13. poczytaj sobie o eventach v help. pasek rysuje sie v draw evencie. komendy draw v innym eventu nic nierobio jak nadal niewiesz to radze sciognij jakis prosty przyklad a kumaj nad nim :) liczenie hp mozes umiescic w step, lub innym evencie ktory zmiena hp niekumam dlaczego wymazali te strone ( http://wiki.yoyogames.com/index.php/Order_of_events ) mysle ze vyjasnienie jak ido eventy po sobie bardzo wazna informacja. :( w skrocie(na wyzej podanej stronie bylo napisane duuuzo wiecej) Order_of_events: Begin step events Alarm events Keyboard, Key press, and Key release events Mouse events Normal step events (now all instances are set to their new positions) Collision events End step events Drawing events
  14. hmm myslalem ze juz tu pisalem, ale moze blednie odeslalem posta. jaky GM uzywasz? z_, sprit, _stoi so zmienne, lub maja zmontowac ime zmiennej, ktora da ci potrzebnego sprita? zrobic da sie duzo rzeczy, ale niechce zgadywac co dokladnie ci trzeba, bo sposobow jest wiecej
  15. coraz lepsze :) zaczyna mi sie podobac moze tez zwroc uwage na cegly gdzie sie niegra, chodzi o duze plochy a te jest monotonne/nudne. wystarczy tylko troszecke na miejsca kdzie jest skupionych duzo czerwonych cegiel dac tez cos. moze byc i tylko troche inaczej uskladanie cegiel, kosciotrup zamurowany itp. :) popraw skoky, miely by byc ladne, plynne i przyjemne :) acha a jesce bym sporzal na ten pixel nad kazda cegla, ma ten sam kolor i ewokuje wyglod tafli na dachu. chyba popraw temu 1 pixlu color
  16. jak ktos niewie to moze byc inspiracija tylko pytanie: napewno ma byc GML image_single = image_index div 3000; switch(image_single) a nie? GML image_index = wzrost div 3000; switch(image_index) moze jesce, uzywas image_single i moze ci dzialac poprawne, kdyz duplikuje sie v GM automatycnie do image_index i odwrotnie, ale z tego czytalem na forach juz sie go nieuzywa. image_single nie wpelni zrozumialem, bo niejest ta sama zrecza jako image_index. kdy da sie mu wiekszy numer niz jest image_number, to liczba zmiesia sie az do zakresu 0-image_number. tu sie zatrzymuje, na liczbie GML image_single mod (image_number+1) ma tez niedzialac poprawnie v HTML5 mysle ze warto znac fakty, jak sie uzywa cos co wieksosc nieuzywa :)
  17. image, sprite, mask, backgroung, object itp. _index wszystkie przechowujom referencje(id) v GM lub grze image_index ma id aktualnie pokazywanej klatky jezeli chodzi o ilosc klatek(sub images) v sprite to uzyj image_number nie wpelni rozumiem o co chodzi z tym vybieraniem x+0 a x+6. na zasadzie czego vybierasz. sproboj tak GML _vybrany_numer_klatky= irandom_range(0,image_number); image_index=_vybrany_numer_klatky; EDIT: HE HE inverzja wyboru by byla tak latwa, ze chyba nie o to ci chodzilo GML image_index=image_number-_vybrany_numer_klatky;
  18. lepsze, jesce fajniej by bylo zrobic cos z monotonnosco ciegielek. - 2-3 typy tych samych cegielek, ale troche inaczej narysowanych by dodac troche chaosu - tez nieskodzilo by mury ozywic jakimis innimi objektami. trzeba dziury v murze(przyzwoite :) ), okna, cokolwiek co mozna spotkac v otoczeniu gry.
  19. czesto mozna tez uzyc odpowiednio ustawiony draw_sprite_ext
  20. moze zrob cienie, tak jak radzili Adriann a HuderLord ? bedzie duzo ladniej :thumbsup: i dla wszystkich kolorow cegielek
  21. na podstawie ciekawych obserwacji Zrobiłem kilka zmian i przesłane do wersji internetowej nowego Ghost Train v1.24 zmiany v1.24: - Dodano podstawowy poradnik. inwokacja i zakończenie ćwiczenia F12 - Poprawiono tekst w pomocy - Poprawiono tabeli zakończeniu gry - Doliczonym czasie gry + wyświetlić wyniki Samhain vs dzieci - Dodano omezezeni zadane symbol dłoni Kosten na Samhain. Teraz, jeśli strony się na czerwono, to nie ma wpływu na symbol - Pumpkin teraz miga naprawdę singalizuje, że nie jest w zasięgu żadnego ducha, gdy duch nie miga blisko i gracze mogą od razu zobaczyć, że dyni z rozzsveci. świecące dynie nie jest natychmiastowa. - Minor Kod cleanup EDIT: zmiany v1.25: - Naprawiono błąd w zachowaniu dzieci. (nie rozwiązany jakiś parametr testowego)
  22. ereg

    Dno

    v GM help jest troche srogi tu jest malutki przyklad GML Information about object: o_wall Sprite: sprite0 Solid: false Visible: true Depth: 0 Persistent: false Parent: <no parent> Mask: <same as sprite> Create Event: execute code: // ustawienie parametrow _spriteid=sprite4 //dowolny sprite _textid=sprite_get_texture(_spriteid,-1); _xsta=x; _ysta=y; _xend=_xsta+sprite_get_width(_spriteid); _yend=_ysta+sprite_get_height(_spriteid); _spd=0; _sizekoef=8; _spdkoef=.2 Draw Event: execute code: // falowanie sprite _spd+=_spdkoef; var _offs, _offc; _offs=sin(_spd); _offc=cos(_spd); draw_set_color(c_white); draw_primitive_begin_texture(pr_trianglestrip,_textid); // uzywasz texture na tyle triangli ile trzeba draw_vertex_texture(_xsta+_offc*_sizekoef,_ysta+_offc*_sizekoef,0,0); draw_vertex_texture(_xsta+_offs*_sizekoef,_yend+_offc*_sizekoef,0,1); draw_vertex_texture(_xend+(_offs*1.8)*_sizekoef,_ysta+_offc*1.2*_sizekoef,1,0); draw_vertex_texture(_xend+(_offs*1.2)*_sizekoef,_yend+_offs*1.8*_sizekoef,1,1); draw_primitive_end(); // original rozmiar sprite draw_set_color(c_black); draw_rectangle(_xsta,_ysta,_xend,_yend,1); _offc a _offs uzyj dowolnie :) to tylko przyklad mozliwosci jak ukladac triangle
  23. ereg

    Dno

    jakies proste falowanie mozna by tez zrobic za pomoca : GML draw_primitive_begin_texture(kind,texid) Start a primitive of the indicated kind with the given texture. draw_vertex_texture(x,y,xtex,ytex) Add vertex (x,y) to the primitive with position (xtex,ytex) in the texture, blending with the color and alpha value set before. xtex and ytex should normally lie between 0 and 1 but also larger values can be used, leading to a repetition of the texture (see below). draw_vertex_texture_color(x,y,xtex,ytex,col,alpha) Add vertex (x,y) to the primitive with position (xtex,ytex) in the texture, blending with its own color and alpha value. draw_primitive_end() End the description of the primitive. This function actually draws it. uzywajac naprzyklad kind= pr_trianglestrip i funkcji sin
  24. fajnie, spisuje sobie wszystkie uwagi(blady lub grywalnost) i jak bedzie wiecej czasu, to dodam do nowej versii. dzieki :)
×
×
  • Dodaj nową pozycję...