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. Już wcześniej myślałem o draw_text_transformed z parametrem angle. Czyli pozostaje mi odczytywać ze stringa znak po znaku i rysować każdy z osobna. A w jaki sposób mogę odczytać długość stringa ale nie chodzi mi o ilość znaków (string_length(str)) tylko o rzeczywistą długość w pikselach przy wybranym foncie.
  2. A nie możesz nadać dla podłoża odpowiedniej wartości dla direction (lub innej zmiennej w przypadku gdy używasz direction np. do nadawania kierunku dla ruchomych platform) i w momencie kolizji odczytywać tej wartości (other.direction) i odpowiednio korygować nachylenie bohatera? To zadziała pod warunkiem że podłoże składa się u Ciebie z prostych obiektów (prostokąty) bo przy obiektach nieforemnych to się nie sprawdzi.
  3. Powyższe powoduje tylko, że tekst w całości przesuwa się w górę/dół w rytm sinusoidy. Ja potrzebuje efektu gdzie każda z liter będzie traktowana osobno i na ekranie uzyskam "wykres sinusoidy z liter" -wariant 2. W wariancie 3 dodatkowo litery powinny się pochylać pod odpowiednim kątem (czyli ich podstawa powinna być "doklejona" do niewidocznej linii sinusoidy).
  4. To jeszcze tak jak candy pisze spróbuj. Albo o surface poczytaj. Albo jeśli to stałe miejsce to przygotuj odpowiednio spreparowane tło i podmieniaj "w locie".
  5. Zamiast tworzyć obiekt, rysuj samego sprajta na ekranie przez draw_sprite z jakiegoś obiektu odpowiedzialnego tylko za rysowanie.
  6. Kurcze dałbym sobie rękę uciąć że kilka dni temu czytałem jakiś wątek w którym Gnysek pisał o animacjach flash w GMie tylko że problem był pełny ekran (że działało tylko na full screen albo odwrotnie) ale teraz nie potrafię tego znaleźć.
  7. No ale mi konkretnie o to chodzi właśnie aby odczytywać aktualną klatkę czyli wartości od 0-59 :). Pytałem tylko czy sam sobie taki licznik mam zdefiniować czy istnieje jakaś zmienna predefiniowana.
  8. GML _x = (mouse_x-x) - lcdScreenWrapX; _y = (mouse_y-y) - lcdScreenWrapY; // Taka sobie strzałeczka draw_arrow( _x+10, _y+14, _x, _y, 10 ); Zarówno współrzędne myszy jak i strzałka są niemal niezbędne w przykładzie ;) Ok. To rozwiązuje wariant 1 i przy zastosowaniu odpowiedniego fontu LCD na upartego wersje na matrycy LCD (ale nie o to mi chodziło a o rysowanie punkt po punkcie - coś jakby tablica 100x60 a najlepiej większa i włączanie/wyłączanie odpowiednich punktów w celu uzyskania napisu bądź grafiki czyli efektu takiego jak na prawdziwych reklamach LCD) Co do wariantów 2-5 nadal nie wiem jakby się za to zabrać, tzn. już nie o samo wyświetlanie bo akurat Twój przykład to rozwiązuje, ale o samo rysowanie tekstu na sinusoidzie czy na ścieżce. Wariant 5 to przypuszczam zupełnie odrębna historia (czy GM ma wbudowaną obsługę flasha?)
  9. Witam! Czy w GM jest jakaś predefiniowana stała przetrzymująca aktualną wartość kroku (step)? Chodzi mi o to, że dla room_speed=60 wykonuje się 60 klatek na 1 sekundę to czy istnieje jakaś stała która zlicza te kroki w danej sekundzie? Czy mam sobie po prostu zdefiniować zmienna "aktualny_step", nadać jej 0 i wstawić: GML aktualny_step:=(aktualny_step mod room_speed)+1; w step obiektu znajdującego się zawsze na roomie?
  10. Witam! Potrzebuje zrobić przesuwany tekst w kilku wariantach. Tekst ma się wyświetlać na sprajcie telewizora (o wielkości 100x60) lub w wersji trudniejszej na matrycy lcd (większej). Jak zrobić następujące warianty: Wariant 1 Tekst przewija się od prawej do lewej, gdy dotyka krawędzi ekranu tv znika - czyli standardowy scroll tekstu jakie nie raz widać w serwisach informacyjnych. Wariant 2 Tekst przewijany na funkcji sinus, litery cały czas w pionie Wariant 3 Jak w wariancie 2 ale litery "pochylają" się pod odpowiednim kątem Wariant 4 Jak w wariantach 2 i 3 ale tekst przewija się nie po funkcji sinus a po ścieżce (path) Wariant 5 Wyświetlanie na ekranie tego tv animacji flash zrobionej w swishu W wersji na "matrycę LCD" teksty powinny składać się z punktów.
  11. https://forum.gmclan.org/index.php?showtopic=23094
  12. Spoko. Chciałem się tylko upewnić że nic takiego nie ma coby nie wywarzać otwartych drzwi (a raczej malutkich drzwiczek ;) )
  13. A nie ma tam być czasem stringów? GML p=variable_global_get(string(argument0)+string(argument1)+string(r));
  14. Witam! Robię menu składające się z kilku guzików ale nie na obiektach a na sprajtach rysowanych przez draw. Jak powinienem wykrywać kolizję klikania na danym guziku? Czy w poniższy sposób czy też jest jakiś prostszy? 1.rysuję kilka guzików za pomocą draw_sprite, guziki to prostokąty o tych samych wymiarach, origin w lewym, górnym rogu (x1,y1). 2.w obiekcie rysowania (bądź dowolnym innym który jest na roomie) w evencie myszy global_left_pressed pobieram wspólrzędne kursora myszki, 3.sprawdzam po kolei czy wartości x,y myszy znajdują się w obrębie narysowanych guzików menu - robię to ręcznie coś na zasadzie jeśli (xmyszki > x1 i < niż x1+szerokość guzika) AND (ymyszki > y1 i < niż y1+wysokosc guzika) to kliknięto guzik A itd. Pytanie czy nie ma może w GM8 gotowej komendy do sprawdzania klikniecia rejonu x1,y1,x1+szerokosc,y1+wysokosc? A może zrobić to inaczej (nie chcę robić osobnych obiektów na poszczególne guziki).
  15. Docelowo plik gry ma być w postaci jednego pliku exe zawierającego wszelkie grafiki, dźwięki i inne niezbędne elementy więc chyba taki sposób odpada.
  16. No właśnie mnie przed chwilką olśniło i doszedłem do tego samego czyli licznik:=(licznik mod 3)+1; To tak jest jak się nad czymś siedzi a oczy ma się na zapałkach.
  17. a gdzie masz wywolanie tego kodu w kliknieciu myszy? moze dac selected=false przed pierwszym kodem
  18. Witam! Wiem że banalne ale wapniaki tak mają że siedzą godzinę i wciąż nie potrafią wpaść na rozwiązanie. Mam zmienna "licznik" która ma przyjmować wartości 1, 2 lub 3. Wartości zmieniać się mają o 1 po naciśnięciu strzałek lewo (-1)/prawo (+1). Mam warunek dla wciśnięcia strzałki w lewo: {licznik-=1; if licznik < 1 then licznik=3} ,dla wciśnięcia strzałki w prawo: {licznik+=1; if licznik > 3 then licznik=1} I teraz niech mi ktoś to zamieni na 1 komendę z kombinacją dzielenia przez DIV i MOD tak coby nie było warunków "if" bo już mnie powoli złość bierze. EDIT: Nie chciałem nic błędnie sugerować ale widzę że sporo osób czyta wątek ale nikt nie odpisuje, więc podam jak to zrobiłem dla strzałki w lewo: GML licznik:=((licznik+1) mod 3)+1 i to działa ok czyli licznik przyjmuje wartości 1,3,2,1,3,2,1,3,2 itd. ale za chiny nie mogę wpaść na sekwencję odwrotną czyli 1,2,3,1,2,3,1,2,3 itd.
  19. Ale niby gdzie to mam wpisać? Nie bardzo rozumie, na stronie źródłowej czyli na wp.pl (raczej chyba nie bardzo)?
  20. Witam! Mam drobny problem z otwieraniem strony www w grze. Po otwarciu strony poprzez komendę splash_show_web('http://wp.pl',-1); otwiera się wszystko tak jak mi pasuje na pełnym ekranie gry ale niestety strona jest nie do końca aktywna do momentu gdy nie kliknie się na niej w dowolnym miejscu. Ta nieaktywność objawia się tym, że nie działają klawisze strzałek do przesuwania strony w górę/dół oraz także nie jest aktywna rolka w myszy. Trzeba dopiero kliknąć myszą w puste miejsce na stronie (uważając by nie był to jakiś aktywny link bo następuje przekierowanie do innej części strony) i dopiero wszystko działa tak jakbym chciał. Czy można jakoś wymusić by strona od razu była aktywna bez potrzeby klikania myszką?
  21. No w sumie jest to logiczne :). Wrzucam do stepa i będzie ok. Dzięki.
  22. Witam! Przerobiłem obsługę klawiszy z poszczególnych zdarzeń wciskanych klawiszy na jeden skrypt wywoływany w zdarzeniu "any key" i niby wszystko działa tak samo ale nie jest obsługiwane zdarzenie puszczania klawisza. Konkretnie mam obsługę spacji podzieloną na 3 części: 1. moment wciśnięcia klawisza: if keyboard_check_pressed(vk_space) { nadanie wartości zmiennej globalnej "rysuj" = 1, zmiennej "laduj" = global.czas_ladowana (np. 10xroom_speed)} 2. moment trzymania klawisza spacji wciśniętego: if keyboard_check(vk_space) { dekrementacji zmiennej laduj, oraz gdy zmienna laduj dojdzie do 0 wykonanie akcji zaladowania broni} 3. moment puszczenia klawisza: if keyboard_check_released(vk_space) { nadanie zmiennej laduj wartosci -1, zmiennej rysuj 0} No i działa wciskanie klawisza spacji, trzymanie wciśniętego ale nie działa puszczanie klawisza spacji - i nie następuje wyzerowanie zmiennej rysuj ani zmienna ładuj także nie przyjmuje wartości -1. Zauważyłem, że w momencie gdy mam wciśnięty klawisz spacji i równocześnie wcisnę inny klawisz (np. "K") i puszczę spację mając wciąż wciśnięty ten inny klawisz ("K") to obsługa puszczenia klawisza spacji działa ok. Czemu to tak działa i jak temu zaradzić?
  23. Uruchom grę w trybie debugowania potem menu tools->show instances
  24. Witam! Jak najprościej poradzić sobie z taką bolączką. Przykładowo mam tło nazwane domyślnie "background0" i wykorzystany w kilkunastu miejscach w różnych obiektach itp. Chciałbym zmienić nazwę tła np. na "tlo_01" ale wszędzie gdzie używałem w kodzie nazwy background0 także to trzeba zmienić. Niestety GM8 wciąż nie ma automatu na zamianę jak w innych językach ale może ktoś ma na to jakiś szybki sposób poza uruchamianiem gry, zapisywaniem komunikatów kompilatora i ręcznym poprawianiem.
  25. tez nie tak a tak: GML view_xview[0]-256, view_yview[0]-256, view_wview[0]+512, view_hview[0]+512 dopiero takie coś tworzy obszar wielkości widoku nr 0 + margines 256px wokoło. Pierwsze 2 parametry to umiejscowienie obszaru w uk.współrzędnych, kolejne 2 to wielkość samego obszaru (szerokość i wysokość). Może jeszcze prościej: GML margines:=256 view_xview[0]-margines, view_yview[0]-margines, view_wview[0]+(2*margines), view_hview[0]+(2*margines)
×
×
  • Dodaj nową pozycję...