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
Akademia GMCLANu
Kategorie bazy artykułów
Artykuły -> Game Maker -> Kursy GML
Treść artykułu
Obsługa 3D w GM6
autor: Marmot (18.09.04) | czas czytania: 5 minut, 14 sekund
Ten artykuł jest bardziej przeznaczony dla osób którym nie chce się tłumaczyć helpa, albo nie znają angielskiego. Pomoże on napewno nie tylko tym :) . Komentarze umieszczam w /* */ czyli w nowym standardzie GMa.

Wejście w tryb grafiki 3D
d3d_start() /* włącza tryb grafiki 3D */
d3d_end() /* wyłącza tryb grafiki 3D */
d3d_set_hidden(enable) /* ukrywanie powierzchni (true włącza, false wyłącza) */
d3d_set_perspective(enable) /* tryb projekcji perspektyw (true włącza, false wyłącza) */

Łatwe rysowanie
d3d_set_depth(depth) /* ustawia głębokość dla rysowania */

Rysowanie polygonów w 3D
d3d_primitive_begin(kind) /* zaczyna 3D prymitywa poprzez określenie rodzaju: pr_pointlist, pr_linelist, pr_linestrip,pr_trianglelist,pr_trianglestrip albo pr_trianglefan. */
d3d_vertex(x,y,z) /* dodaje vertexa (x,y,z) na prymitywa, używającego kolor i wartość alpha ustawianą wcześniej */
d3d_vertex_color(x,y,z,col,alpha) /* dodaje vertexa (x,y,z) do prymitywa, z własnym kolorem i wartością alpha */
d3d_primitive_begin_texture(kind,texid) /* zaczyna 3D prymitywa poprzez określenie rodzaju i nadanie tekstury */
d3d_vertex_texture(x,y,z,xtex,ytex) /* dodaje vertexa (x,y,z) do prymitywa wraz z pozycją (xtex,ytex) na teksturze, wraz z kolorem i alpha blendingiem ustawianymi wcześniej */
d3d_vertex_texture_color(x,y,z,xtex,ytex,col,alpha) /* dodaje vertexa (x,y,z) do prymitywa wraz z pozycją (xtex,ytex) na teksturze, wraz z kolorem i alpha blendingiem ustawianymi wraz z tym vertexem */
d3d_primitive_end() /* kończy prymitywa */
d3d_set_culling(cull) /* culling startujący przez tylną stronę objektu (true włącza, false wyłącza) */

Rysowanie podstawowych kształtów
d3d_draw_block(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat) /* Rysuje graniastosłup z aktywnym kolorem wraz z pokazaniem przeciwległych rogów używając wskazanej tekstury. Wpisz -1 jeżeli nie korzystasz z tekstur. hrepeat wskazuje ile razy musi być powtórzona tekstura w poziomie. vrepeat robi to samo ale w pionie. */
d3d_draw_cylinder(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,closed,steps) /* Rysuje pionowy walec z aktywnym kolorem. Wartości hrepeat i vrepeat oznaczają to co powyżej. closed wskazuje kiedy ma być zamknięty owy walec. steps oznacza ile kroków ma zrobić. Domyślnie jest to 24. */
d3d_draw_ellipsoid(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,steps) /* Rysuje ellipsoid w aktywnym kolorze. Wszystko jest takie same jak w poprzednich przypadkach */
d3d_draw_wall(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat) /* Rysuje pionową ścianę w aktywnym kolorze. Znów wszystko jest takie jak powyżej */
d3d_draw_floor(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat) /* Rysuje (ukośną) podłogę w aktywnym kolorze. Jeszcze raz macie wszystko powyżej */

Patrzenie na świat :)
d3d_set_projection(xfrom,yfrom,zfrom,xto,yto,zto,xup,yup,zup) /* definiuje ono patrzenie na świat */
d3d_set_projection_ext(xfrom,yfrom,zfrom,xto,yto,zto,xup,yup,zup,angle,aspect,znear,zfar) /* Jest to polepszona wersja poprzedniego. Można ustawić w nim kąt, pole widzenia, z aspect ratio przy widzeniu pionowym i poziomym */
d3d_set_projection_ortho(x,y,w,h,angle) /* Zwykłe wyświetlanie w stylu ortograficznym :D . */

Transformacje
d3d_transform_set_identity() /* Ustawienie identyczności (bez transformacji) */
d3d_transform_set_translation(xt,yt,zt) /* Ustawia transformację w przejście */
d3d_transform_set_scaling(xs,ys,zs) /* Ustawia scalowanie */
d3d_transform_set_rotation_x(angle) /* Ustawia rotację do pozycji X */
d3d_transform_set_rotation_y(angle) /* Ustawia rotację do pozycji Y */
d3d_transform_set_rotation_z(angle) /* Ustawia rotację do pozycji Z */
d3d_transform_set_rotation_axis(xa,ya,za,angle) /* Ustawia rotację wokół ustawionego axisa */
d3d_transform_add_translation(xt,yt,zt) /* Dodaje przejście */
d3d_transform_add_scaling(xs,ys,zs) /* Dodaje scalowanie */
d3d_transform_add_rotation_x(angle) /* Dodaje rotację do pozycji X */
d3d_transform_add_rotation_y(angle) /* Dodaje rotację do pozycji Y */
d3d_transform_add_rotation_z(angle) /* Dodaje rotację do pozycji Z */
d3d_transform_add_rotation_axis(xa,ya,za,angle) /* Dodaje rotację wokół ustawionego axisa */
/* UWAGA! Pomijam komendy ze STACKami, ze względu na to, że nie są aż tak potrzebne, a w każdej chwili można zajrzeć do helpa */

Mgła
d3d_set_fog(enable,color,start,end) /* Włącza lub wyłącza mgłę. color ustawia kolor mgły. start ustawia gdzie się mgła zaczyna. end ustawia gdzie się mgła kończy. */

Oświetlenie
d3d_set_lighting(enable) /* Włącza lub wyłącza oświetlenie */
d3d_set_shading(smooth) /* Ustawia nasycenie cieni lub ich brak */
d3d_light_define_direction(ind,dx,dy,dz,col) /* Ustawia kierunek światła. ind to indeks światła (użyj małej liczby pozytywnej). (dx,dy,dz) to kierunek światła. col to kolor światła. */
d3d_light_define_point(ind,x,y,z,range,col) /* Ustawia punkt który ma być oświetlony. ind oznacza to co powyżej. (x,y,z) to pozycja punktu który ma być oświetlony. range ustawia jak daleko ma być to oświetlenie. col to kolor światła. */
d3d_light_enable(ind,enable) /* Włącza (true) lub wyłącza (false) światło o podanym indeksie (wartość ind). */

To chyba na tyle. Chciałem wam pokazać przez to, jak duże możliwości ma GM 6. Mam też nadzieję, że pomoże wam to w zrobieniu jakiejś gry 3D. Napewno nie zrobicie DOOMa 3, ale ta zabawa napewno przyniesie sporo satysfakcji.
głosów: 5 | ocena: 9.00 oceń zasób | dodał: Marmot
Komentarze
stron: 21

2


av

adamek2323 (17:43, 17.11.2008)

ej żeby muc robić grę 3d nie trzeba przypadkiem pro edition mieć??? bo mi wyskakuje taki błąd:
___________________________________________
ERROR in
action number 1
of Create Event
for object cos:

Error in code at line 1:
d3d_start()

at position 1: This function is only available in the Pro Edition.

av

Yoda (17:55, 17.11.2008)

Jaki edytor, o czym ty gadasz.

;|

av

Darlix (19:28, 17.11.2008)

Yoda: nie mów że nie wiesz o co chodzi :/
Trzeba mieć zarejestrowanego gm'a

av

Lechu4444 (20:35, 17.11.2008)

A co ty myślałeś że tak poprostu ściągniesz sobie program Game Maker nie dasz autorom złamanego grosza i zrobisz grę 3D która będzie hitem na gmclanie Najgorsze w tej całej wersji lite nie jest to że nie da się robić gier 3D tylko to że zablokowali możliwość wstawiania linków.

av

Yoda (21:34, 17.11.2008)

Damian21: nie, nie wiem o co chodzi

av

Yoda (21:35, 17.11.2008)

A, i kodu nie wpisuje się w "edycji wynkcji".

av

adamek2323 (14:52, 18.11.2008)

dzieki wielkie najbardzie pomógł mi Lechu4444 ... teraz tylko muszę wycmanić od rodziców 60 zł na rejestrację bo oglądałem filmik na youtube gdzie jest wszystko opisane jak robic grę 3D w GM ;D

av

Darlix (15:45, 18.11.2008)

najlepiej poszukaj jakiegoś silnika z opisem wszystkich funkcji i łatwiej będzie Ci zrozumieć świat 3D w gm'ie

av

Yoda (16:00, 18.11.2008)

Nie. Najpierw naucz się programować.

av

I am Lord (17:52, 24.11.2008)

Nie. Najpierw rozum, podstawowy angielski potem programowanie.

av

Makary155 (14:51, 25.11.2008)

I obcykaj się z trygonometrią, bez tego ani rusz

av

Ghost (15:00, 25.11.2008)

I najpierw zrób jakąś prostą grę 2D...

av

lenin (18:54, 26.11.2008)

i... i tyle

av

XivroX (19:06, 26.11.2008)

zapomnieliście: najpierw należy uruchomić GM'a xD

av

PsichiX (23:06, 26.11.2008)

lol, skonczcie spam -.-

stron: 21

2



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

Nie masz konta? Zarejestruj się
Użytkownicy on-line
4 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 1, userów: 3, ukrytych: 0
Temporal, gnysek, Korodzik
Użytkownicy na czacie discord
gnysek (10:39, 21.01.19):
tylko pod inną wodzą
pablo1517 (6:37, 21.01.19):
Tu wciąż wszystko śmiga . Damn
gnysek (0:10, 21.01.19):
Uff, @Uzjel zdążył
gnysek (0:09, 21.01.19):
tak było, jak nie działał uploader, bo Ranma nie ustawił uprawnień na katalogu
exp (0:05, 21.01.19):
a może to było na turnieju? tak czy inaczej było lepiej
exp (0:04, 21.01.19):
i tak było lepiej według mnie
exp (0:04, 21.01.19):
jeżeli dobrze pamiętam, w poprzedniej edycji głosowało się postem, a nie w ankiecie
Korodzik (0:03, 21.01.19):
czy jest jakieś zabezpieczenie przed tym?
Korodzik (0:03, 21.01.19):
na lidze da się głosować na siebie?
Uzjel (0:00, 21.01.19):
Za mao, daj 20 :p
gnysek (0:00, 21.01.19):
10 MB jest limit.
Uzjel (23:55, 20.01.19):
Na uploader też nie idzie...
Uzjel (23:52, 20.01.19):
Moja gra też jest za ciężka ;(
gnysek (23:46, 20.01.19):
Tak, dorobię, bo tym razem była też gra w HTML, więc faktycznie może się to zdarzać częściej. Ale to już nie dziś
Konrad-GM (23:36, 20.01.19):
Ok, dzięki @gnysek , poszło btw. fajna byłaby też opcja do wklejenia linku obok uploadera
gnysek (23:24, 20.01.19):
@Chell: poprawiłem, dzięki W ten weekend wrzuciłem już chyba z 15 hotfixów na stronę
gnysek (23:21, 20.01.19):
10 MB ustawiłem limit właśnie, był 2MB. Jak gra jest większa, daj zipa z linkiem w pliku .txt
Konrad-GM (22:56, 20.01.19):
Po spakowaniu gry to mi wychodzi ~18mb i nie mogę przesłać
Konrad-GM (22:52, 20.01.19):
Pany, jaki jest limit rozmiaru plików w uploaderze ligowym?
Chell (22:42, 20.01.19):
charset w nowościach z forum się sypnął
Chell (21:52, 20.01.19):
uf, głosowania gotowe
gnysek (21:38, 20.01.19):
Poprawiłem uprawnienia w dziale Liga24, teraz każdy może odpowiadać.
gnysek (20:56, 20.01.19):
jeśli ktoś odda czwartą, to strzelam, że będzie "nadzwyczajny" albo coś takiego
I am Lord (18:31, 20.01.19):
podobają mi sie nazywy gier
I am Lord (18:30, 20.01.19):
I i to jest bajer który trzeba jakoś jeszcze bardziej uwidocznić
Uzjel (13:15, 20.01.19):
Ekstra!
gnysek (13:09, 20.01.19):
Dodałem jeszcze listę uczestników na główną, może to was zachęci
I am Lord (8:57, 20.01.19):
No inny
Adriann (22:33, 19.01.19):
To chyba jakiś inny;p Tak czy inaczej ja też coś majstruję;>
I am Lord (21:58, 19.01.19):
ponoć Adrian szykuje metal gear solid w wersji CTC, ciekawe czy zdąrzy
exp (20:33, 19.01.19):
już wiem na co głosuje
Chell (20:09, 19.01.19):
miśki, jutro wieczorem startuje wielkie głosowanie!
gnysek (19:31, 19.01.19):
Poświęcił na to z tydzień, ale to nic innego jak nakładka/bypass.
gnysek (19:30, 19.01.19):
A to nie takie trudne tak naprawdę, bo każdy "własny" skrypt po kompilacji pozostawia swoją nazwę (do script_get_name()), więc do każdej istniejącej funkcji w GMS, wygenerował skrypt typu own_instance_create() z tą samą liczbą argumentów, a potem przeparsował kod wynikowy JS i znalazł co jest co, imo obfuskacji.
gnysek (19:29, 19.01.19):
Jakim oswobodzonym? On po prostu znalazł który skrpyt jak się nazwał po kompilacji przy eksporcie do HTML5 i konwertuje funkcje w jednym okienku, żeby działały w drugim. Ja bym to nazwał nakładką na dowolną grę GM wyeksportowaną do HTML5.
nowy_user (11:14, 19.01.19):
Może udostępnienie GMS2 jako open source byłoby tu najlepszym rozwiązaniem? Swoją drogą, autor GMLive stworzył też coś takiego: yal.cc/r/gml , gdzie możemy sobie kodzić w GML'u bez GMa ! Czy to znaczy, że GML powoli staje się jezykiem oswobodzonym z kajdan GM'a i być może niedługo będziemy mogli programować w GMLu w innych narzędziach?
nowy_user (11:13, 19.01.19):
Zgadza się, choć z drugiej strony, tak jak pisałeś kiedyś, przed erą PlayTech GM też nie był rentowny i przecieżbez wsparcia inwestora, GM utknąłby w miejscu. Bez odpowiednich funduszy musieliby w końcu zrobić redukcje etatów, bo niebyłoby ich stać na utrzymanie całego zespołu, a z koleji z mniejszym zespołem, postępy byłby znacznie wolniejsze.
gnysek (10:04, 19.01.19):
Ale nie oszukujmy się, nawet jak YYG nie zarabia na siebie, to playtech zarabia na nich na giełdzie, bo ludzie inwestują w akcje tylko dla tego, że mają YYG w portfelu. Więc ogólnie jednak zarabia na siebie, ale nie GMem.
gnysek (10:03, 19.01.19):
Tym się właśnie różni INDIE developer od korporacji. Korporacje strasznie narzucają, nawet jak klienci i programiści mówią "nie idźcie tą drogą".
gnysek (10:03, 19.01.19):
To jest możliwe tak: Playtech uważa, że to nie jest priorytet A zatrudnianiem zajmuje się YYG stąd czasem fajne osoby wejdą ale nie mogą dodać fajnych rzeczy, bo Playtech ma inne cele
nowy_user (9:32, 19.01.19):
Panowie, od 2 tygodni używam GMLive i musze przyznać, że ten asset to prawdziwy gamechanger. Jak to możliwe, że funkcja livecoding nie jest wbudowana domyślnie w GMS2 ? Tym bardziej to dziwi, że autor GMLive podobno pracuje dla YoYo...
gnysek (1:15, 19.01.19):
Masz, paczka: web.archive.org...rials/first.zip
gnysek (1:12, 19.01.19):
to było w tutkach na gamemaker.nl tylko
I am Lord (0:19, 19.01.19):
co jest grane, to ja już nie wiem w którym GMie to było, może GM8
I am Lord (0:18, 19.01.19):
ej bez jaj ściągnąłem GM6, GM7, GM8.1 i w żadnym nie ma catch the clowna w przykładach
I am Lord (0:17, 19.01.19):
mogę pobrać
gnysek (0:13, 19.01.19):
ja z googli wziąłem, powycinałem - możesz pobrać moją grę chyba już ?
I am Lord (23:50, 18.01.19):
a nie, to była z Gm8 bo widzę że defaultowe zasoby z gm6 mam jeszcze na dysku
I am Lord (23:48, 18.01.19):
Kurde gnysek gdzie można ściągnąć paczkę grafik z gm 6? bo z niej chyba te klauny pochodzą
Korodzik (22:05, 18.01.19):
Świetnie!
Ankieta
» Dżem czy konfitura?
Dżem
Konfitura

GMCLAN to serwis o programie Game Maker i nie tylko.
[ Polityka prywatności ]
Copyright © 2002-2019. GMCLAN.ORG
Wszelkie prawa zastrzeżone. Kopiowanie materiałów bez zgody redakcji zabronione!
© 2002-2017 Ranmus (ranmus.pl), © 2017-2019 {=|=} fable_inside();

[ Czas generowania strony: 0.01965 sekund ] [ Liczba zapytań MySQL: 13 ]