Skocz do zawartości

TO_mek

Użytkownicy
  • Postów

    346
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    1

Treść opublikowana przez TO_mek

  1. Efekt jest taki, że czy to na FF czy na Chromie jest szare okno, które reaguje zmianą koloru na żółty po najechaniu kursorem myszy w lewej dolnej części okna. Kompilator pokazuje: GML "C:\Users\tomek\AppData\Roaming\GameMaker-Studio\GMAssetCompiler.exe" /c /m=html5 /nodnd /obfuscate /wt /html5folder="html5game" /nocache_html5 /o="C:\Users\tomek\AppData\Local\Temp\gm_ttt_42001\GrayScaleFragment" /HTMLRunner="C:\Users\tomek\AppData\Roaming\GameMaker-Studio\scripts.html5.zip" /debug /config="Default" /tgt=32 /tg="C:\Users\tomek\AppData\Local\Temp\gm_ttt_42001\\TextureGroups.txt" /to="C:\Users\tomek\AppData\Local\Temp\gm_ttt_42001\\TextureOptions.txt" /obob=True /obpp=False /obru=True /obes=False /i=3 /cvm /tp=2048 /mv=1 /iv=0 /rv=0 /bv=1224 /gn="GrayScaleFragment" /td="C:\Users\tomek\AppData\Local\Temp" /cd="C:\Users\tomek\Documents\GameMaker\Cache" /optionsini="C:\Users\tomek\AppData\Local\Temp\gm_ttt_42001\GrayScaleFragment.ini" "F:\Documents and Settings\tomek1234\Pulpit\ROBOTKI\Puzzle\przyklady\GrayScaleFragment.gmx\GrayScaleFragment.project.gmx" Saving HTML5 file... C:\Users\tomek\AppData\Local\Temp\gm_ttt_42001\GrayScaleFragment\html5game\GrayScaleFragment.js 0 Compressing texture... writing texture GrayScaleFragment_texture_0.png... Compiling - gml_Object_objImage_Draw_0 Compiling - gml_Object_objOverlay_Create_0 Compiling - gml_Object_objOverlay_Draw_0 Compiling - gml_Object_objFilter_Create_0 Compiling - gml_Object_objFilter_Step_0 Compiling - gml_Object_objFilter_Draw_0 Compiling - gml_Room_roomStart_Create Debug version skipping obfuscation... Done! Stats : GMA : Instance=2, Global=0 ----------------------------------------------------------- executing C:\Users\tomek\AppData\Local\Temp\gm_ttt_42001\GrayScaleFragment\index.html ----------------------------------------------------------- Compile finished: 20:56:32 Debugger pokazuje coś takiego: GML WebGL Enabled! Max Texture Size=null Windows Detected(0) Firefox detected Browser CAN play OGG Loading: html5game/GrayScaleFragment_texture_0.png Loading: html5game/particles/IDR_GIF2.png Loading: html5game/particles/IDR_GIF3.png Loading: html5game/particles/IDR_GIF4.png Loading: html5game/particles/IDR_GIF5.png Loading: html5game/particles/IDR_GIF6.png Loading: html5game/particles/IDR_GIF7.png Loading: html5game/particles/IDR_GIF8.png Loading: html5game/particles/IDR_GIF9.png Loading: html5game/particles/IDR_GIF10.png Loading: html5game/particles/IDR_GIF11.png Loading: html5game/particles/IDR_GIF12.png Loading: html5game/particles/IDR_GIF13.png Loading: html5game/particles/IDR_GIF14.png Loading: html5game/particles/IDR_GIF15.png ImageLoaded: http://127.0.0.1:51268/html5game/GrayScaleFragment_texture_0.png ImageLoaded: http://127.0.0.1:51268/html5game/particles/IDR_GIF2.png ImageLoaded: http://127.0.0.1:51268/html5game/particles/IDR_GIF3.png ImageLoaded: http://127.0.0.1:51268/html5game/particles/IDR_GIF5.png ImageLoaded: http://127.0.0.1:51268/html5game/particles/IDR_GIF4.png ImageLoaded: http://127.0.0.1:51268/html5game/particles/IDR_GIF6.png ImageLoaded: http://127.0.0.1:51268/html5game/particles/IDR_GIF7.png ImageLoaded: http://127.0.0.1:51268/html5game/particles/IDR_GIF8.png ImageLoaded: http://127.0.0.1:51268/html5game/particles/IDR_GIF9.png ImageLoaded: http://127.0.0.1:51268/html5game/particles/IDR_GIF10.png ImageLoaded: http://127.0.0.1:51268/html5game/particles/IDR_GIF11.png ImageLoaded: http://127.0.0.1:51268/html5game/particles/IDR_GIF12.png ImageLoaded: http://127.0.0.1:51268/html5game/particles/IDR_GIF13.png ImageLoaded: http://127.0.0.1:51268/html5game/particles/IDR_GIF14.png ImageLoaded: http://127.0.0.1:51268/html5game/particles/IDR_GIF15.png</span> i trzy obiekty: 100000 (z widocznym kolorowym sprajtem) GML Object objImage x 0.000 y 0.000 depth 0.000 visible true persistent false vspeed 0.000 direction 0.000 speed 0.000 friction 0.000 gravity 0.000 gravity_direction 270.000 sprite_index sprImage image_index 0.000 image_speed 1.000 image_blend -1 image_alpha 1.000 image_xscale 1.000 image_yscale 1.000 mask_index -1.000 path_index -1.000 path_position 0.000 path_speed 0.000 path_scale 1.000 path_orientation 0.000 path_endaction 0.000 path_end 0.000 path_xstart 0.000 path_ystart 0.000 alarm[0] -1 alarm[1] -1 alarm[2] -1 alarm[3] -1 alarm[4] -1 alarm[5] -1 alarm[6] -1 alarm[7] -1 alarm[8] -1 alarm[9] -1 alarm[10] -1 alarm[11] -1 1000000 GML Object objOverlay x 0.000 y 0.000 depth -1000.000 visible true persistent false vspeed 0.000 direction 0.000 speed 0.000 friction 0.000 gravity 0.000 gravity_direction 270.000 sprite_index image_index 496.000 image_speed 1.000 image_blend 16777215 image_alpha 1.000 image_xscale 1.000 image_yscale 1.000 mask_index -1.000 path_index -1.000 path_position 0.000 path_speed 0.000 path_scale 1.000 path_orientation 0.000 path_endaction 0.000 path_end 0.000 path_xstart 0.000 path_ystart 0.000 alarm[0] -1 alarm[1] -1 alarm[2] -1 alarm[3] -1 alarm[4] -1 alarm[5] -1 alarm[6] -1 alarm[7] -1 alarm[8] -1 alarm[9] -1 alarm[10] -1 alarm[11] -1 i trzeci 1000001 GML Object objFilter x 610.000 y 281.000 depth -100.000 visible true persistent false vspeed 0.000 direction 0.000 speed 0.000 friction 0.000 gravity 0.000 gravity_direction 270.000 sprite_index sprFilter image_index 0.000 image_speed 1.000 image_blend 16777215 image_alpha 1.000 image_xscale 3.000 image_yscale 3.000 mask_index -1.000 path_index -1.000 path_position 0.000 path_speed 0.000 path_scale 1.000 path_orientation 0.000 path_endaction 0.000 path_end 0.000 path_xstart 0.000 path_ystart 0.000 alarm[0] -1 alarm[1] -1 alarm[2] -1 alarm[3] -1 alarm[4] -1 alarm[5] -1 alarm[6] -1 alarm[7] -1 alarm[8] -1 alarm[9] -1 alarm[10] -1 alarm[11] -1
  2. Ten pierwszy to przerobka tego drugiego. Niestety pierwszy nie dziala pod GM:S, tzn. działa ale efekt jest zupełnie inny (coś jakby "negatyw" zamiast desaturyzacji). Ktoś może podpowiedzieć dlaczego? W GM8 działa prawidłowo.
  3. Czy ten przykład powinien działać na HTML5?
  4. Witam! W create obiektu inicjującego definiuję zmienna tlousera poprzez GML globalvar tlousera; bez nadania wartosci Następnie w dowolnym miejscu w kodzie daję GML if background_exists(global.tlousera) then background_delete(global.tlousera) Efekt: ___________________________________________ ################################################################################ ############ FATAL ERROR in action number 1 of Key Press Event for L-key Key for object zm_glob_obj: Push :: Execution Error - Variable Get -5.tlousera(100034, -1) at gml_Script_laduj_tlo_scr (line 3) - if background_exists(global.tlousera) then background_delete(global.tlousera) ################################################################################ ############ -------------------------------------------------------------------------------------------- stack frame is gml_Script_laduj_tlo_scr (line 3) called from - gml_Object_zm_glob_obj_KeyPressed_L_1 (line 1) - laduj_tlo_scr(); Czy nie wystarczy sama deklaracja zmiennej globalvar? Musi być nadana wcześniej wartość?
  5. Robię puzzle. Mam zdefioniowanego sprajta z matrycą puzli. Na razie jeden format - 32x32 + po 8px na "wypustki" czyli sprajty 48x48 (wersja najprostsza, łącznie 9 klatek bo 4 rogi, 4 boki i 1 środek). Wczytuję obrazek png (na początek 800x600 ale może później inne formaty) i z niego wycinam kwadraty 48x48 z których następnie wycinam gotowe puzle za pomocą sprite_set_alpha_from_sprite(wyciete_kwadraty_spr, matryca_puzzli_spr).
  6. WItam! Co będzie szybsze? Utworzyć surface o wielkości 800x600, władować do niego raz backgrounda i wycinać z niego w podwójnej pętli kwadraty 32x32 jako kolejne klatki sprajta. czy utworzyć surface 32x32 i ładować do niego kawałek backgrounda (draw_background_part), wycinać kolejną klatkę sprajta i czyścić surface i powtarzać (ilość przejśc w pętli jest taka sama jak wyżej)?
  7. Witam! W jaki sposób wycinać sprity z obrazka wg jakiegoś szablonu? Przykładowo mam zdefiniowany kształt sprajta (czarny, nieregularny, z "dziurami"), otwieram dowolny obrazek png i z niego wycinam kolejne klatki już z "teksturą". EDIT: Sam sobie odpowiem dla potomnych: sprite_set_alpha_from_sprite(ind, spr);
  8. A może ktoś opisać nieco szerzej jak radzi sobie z tymi różnymi rozdzielczościami na andku.
  9. Mam jeszcze pytanko jak z tego uzyskać skorygowane współrzędne docelowe pocisku. Nawiązując do pytania Dawidssa w komentarzach z tego wątku o obliczaniu przyszłej pozycji gracza. "1. Chcemy obliczyć [odległość wieza - przyszła pozycja wojska], potrzebujemy do tego ofc: -pozycji wiezy (mamy) -przyszła pozycja wojska (nie mamy, liczymy) 2. Do obliczenia [przyszła pozycja gracza] potrzebujemy: -kierunku wojska (mamy) -jego prędkości (mamy) -czasu, jaki zajmie pociskowi dotarcie do tej [przyszłej pozycji gracza] - (nie mamy, liczymy) 3. Do obliczenia [czasu jaki zajmie pociskowi dotarcie do tej [przyszłej pozycji]] potrzebujemy: -prędkości pocisku (mamy) -dystansu jaki musi przebyć pocisk, czyli właśnie [odległość wieza - przyszła pozycja wojska] - no jak nieciężko zauważyć, zapętliliśmy się." Akurat przy zwykłym strzelaniu skrypt intercept_course nadaje kierunek pociskom i sparawa zalatwiona ale jak z tego wyliczyc punkt zderzenia pocisku i wojska?
  10. Origin wojska jest 16,26 przy sprajcie 32,32 więc linia się zgadza z ta wyrysowaną. Zresztą dodałem rysowanie czerwonej linii (punkt po punkcie) podczas wykonywania skryptu i linie sie pokrywają wewnątrz zasiegu. PS. Moment bo jednak coś sie rozsypuje dopiero gdy na ekranie jest więcej wież niż 1. Akurat ten skrypt liczy wszystko dobrze więc ja muszę mieć coś w kolejnych wersjach namieszane.
  11. Tak i nieco go zmodyfikowałem ale znowu mam dosyć istotny błąd. Najpierw rysunek: Z lewej fioletowy domek to baza gracza (CEL), z prawej niebieski baza komputera (ATAKUJACY), oraz 3 wieże. Linia to droga od atakującego do celu. Okregi to zasięg strzału wież. Skrypt w obecnej wersji wywoływany jest z bazy wroga. Argument0 okresla tylko ktory skrypt ma byc wybrany z wielu wersji jaka powstala do tej pory. Argument 1 to ID docelowej bazy gracza (fioletowy domek), argument 2 to predkość oddziału (w moim przypadku 0.5 ale dla uproszczenia niech bedzie 1). Kolizja to licznik zliczający (w tej wersji skryptu) ile razy oddzial na drodze bedzie w zasięgu strzału wieży GML if argument0 == 0 then { //****************************** DROGA_W_ZASIEGU calkiem pierwsza wersja - ZMIENIANY var _idc, _o_speed, _dist, _direct,_frames_to_hit, _p_ilosc, _p_moc, _x, _y, _kolizja, _o_speed; _idc:=argument1;//ID Celu _o_speed:=argument2;//Predkosc oddzialu _kolizja:=0; _direct:=point_direction(_idc.x,_idc.y,x,y);//odwrotnie ma znaczenie!!! _dist:=point_distance(_idc.x,_idc.y,x,y);// point_distance(x,y,_id_nno.x,_id_nno.y) // jaka odleglosc dzieli bazy (atakujaca i docelowa) for (i=0; i<_dist; i+=_o_speed){ _x=x-lengthdir_x(i,_direct); _y=y-lengthdir_y(i,_direct); var _nobj; _nobj:=instance_nearest(_x, _y, wieza_obj); // if (distance_to_object(_nobj)<_nobj.zasieg_x) then { if (point_distance(_x,_y,_nobj.x,_nobj.y)<_nobj.zasieg_x) then { _kolizja++; //war_poi+=1; }else { //peace_poi+=1; } } Każdą z wież analizowałem pojedynczo (czyli zasięgi się nie nakładały tak jak na rysynku). I teraz dla wieży środkowej, której średnica zasięgu to równocześnie droga czyli w tym przypadku 416 pikseli skrypt liczy idealnie czyli _kolizja=415 (lub dla _o_speed=0.5 wynik to 831). Dla wieży dolnej długość drogi w zasięgu wynosi dokładnie 286px i tu wynik kolizji też powinien wynosić 285 (lub dla _o_speed=0.5 dwukrotność czyli 571). Niestety wynik w tym przypadku to 164 (w przypadku _o_speed=0.5 wynosi 328). Może mi ktoś wytłumaczyć o co tu chodzi?
  12. Jest perfekcyjnie :) PS.Mam nadzieje, że wiesz co to jest "czeski błąd" :) To taki wkurzający drobny błąd (np. zamias x dasz gdzies y) którego znajdowanie trwa bardzo długo a zwykle jest banalny. Ciekawe jak się u Was mówi na takie błędy.
  13. Witam! Mam taki oto skrypcik na celowanie pociskami do ruchomego celu. Niestety coś mi tu niedokładnie liczy i sporo pocisków nie trafia. Na ten tydzień limit poszukiwań czeskich błędów jest już mocno przekroczony więc proszę o pomoc tutaj. GML zasieg_x:=100; //zasieg wiezyczki p_speed:=1.2; //predkosc pocisku sila:=irandom(2)+1; //moc razenia pocisku gracz:=0; //nr gracza _wrog:=instance_nearest(x,y,oddzial_obj); //cel _wrog.speed=0.5 //predkosc wroga tez jest stala //***************************** CELOWANIE ********************************************************************** var _pocisk, _klatki_trafienie, _dystans, _droga_wroga; _pocisk:=instance_create(x+lengthdir_x(8,direction), y+lengthdir_y(8,direction), pocisk_obj); //wystrzel pocisk _pocisk.gracz:=gracz;//oznacz czyj to jest pocisk _pocisk.sila:=sila;//moc pocisku (ile 1 pocisk zabija przeciwnikow) _pocisk.speed:=p_speed;//1.2 _pocisk.alarm[0]:=zasieg_x/p_speed; //_pocisk.speed;//Zniszcz pocisk po wykroczeniu zasiegu strzalu wiezyczki with (_pocisk) { _dystans = point_distance(x,y,_wrog.x,_wrog.y) // jaka odleglosc dzieli pocisk od obcego _klatki_trafienie = _dystans/speed; // po ilu klatkach pocisk doleci do obcego z predkoscia jaka ma nadany pocisk _droga_wroga:=_wrog.speed*_klatki_trafienie; //odleglosc jaka pokona obcy w czasie w jakim poleci pocisk direction = point_direction(x,y,_wrog.x+lengthdir_x(_droga_wroga,_wrog.direction),_wrog.y+lengthdir_y(_droga_wroga,_wrog.direction)) //korekta kierunku uwzgledniajaca przesuniecie obcego x_docelowe_pocisku:=_wrog.x+lengthdir_x(_droga_wroga,_wrog.direction); //wspolrzedne docelowe w ktorym bedzie obcy gdy pocisk doleci do celu y_docelowe_pocisku:=_wrog.y+lengthdir_y(_droga_wroga,_wrog.direction); na_jaki_zasieg:=point_distance(xstart, ystart, x_docelowe_pocisku, y_docelowe_pocisku);// } naladowane:=false; alarm[1]:=fire_spd; //zalezne od szybkostrzelnosci dziala od 1 per 4 sek do 5 per 1 sek</span></span>
  14. A nie można jakoś wyliczyć tych dwóch punktów czyli poczatku i końca czerwonego odcinka? Potrzebuję to wyliczać jeszcze przed wysłaniem oddziału z pkt "K" do pkt "N" i jeśli straty będą zbyt duże to wybrać inny cel (np ten drugi pkt "N" na przykładowym rysunku). Podobnie obliczam straty na odcinku od punktu przecięcia okręgu do jego środka (w momencie gdy celem oddziału jest jakś wieża czyli punkt "W"), ale to akurat jest prostsze bo gdy wiem, że celem jest wieża to wyliczam straty z długości promienia okręgu (czyli zasiegu strzału wieży, siły pocisków, prędkości tych pocisków i szybkostrzelności).
  15. Musze sprawdzać przed wysłaniem i obliczyc jak długo oddział będzię pod ostrzałem aby oszacować opłacalność ataku. Czyli mam przeliczac sciezkę i dla każdego kroku sprawdzać point_distance dla każdego z wież? Jak to wpłynie na fpsy (zarówno wież jak i wysyłanych oddziałów będzie sporo więcej)?
  16. Witam! Mam kilka obiektów "W" - wieże, które maja kołowy zasięg strzału. W jaki sposób najprościej wyszukać obiekty "W", które podczas wysyłania oddziału z punktu "K" do punktu "N" (linia prosta) będa w stanie trafiać w taki oddział czyli wtedy gdy droga biegnie wewnątrz kolistego zasięgu strzału. Najlepiej zerknąć na rysunek . Czerwona linia to obszar w którym nasz wędrujący oddział jest narażony na strzał. Same obiekty mają niewielkie maski (załózmy, że wielkości ich symbolu "K", "W", "P", "N") więc proste collision_line nie wyszuka obiektów "W". Idelanie byłoby gdyby znaleźć oba punkty przecięcia się zasiegu wieży z drogą oddziału.
  17. UP Witam po dłuższej przerwie. Widzę nowy dział :) Czy nie warto przenieść tego wątku do działu GM Studio?
  18. Jakie KONKRETNIE ograniczenia ma darmowa wersja programu? Czyli ile mogę mieć zdefiniowanych w "resources" skryptów bo to mnie najbardziej interesuje (właściwie to mojego grafika bo to on ma licencje GM8.1 i robi na free studio, nie ja). Obiektów, 10?, mniej, więcej? Obiektów ustawionych na roomie max DWA - to akurat sprawdzone, ważne że przynajmniej jeden.
  19. Jak wyłączysz to jest tak jakby nie istniały. Napisz wiecej w czym problem, moze instance_deactivate_region, instance_activate_region wystarczy.
  20. Proszę bardzo . To mój debiut na YT :)
  21. Ok dodałem wersję HTML5 beta (link na górze). Tak czy siak jak ktoś ma konto na steamie to poproszę o "lajka" (już bez zbędnych ceregieli z pobieraniem GM:Studio itd.)
  22. Tytuł: Just On Time Gatunek: symulator Opis: Święta się skończyły ale ekipa Świętego Mikołaja ciężko pracowała. Zdążyli ze wszystkim na czas. Teraz czas na mycie. Zdążysz na czas? Musisz umyć wybraną postać jak najdokładniej w jak najkrótszym czasie. Kolumna z myjką porusza się najpierw w lewo a po osiągnięciu lewej krawędzi powraca w prawo, Ty sterujesz prędkością. Punkty zdobywasz myjąc dokładnie (zielony wskaźnik). Także za mniej dokładne mycie zdobywasz punkty (żółty wskaźnik). Uwaga zbyt bliski kontakt z myjką kończy się punktami karnymi (czerwony wskaźnik). Sterowanie: ekran wyboru: zmiana postaci poprzez kliknięcie lewym klawiszem myszy na miniaturce postaci wybr postaci poprzez kliknięcie lewym klawiszem myszy na dużej postaci podczas gry: kursory lewo prawo - ruch kolumny kursory góra dół - ruch myjki spacja - zatrzymanie kolumny P - pauza S - dźwięk wł/wył lub użyj myszy klikając na ikonach. Gra powstała na konkurs YoYoCompDec2012. Duża prośa o pozytywne głosy na Steamie (i o brak negatywów ;) ) Download: adres z plikiem gry wersja beta HTML5 Rozmiar pliku: 3,4MB Autorzy: Programowanie: Retrospect Workshop Fabuła: Retrospect Workshop Grafika: Retrospect Workshop Muzyka: Retrospect Workshop Screeny: GAMEPLAY PS.Aby zagrać należy zalogować się na Steamie, kilknąć na linka do gry a następnie na guziku "Subskrybuj" i pobrać darmową wersję GM:Studio. Podaczas uruchamiania GM:Studio Steam wybrać PLAY i pojawi się lista "zasubskrybowanych" gier. PS2. Dodałem wersję beta HTML5 więc nie trzeba wchodzić na Steama by zagrać.
  23. A wytłumaczy mi ktoś jak zaktualizować GM:Studio Standard (free) ze Steama do wersji PRO. Mam swój kod ale nie wiem gdzie go wklepać. GMa nie kupowałem poprzez steama tylko sporo wcześniej, tradycyjnie. EDIT: OK już wiem. To trzeba nie z poziomu GM zrobić tylko bezpośrednio ze steama poprzez "dodaj gre" i tam się podaje kod licencyjny GMa (ten pod steama).
  24. Czy wersja na Steamie działa tak, że na dowolnym kompie na ktrym zaloguje się na swoje konto steam będę mógł używać także GM:Studio w takiej wersji jaką zakupiłem?
×
×
  • Dodaj nową pozycję...