Fastbar
Powrót do strony głównej
Trzymaj pliki na gmclan.org!
Game Maker w pytaniach i odpowiedziach!
Polska dokumentacja
Tabela wyników ligi 24
Pobierz GM
Kategorie bazy artykułów
Artykuły -> Game Maker -> Kursy GML
Treść artykułu
Operacje na zmiennych
autor: gnysek (5.11.09)
W Game Makerze wyróżniamy dwa typy zmiennych:

1) Zmienne liczbowe (real) - są to po prostu liczby rzeczywiste, np. a = 5, a=17.32, a = $A1 (szesnastkowo 161);

2) Łańcuchy tekstowe (string) - są to zmienne zawierające tekst, np. a = 'tekst';

Należy jednak zauważyć, że a=5 to nie to samo co a='5', gdyż tekst nie jest liczbą i na odwrót i tych dwóch typów nie wolno bezpośrednio ze sobą porównywać.

Do zamiany liczby w tekst służy funkcja string(), do zamiany tekstu w liczbę służy funkcja real(), jednak tekst taki może zawierać tylko cyfry, znak minus, kropkę oddzielającą część dziesiętną oraz znak wykładniczy E (np. 1.E+1), bez liter i innych znaków.

Istnieje również wiele funkcji pozwalających na bardziej zaawansowane działania na zmiennych, skupię się jednak tylko na operatorach.

Operacje na łańcuchach tekstu:

Na tekście możemy dokonać dwóch operacji:

1) Konkatenacja, czyli łączenie tekstów: np. a = 'xxx' + 'yyy', a+='xxx';

2) Konkatenacja tekstu z samym sobą określoną ilość razy, np. a = 5 * 'x' zwraca 'xxxxx';


Operacje na liczbach:

Na liczbach można wykonać następne operacje:

Dodawanie: a=5+7; a=a+5, a+=5;

Odejmowanie: a=5-7; a=a-5; a-=5;

Zmiana znaku na przeciwny: a = -a;

Mnożenie: a=5*7; a=a*7; a*=7;

Dzielenie: a=5/7; a=a/7; a/=7; (nie można dzielić przez 0!)

Dzielenie całkowite div (dzielenie bez reszty / z zaokrągleniem w dół): a = 7 div 3 (7 div 3 = 2, bo 7/3 = 2, reszty 1);
Wynikiem dzielenia całkowitego jest zawsze liczba całkowita.

Reszta z dzielenia modulo : a = 7 mod 3 (7 mod 3 = 1, bo 7/3 = 2 reszty 1);
Reszta z dzielenia x mod y jest zawsze liczbą z zakresu od 0 do y-1.

Porównania:
Do porównań funkcji służą następujące operatory:
>, >=, ==, !=, <> , <, <= : większe, większe równe, równe, nierówne, różne, mniejsze, mniejsze równe

W Game Makerze nie ma funkcji post/pre-inkrementacji oraz post/pre-dekrementacji, które występują w innych językach.


Operacje logiczne:

W operacjach logicznych rozróżniamy dwie wartości: true, false. Wartość true (prawdę) oznaczają wszystkie liczby > 0, oraz stała true, wartość false (fałsz) oznaczają wszystkie zmienne <= 0 oraz stała false. Wykorzystywane są głównie do operacji warunkowych (if, while, etc.)

Rozróżniamy następujące operacje logiczne:

&&, and: prawdziwa, gdy wszystkie wartości wyrażenia mają wartość true, fałszywa w pozostałych przypadkach, np. 7 and 14 to prawda, 7 and -1 to fałsz.

||, or: prawdziwa, gdy co najmniej jedno wyrażenie jest prawdziwe, fałszywe tylko gdy wszystkie są fałszywe, np. 7 or -1 to prawda, 0 or -1 to fałsz.

^^, xor: prawdziwa, gdy oba argumenty są sobie przeciwne, fałszywa, gdy są takie same, np. 7 xor -1 to prawda, 7 xor 14 to fałsz

!: negacja, zamienia prawdę w fałsz i na odwrót, np. x = !7 to fałsz, x = !0 to prawda, x = !x zamienia prawdę w fałsz i na odwrót



Operacje bitowe:

Operacje bitowe to operacje, które zachodzą bezpośrednio na bitach liczby w systemie dwójkowym, np. liczba 12 to binarnie 1100.

>> : przesunięcie podanej ilości bitów w liczbie w prawo, poprzez usunięcie bitów na najmłodszej pozycji i dopisanie zer na najstarszej
np. 12 >> 1 to 6, 12 >> 2 to 3 (bo 1100 >> 1 = 0110 czyli 6, 1100 >> 2 = 0011, czyli 3)
Przesunięcie bitów w prawo o 1 jest równoznaczne z operacją dzielenia przez 2.

<< : przesunięcie podanej ilości bitów w liczbie w lewo, poprzez usunięcie bitów na najstarszej pozycji i dopisanie zer na najmłodszej
np. 12 << 1 to 24, 12 << 2 to 48 (bo 1100 << 1 = 1 1000 czyli 24, 1100 << 2 = 11 0000, czyli 48)
Przesunięcie bitów w lewo o 1 jest równoznaczne z operacją mnożenia przez 2.

|, &, ^ : operacje or,and,xor na bitach liczby
12 | 3 = 15, bo 1100 | 0011 = 1111
12 & 4 = 4, bo 1100 & 0100 = 0100
5 ^ 3 = 6, bo 0101 ^ 0011 = 0110

~: negacja bitowa liczby, np. ~12 = -13, bo 12 = ~0000 0000 ... 1100 = 1111 1111 ... 0011 (zmieniany jest także bit parzystości, liczby w GM mają 8 bajtów, od -9223372036854775808 do +4611686018427387904, dla których oznaczenie INF (nieskończoność) nie pozwala na operacje dodawania / odejmowania)

**********

Funkcje takie jak potęgowanie, pierwiastkowanie, logarytmowanie etc. wykonywane są przez funkcje wbudowane w Game Makera, nie są jednak operatorami, więc do ich poznania polecam lekturę dokumentacji programu.
głosów: 5 | ocena: 6.40 oceń zasób | dodał: gnysek
Komentarze
stron: 21

2


av

MagnusArias (18:13, 25.03.2010)

A czy w operacjach logicznych, wykrzyknika nie można zamienic cząstką"not" ? no zamiast "if !instance_exists", to "if not instance_exists"

av

Makary155 (13:30, 26.03.2010)

! - not
&& -and
|| -or.

stron: 21

2



Dodaj komentarz:
Treść:
Menu
Panel użytkownika
Jesteś niezalogowany!

Nie masz konta? Zarejestruj się
Użytkownicy on-line
90 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 90, userów: 0, ukrytych: 0


0 użytkownik(ów) na gmczacie i 0 bot(ów)
Shoutbox
Nikas (1:51, 28.02.17):
Jest dokładnie jak piszesz.
MaxGaming (1:43, 28.02.17):
Jak wrzucasz takie zdjęcia na insta to nie świadczy żebyś był tym na kogo pozujesz
MaxGaming (1:41, 28.02.17):
Znalazłezł się Rysiek Ridel który splifa nie umie rozpalić i nie wie co to maczanka XD Niech zgadnę walnąłeś kilka razy w nos i czujesz już dno? Xd Śmieszy mnie takie coś osobiście. Gdybyś sięgnął dna to byś inaczej gadał
Nikas (1:20, 28.02.17):
W swoim życiu upadłem kilka razy naprawdę poniżej poziomu człowieczeństa i brałem różne rzeczy. Naprawdę nie potrzebuję nauk, jeszcze o paleniu, od nieznajomego typa na gmc, bo nie zaskoczysz mnie niczym.
MaxGaming (0:58, 28.02.17):
A jak chcesz pogadaćo tym jaki syf ci wwalają do twojego "naturala" to możesz na PW podyskutujemy bo już trochę widziałem w tym temacie i widzę że jesteś z tych oświeconych że nie da się przecież nic ze splifem złego zrobić xd
Nikas (0:58, 28.02.17):
Lol.
MaxGaming (0:57, 28.02.17):
a jak ci się źle rozpala(mówimy o tytoniu) to po prostu najpierw opal sklejenie zapalniczką(podgrzej, nie podpal) to ładnie wysycha i nie ma żadnych problemów z rozpalaniem
MaxGaming (0:56, 28.02.17):
NIGDY JA ANI NIKT KOGO ZNAM NIE DMUCHAŁ XD ale skończmy temat serio w SB bo to nie jest miejsce wgl na takie szczegółowe rozmowy i pójdzie zaraz warn od 3F drugi raz :/
MaxGaming (0:55, 28.02.17):
Nadmiar bletki możesz mieć tylko z przodu i on ładnie sam się spala inaczej to nie wiem jak ty to robisz. Iskrzy jak jest maczanka(zazwyczaj tylko jakiś brix żeby na wadze było więcej, są też mity o dopach, ale na dopalaczach nigdy z iksrzeniem się nie spotkałem), popytaj w takim razie znajomych a jak chcesz maczać w krzystale to powodzenia xd I nie ucz ojca dzieci robić ;p
Nikas (0:41, 28.02.17):
Uuuu prosze, mamy tutaj widzę prawdziwego gracza, nook. Nie wiem skąd ta teoria z maczaniem. W czym maczany? W mieszance wody z fetą? Mefem? Może w kwasie? 8 lat palę i nie spotkałem takiego towaru. Jedynie maczarny w cukrze co się brylił i był gówniany. Ziomek palił jointa. Czasami jak się słabiej odpali to w jednym miejscu jest nadmiar bletki w który dmuchasz. I akurat uchwyciłem ten moment proszę pana eksperta. Podmuchaj sobie w jointa następnym razem to zobaczysz, piąteczka.
MaxGaming (0:39, 28.02.17):
Nie mogłeś po prostu pociągnąć zamiast on dmuchać? XDD Albo coś źle był "skonstruowany" ale już nic o tym nie piszę więcej bo będzie znowu warn xd
MaxGaming (0:38, 28.02.17):
Nigdy nie iskrzył mi spliff i nigdy nie dmuchał mi nikt żebym go lepiej rozpalił XD
Nikas (0:08, 28.02.17):
Ziomek dmuchał w niego żeby rozpalić, wiesz, tak to już działa na tej planecie. Jak dmuchasz w coś co się pali lub tli, to się rozpala jeszcze bardziej i uwaga - mogą lecieć wtedy iskry!
MaxGaming (23:53, 27.02.17):
BTW czemu twój spliff ze zdjęcia na insta się iskrzy? Tak wygląda na zdjeciu czy palisz maczane? XDD
Nikas (22:56, 27.02.17):
A dzięki.
Wojo (22:37, 27.02.17):
mocne foty xD
Nikas (22:34, 27.02.17):
Oczywiście, że mam instagram: www.instagram.com/krabonszcz
Wojo (22:23, 27.02.17):
gmclan to sekta
Czołg Krymski (22:22, 27.02.17):
jeszcze jest gmclan
Wojo (22:13, 27.02.17):
teraz cały internet kręci się w okół tych kilku stron
Wojo (22:13, 27.02.17):
teraz popularnosc zyskalbys zakladajac insta na swoje prace albo jakis fanpage
Fervi  (21:24, 27.02.17):
Nie wiem, ale kolega publikuje i ktoś go tam nawet obserwuje
Nikas (21:16, 27.02.17):
Czy ta strona jeszcze żyje?
Fervi  (20:57, 27.02.17):
Deviantart?
Nikas (20:28, 27.02.17):
Hej ludzie, wiecie gdzie dobrze promować swoje prace? Chodzi mi o rysunki itp.
Wojo (19:31, 27.02.17):
xD
Nikas (18:48, 27.02.17):
HHAHAHAHAHA
Exigo (18:33, 27.02.17):
Taaaaaaaaa?
PatrykPlayingPOLSKA (16:43, 27.02.17):
Ta ?
Wojo (14:03, 27.02.17):
kuncu
Chell (6:58, 27.02.17):
Jimmy Kimmel świetny człowiek
I am vader (6:54, 27.02.17):
6.1 był pod win98? Ja pitole, ja zaczynalem od 5.3A(z jakiegos powodu), wiedzialem ze to antyki, ale myslalem ze XP'kowe.
PatrykPlayingPOLSKA (23:12, 26.02.17):
Nostalgy scr.hu/RZgByv
Nikas (22:08, 26.02.17):
Echhhhhhhhhh.
ediepl (21:23, 26.02.17):
Nie wymagaj aż tyle od Nikasa
Sutikku (20:52, 26.02.17):
a wystarczyło luknąć niżej, że uploader nie działa
Nikas (20:31, 26.02.17):
Pierwsza liga z nagrodami i nikt nawet nie wysłał ani jednej, zesrałem. xDDDDDDD
Sutikku (19:58, 26.02.17):
a uploadder nie dziala, wyscig z czasem
Sutikku (19:57, 26.02.17):
3 minuty zeby wrzucic gre
Danielus (19:14, 26.02.17):
Na codingame ruszyły wczoraj kolejne 8-dniowe zawody. Problem całkiem fajny bo walka o fabryki przy pomocy androidów.
Threef (18:59, 26.02.17):
Albo nie bo nie chce mi się.
Threef (18:57, 26.02.17):
Zaczynam grę na ligę!
Uzjel (18:51, 26.02.17):
Uploader nie działa, prace z Tury #156 wrzucajcie do odpowiedniego tematu forum.gmclan.or...showtopic=33226
Czołg Krymski (21:25, 25.02.17):
jakby co zapraszam do zagrania w moją turową grę
Sutikku (20:02, 25.02.17):
mam 24h hmmm, idę wygrać jakąś gierkę
I am vader (4:12, 25.02.17):
W życiu nie korzystałem, zrezygnowałem kompletnie z klocków jakieś 8-9 lat temu.
XBlacKX (0:09, 25.02.17):
wiesz gdzie mógłbym dostać jakieś? zwiedziłem cały internet i tak jak kiedys było tego od cholery teraz tylko jednego liba znalazlem i to na gmclanie
I am vader (23:58, 24.02.17):
rozszerzenia Drag and drop, ale nie wiem ktore mogles miec zainstalowane
XBlacKX (23:17, 24.02.17):
kiedyś miałem taką paczkę i miałem tam gdzie "move, main1 main2 draw" itd dodatkowe zakładki z różnymi funkcjami
XBlacKX (23:16, 24.02.17):
jak się nazywały te paczki z dodatkowymi "ikonkami" co można przeciągać?
Ankieta
» Czy jesteś szczery odpowiadając w ankietach w Internecie?
Tak
Nie

GMCLAN to serwis o programie Game Maker i nie tylko.
Copyright © 2002-2017. GMCLAN.ORG
Wszelkie prawa zastrzeżone. Kopiowanie materiałów bez zgody redakcji zabronione!

[ Czas generowania strony: 0.02806 sekund ] [ Liczba zapytań MySQL: 16 ]

thecrims Otserv List Otserv LyricsTown Harry Potter Serwery Gier
dev nodev