Przycinanie do prostokątnego obszaru

środa, 04 Września 2024, 12:54
Czas czytania 1 minuta, 19 sekund
Zgodne z GM: gms2
GM 2024.8+ pozwala na łatwe "przycięcie" rysowania do wybranego obszaru.
Wraz z GM 2024.8 pojawiła się opcja ograniczania obszaru rysowania za pomocą funkcji gpu_set_scissor(x, y, w, h).
Dzięki funkcji gpu_get_scissor, łatwo możemy z kolei zapamiętać obecne ustawienie, co pomaga przywrócić je po zakończeniu rysowania "przyciętej" strefy.

Typowe użycie, polega na zapamiętaniu obecnych ustawień, przycięciu obszaru, narysowaniu tego czego potrzebujemy a następnie na zresetowaniu ustawień.

Kod w tej sytuacji wygląda więc tak:
kodvar _s = gpu_get_scissor();
gpu_set_scissor(50, 50, 50, 50);
// rysujemy
gpu_set_scissor(_s);

Uwaga!
W runtime 2024.8.0.2016 jest bug, który - mimo założenia, że gpu_set_scissor może przyjąć jako argument zarówno jeden struct z parametrami {x,y,w,h} jak i 4 osobne argumenty x,y,w,h - sprawia, że działa tylko ten drugi sposób. W tej sytuacji wystarczy gpu_set_scissor(_s); zamienić na
gpu_set_scissor(_s.x, _s.y, _s.w, _s.h);

Praktyczne użycie:
kodvar _s = gpu_get_scissor();
gpu_set_scissor(50, 50, 100, 50);
// rysujemy
draw_sprite_tiled(pattern_83, 0, mouse_x, mouse_y);
draw_set_color(c_red);
draw_text(45, 45, "Testowy napis");
gpu_set_scissor(_s);

Dzięki czemu, to co normalnie wyglądałoby tak:

Grafika: /upload/ajax/20240904_67960cf1e5097e2970203d575edd96b5.png

Zostanie przycięte tak:

Grafika: /upload/ajax/20240904_748a7a1d9bb30274d79ce02302eb1411.png

Ta technika może być przydatna do rysowania interfejsów, okien dialogowych, czy np. mapy w grze.
Komentarze (łącznie 0):
Nie ma jeszcze żadnego komentarza. Czas to zmienić

Najnowsze wersje GameMakera:

Stabilna
2024.14.1.210 • 2024.14.1.253
wydana 11 dni temu
LTS
2022.0.3.85 • 2022.0.3.99
wydana 362 dni temu
Beta
2024.1400.2.936 •
2024.1400.2.921
 0.18.0

wydana  2 dni temu
= IDE, = Runtime, = GMRT
Użytkownicy online
2 użytkowników aktywnych:
gości: 1, userów: 1
 Xedom
(~ostatnie 15 minut)
Discord
43 użytkownicy online na discordzie:
RogerDodg3r, 🧁Cupcake🧁, Grela, Alice, Nitro Slav, Carl-bot, pABLO, Fox, GibkiKaktus, Dyzmek, HappyOrange, Andrzej Apparition, Wielki Druid, TobiasM (Morgo), Kowu, Kuzyn, GMRussell, OdrzuconyKrakers, m..., r..., Threef, Chell, Destiny, LolikZabijaka, Pako, Dyno, 🆅🅸🆃🅾74🅼, Deusald, szmalu, ZYGZAK, Kandif, 𝕯𝖎𝖆𝖓𝖆, Voytec, m..., bagno, Tidżi, s..., l..., moeglich, Krzysiek1250, h..., Shockah, xVANiLL
Shoutbox
gnysek (16:01, 16.10.25)
To już google decyduje. Mam wrażenie, ze po datach obcina stare treści.
S
Sutikku (10:42, 14.10.25)
Ja jeszcze trafiam na fora jak szukam konkretnych haseł (chociażby wczoraj zepsuty pendrive który się identyfikuje jako Phison 2307 Boot ROM). Teraz projekty opensource często mają społeczności na discordzie i tam jest tona przydatnych informacji ale niedostępna poza discordem. Fajnie by to było wyeksponować
Korodzik (04:24, 14.10.25)
A w sumie to forum się normalnie indeksuje w wyszukiwarkach? Bo ja stwierdziłem, że np. w Google ciężko znaleźć cokolwiek z gmclanowego forum. Większość tematów jest chyba nieindeksowana od dawna...
S
Sutikku (08:44, 13.10.25)
mam niedokończony projekt bota, którego dodaje się do discorda, a on synchronizuje wiadomości z discorda -> na readonly forum. Wtedy treści mogą być indeksowane z wyszukiwarek i łatwo dostępne bez logowania. No ale leży w czyśćcu i czeka.
Wojo (11:52, 11.10.25)
Może kiedyś powróci moda na fora internetowe. Pamiętam w sumie, że czasami aktywność rosła i malała, ale tak pusto to chyba jeszcze nigdy nie było i myślę, że ta cała migracja użytkowników jest zasługą Discorda i zmiany czasów. Po prostu lata dwudzieste spowodowały zmiany trendów w internecie
S
Sutikku (09:06, 08.10.25)
najwyższa pora zopensourcować kod gmclanu!
gnysek (10:33, 06.10.25)
Może tak zrobię :D Jak znajdę czas :D
I am Lord (10:49, 01.10.25)
Tutaj powinna być na głównej jakaś wielka informacja o tym że na Discordzie teraz wszystko jest
Wojo (20:34, 17.07.25)
Discordy i Facebooki pogrzebały erę forów internetowych...
gnysek (10:36, 04.07.25)
Bo wszyscy piszą na discordzie :)
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?