Ten artykuł został stworzony dla starszych wersji GameMakera i może nie być aktualny.

Zmiany w GM 8.1

Wtorek, 12 Kwietnia 2011, 22:12
Czas czytania 2 minuty, 54 sekundy
Zgodne z GM: gm8
Co nowego w GM 8.1
Artykuł zawiera listę znanych zmian, pełna lista pojawi się po wydaniu publicznej wersji programu!
Artykuł uwzględnia zmiany do wersji 8.1.59

Edytor plansz
Zmiana prawego klawisza myszy - otwiera menu, zamiast kasować, do kasowania trzeba przytrzymać Ctrl.
Usuwanie już rozmieszczonych obiektów z planszy jest domyślnie wyłączone - można je więc nakładać na siebie.
Zoom w room editorze. Poza guzikami w edytorze, rolka myszy przybliża i oddala, wciśnięcie środkowego klawisza pozwala przesuwać planszę.
Można ustawić w opcjach defaultowe tło dla room editora, gdy wyłączymy rysowanie tła.
Gdy używamy przeźroczystego tła, widoczna jest szachownica jak w edytorze grafik.
Dodatkowa opcja w menu (PPM), pozwalająca edytować obiekt.

Edytor grafik
Zoom za pomocą rolki w myszce, przesuwanie za pomocą środkowego przycisku.

Edytor ścieżek
Przesuwanie za pomocą środkowego przycisku myszki.

Edytor kodu
Przyspieszono kolorowanie dłuższych skryptów (działa płynnie do 1000 linii).
Można wyszukiwać dowolny tekst występujący w kodzie w Skryptach/Obiektach/Planszach/Liniach czasu/Wyzwalaczach.
Można włączać wyłączać podpowiadanie kodu przyciskiem na górze edytora.
ESC zamyka aktualne podpowiedzi.
Można zmienić kolor tła.
Dodanie /// w pierwszej linii Execute Code w obiektach powoduje wyświetlanie komentarza w miejesce nazwy tego klocka.

Przekazywanie argumentów
Od wersji 8.1.59 zmieniono obsługę argumentów skryptach. Jeśli w skrypcie mojSkrypt() pojawia się zmienna argumentX, do skryptu mojSkrypt() nalezy podać X+1 argumentów. Np. dla argument2, trzeba podać trzy argumenty. Argumenty są więc teraz OBOWIĄZKOWE.
Aby uzyskać argument opcjonalny, nalezy używać tablicy argument[Y]. Warunek jest jeden - Y nie może być większy/równy niż zmienna argument_count, która przetrzymuje liczbę przekazanych argumentów:
kodif argument_count > 4 { // jest co najmniej 5 argumentów
// mozna teraz zrobić coś z argument[4];, czyli piątym argumentem
}
Przypominam, że tablice numerowane są od zera, zatem ostatnim argumentem opcjonalnym nie generującym błędu GM jest argument[argument_count-1];

Inne
Zmiana nazw zasobów jest teraz pod klawiszem F2. Ctrl+R wyszukuje zasoby, Ctrl+F działa tylko w edytorze kodu i pozwala na wyszukiwanie.
GM 8.1 zapisuje pliki jako GM81 a nie GMK.
Dodana funkcja draw_self() - wykonuje kod draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_blend,image_angle,image_alpha);
Zmienne os_type i os_device dla osób chcących wydać grę na innych platformach niż PC.
BuforZ w 24 bitach.
Sprzętowe T&L dla szybszego generowania grafiki.
Dodano d3d_light_define_ambient(kolor) aby ustawić ogólny kolor otoczenia.
Dodano dot_product(x1,y1, x2,y2), dot_product_3d(x1,y1,z1, x2,y2,z2), point_distance_3d(x1,y1,z1, x2,y2,z2).
Poprawiono rendering czcionek.

Kodowanie
GM 8.1 został napisany w najnowszej wersji Delphi, zatem kodowany jest w UTF, co powoduje pewne problemy. O ile można już korzystać z prawego Alta do wpisywania polskich znaków diaktrycznych (ą, ę) i działało to w wersji do 8.1.53 to niestety źle generowane były czcionki - powyżej tej wersji czcionki już generują się dobrze, ale kodowane w edytorze się zmieniło i tych znaków nie uzyskamy... niestety ten bug prawdopodobnie zostanie naprawiony w kolejnych wersjach, 8.1.59 jeszcze tej poprawki nie uwzględniał.
Tekst jest poprawnie pobierany przez get_string(), oraz poprawnie wyświetlany dla gier przekonwertowanych z GM8.0.
Komentarze (łącznie 13):
K
Kofel (Pią., 15 Kwi. 11, 15:47)
#1

Użycie UTF powoduje problemy? Pierwsze słyszę. To chyba programiści używający Unicode w YoYo są niepełnosprawni.

gnysek (Pią., 15 Kwi. 11, 16:33)
#2

Tak, bo nowe delphi uzywa UTF, a GM nie. I tu się robi konflikt. Zauważ, ze np. czcionki nadal używają 256 znaków, czyli jakby ASCII.

Muuuuczek567 (Pią., 15 Kwi. 11, 16:52)
#3

Do czego służy dot_product? Jak działa? I jaką wartość zwraca?

HuderLord (Pią., 15 Kwi. 11, 17:14)
#4

do wektorów

Muuuuczek567 (Pią., 15 Kwi. 11, 20:30)
#5

Dzięki, naprawdę mi pomogłeś :/
Co trzeba podać w argumentach? Nie mam bladego pojęcia o działaniach na wektorach.

Dawidds (Pią., 15 Kwi. 11, 20:42)
#6

Wpisz sobie dot product w google albo na wiki a nie się pytasz na forum o programowaniu w Game Makerze.

HuderLord (Pią., 15 Kwi. 11, 20:44)
#7

To jest iloczyn skalarny 2 wektorów. Podajesz x y i z 2 obu wektorów. Funkcja wymnoży x1 z x2, y1 z y2, z1 z z2 i to wszystko razem do siebie doda. Np: dot_product(1,2,3,4) = 1*3 + 2*4 = 11

Muuuuczek567 (Pią., 15 Kwi. 11, 20:54)
#8

No to w tym będę musiał się podszkolić. Nie wiem, czy w gimnazjum jest iloczyn skalarny w podstawie programowej, a coś czuję, że raczej nie.

gnysek (Pią., 15 Kwi. 11, 21:33)
#9

No, nawet na studiach to pewnie dopiero na matmie jest, bo ja tego nie kojarzę, albo tylko na wykładach było.

TheMarcQ (Pią., 15 Kwi. 11, 21:39)
#10

"Zmienne os_type i os_device dla osób chcących wydać grę na innych platformach niż PC" Jak to ma dzialac?

Jaklub (Pią., 15 Kwi. 11, 21:50)
#11

np. dla minisów sony zablokujesz multi, bo sony jest gupie!1

HuderLord (Pią., 15 Kwi. 11, 21:54)
#12

U mnie na 1 semestrze studiów to było.

HuderLord (Pią., 15 Kwi. 11, 22:52)
#13

A nie sorry, sprawdziłem w GM tą funkcję nie zwróciła 11 tylko 0.98, tamta funkcja to iloczyn skalarny geometryczny czyli zwraca cosinus kąta między tymi wektorami. To w takim razie dot_product(1,2,3,4) = tiny.pl/hd8bb

Najnowsze wersje GameMakera:

Stabilna
2024.2.0.132 • 2024.2.0.163
wydana 15 dni temu
LTS
2022.0.2.51 • 2022.0.2.49
wydana 154 dni temu
Beta
2024.400.0.516 • 2024.400.0.537
wydana  5 dni temu
= IDE, = Runtime
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
Shoutbox
I am Lord (19:15, 17.03.24)
6h mam na to hmmm
I am Lord (19:06, 17.03.24)
Ale temat fajny
gnysek (01:33, 13.03.24)
Powinno działać, jest w kodzie sortowanie wg. najbliższego startu :)
Uzjel (21:59, 11.03.24)
Nie, ale za pierwszym razem zrobiłem fuckup, że było "Tura testowa" X_X
I am Lord (16:58, 11.03.24)
A co Uzjel już masz nawymyślane 100 tematów? 😅
Uzjel (20:08, 10.03.24)
@gnysek a jak bym dodał kilka lig na raz to walnie?
Uzjel (20:08, 10.03.24)
Liga będzie zawsze od piątku 16:00 do poniedziałku 23:59, zawsze w środku miesiąca.
gnysek (08:48, 10.03.24)
Tak, to też jest do poprawy X_X
Adriann (18:22, 09.03.24)
Tylko myślę czy nie leiej gdyby mówiło że zostało tyle i tyle dni i ileś godzin a nie tylko w godzinach ;d Albo konkretna data obok, byłoby czytelniej
I am Lord (15:08, 08.03.24)
o super z tą ligą :)
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Ile zarobiłeś do tej pory na grach stworzonych w GM?