
Utermiko
Użytkownicy-
Postów
796 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez Utermiko
-
Execute_code szyfrowanie
Utermiko odpowiedział(a) na I am Żyd and Lewak temat w Pytania zaawansowanych
U mnie za to jest x+=5 -
Wydaje mi się, że ten dział będzie odpowiedni. Otóż chodzi mi o to, która pętla gry jest wg. was bardziej optymalna? Z góry mówię, że czytałem już to: http://www.koonsolo.com/news/dewitters-gameloop/. Wszystko przedstawiam w pseudo kodzie. 1) Pętla ze stałą ilością aktualizacji, która redukuje fps'y jeśli mamy za mało mocy. const int FRAMES_PER_SECOND = 60; const int SKIP_TICKS = 1000 / FRAMES_PER_SECOND; int next_game_tick = GetTickCount(); int current_time = GetTickCount(); int sleep_time = 0; bool game_is_running = true; while( game_is_running ) { current_time = GetTickCount(); if (current_time >= next_game_tick) { next_game_tick += SKIP_TICKS; update(); if(current_time < next_game_tick) render(); } } 2) Pętla w której obiekty poruszają się na podstawie czasu ostatniej klatki, czyli z użyciem delta time int prev_frame_tick; int curr_frame_tick = GetTickCount(); bool game_is_running = true; while( game_is_running ) { prev_frame_tick = curr_frame_tick; curr_frame_tick = GetTickCount(); update( curr_frame_tick - prev_frame_tick ); render(); } (pewnie gdzieś walnąłem błąd w kodzie bo szybko przepisywałem :P) Z góry dzięki za pomoc. @EDIT Jeszcze znalazłem: http://gamedev.stackexchange.com/questions...iable-time-step. Chyba lepszym wyborem będzie opcja pierwsza, ale czekam na inne opinie.
-
Ty również. https://forum.gmclan.org/index.php?showtopic=29832
-
Precyzyjne i szybkie namierzanie najblizszego obiektu
Utermiko odpowiedział(a) na T-800 temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
:thumbsup: KISS Moze odpowiedzia na twoje pytania bedzie to, ze nie my to przenieslismy do tego dzialu. Nie pomyslales, ale wystarczylo zapytac. W takim razie po co to wstawiasz skoro nikt nie może skorzystać? Rozumiem, gdyby był to jakiś fajny efekt graficzny czy coś. -
Z tego co wiem to CrackGM zrobił coś podobnego. Proponowałbym dać jakiś "celownik" dla ułatwienia unikania kolizji. Zdawało mi się, czy szybkość gry wzrasta wraz z ilością punktów?
-
Precyzyjne i szybkie namierzanie najblizszego obiektu
Utermiko odpowiedział(a) na T-800 temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
Do tego się używa systemu cząsteczek. Co ze skryptem? -
postawienie wordpressa dużo czasu nie zajmuje
-
Precyzyjne i szybkie namierzanie najblizszego obiektu
Utermiko odpowiedział(a) na T-800 temat w Gotowe Skrypty, przykłady, dodatki, silniki 3D dla GM
No dobra ale gdzie jest ten skrypt, bo mi tylko execa pobiera. @EDIT I do tego lekko zbugowane. Po ok. 30 sec było widać tylko żółtą kropkę na dole ekranu a contact id cały czas wzrastało. -
Konkretnie to Huderowi chodziło o funkcję: GML filename_name(fname) Returns the name part of the indicated file name, with the extension but without the path. Nie siedzę w GM to nie kojarzę większości funkcji ;p
-
Dobra, sprawdziłem u siebie. Stwórz sobie skrypt o nazwie get_file_from_path. GML //SKRYPT get_file_from_path //wyodrębnia nazwę pliku z pełnej ścieżki //argument0 - ścieżka var len, last_char; len=string_length(argument0); last_char=-1; for(i=0; i < len; i+=1) if (string_char_at(argument0, i) == '\') last_char=i; //wyszukiwanie ostatniego ukośnika return string_copy(argument0, last_char + 1, len); i użycie dla twojego przypadku: GML wtyczka = get_open_filename("Wtyczka AldStream Biblioteka DLL ( *.dll )|*.dll","") if wtyczka != '' { global.wtyczka = get_file_from_path(wtyczka); } else {exit}
-
Utnij se. https://gmclan.org/index.php?wiki=article&zm=32 Mniej więcej to wygląda tak: GML global.wtyczka="C:\Users\Paffcio\Pictures\jakies_zdjecie.png"; var len, last_char; len=string_length(global.wtyczka); last_char=-1; for(i=0; i < len; i+=1) if (string_char_at(global.wtyczka, i) == '\') last_char=i; //wyszukiwanie ostatniego ukośnika global.wtyczka = string_delete(global.wtyczka, 0, last_char + 1); Nie sprawdzałem czy działa.
-
Czyli co?
-
pętla lub użyj kolejek GML for(i=0; i < 6 - 1; i+=1) global.a=global.a[i+1]; Indeksuj tablice zawsze od 0.
-
Przecież nie musisz używać wszystkiego. Jak zależy Ci na samych input boxach (tudzieć text boxach) to wywal niepotrzebne funkcje.
-
1) wysyłasz pakiet informujący, że wszystko dotarło i voila. Co do paska postępu to odbierasz mapę - ustawiasz pasek na 25%, odbierasz pozycje obiektów - ustawiasz pasek na 50% itd. 2) https://forum.gmclan.org/index.php?showtopic=27748
-
Zgraj swojego IE na dyskietkę i daj mu.
-
GML //EVENT: kolizja z graczem alarm[0]=room_speed * 1; GML //EVENT: alarm 0 instance_destroy();
-
Robisz skrypt update_game, gdzie umieszczasz całą logikę, tzn. przesuwanie tych potworów itp. Dajesz obiekt o_control i stawiasz go na roomie. Dodajesz eventy które przechwytują wejście z klawiatury, przesuwasz gracza i dajesz skrypt update_game (w tych eventach ofc).
-
Proponowałbym inne rozwiązanie do spowolnienia: GML if(i >= n_razy) { xy= ds_stack_pop(stosx) yx= ds_stack_pop(stosy) i=0; } else i+=1; W przypadku kodu Threefa liczba mogłaby osiągnąć duże wartości jeśli dosyć często używamy cofania.
-
Kliknięcie w dany obszar i pokrywanie się obiektu
Utermiko odpowiedział(a) na Gibki Kaktus temat w Pytania początkujących
Nie zauważyłem, że dałeś x zamiast mouse_x oraz y zamiast mouse_y GML if(mouse_x >= parent_tlo.x && mouse_y >= parent_tlo.y && mouse_x <= parent_tlo.x + 100 && mouse_y <= parent_tlo.y + 100) -
Kliknięcie w dany obszar i pokrywanie się obiektu
Utermiko odpowiedział(a) na Gibki Kaktus temat w Pytania początkujących
GML if(x >= parent_tlo.x && y >= parent_tlo.y && x <= parent_tlo.x + 100 && y <= parent_tlo.y + 100) Mała pomyłka w moim kodzie :P -
Kliknięcie w dany obszar i pokrywanie się obiektu
Utermiko odpowiedział(a) na Gibki Kaktus temat w Pytania początkujących
1) Inaczej można GML x1=100; y1=100; x2=300; y2=200; if(mouse_x > x1 && mouse_y > y1 && mouse_x < x2 && mouse_y < y2) { //kod } 2) GML if(obiekt1.x >= obiekt2.x && obiekt1.y >= obiekt2.y && obiekt1.x <= obiekt2.szerokosc && obiekt1.y <= obiekt2.wysokosc) { //cos } Pod obiekt2.szerokosc i obiekt2.wysokosc podstawiasz rozmiary. @EDIT No i origin sprite musi być ustawiony na 0,0. -
Kliknięcie w dany obszar i pokrywanie się obiektu
Utermiko odpowiedział(a) na Gibki Kaktus temat w Pytania początkujących
1) collision_rectangle 2) GML if (obiekt1.x == obiekt2.x && obiekt1.y == obiekt2.y) { //cos sie dzieje } -
Dobra, to zostawię obecne funkcje i zrobię aliasy z dopiskiem AsCharPtr które konwertują każdy typ. Nie wiem co może być przyczyną, że musisz coś tam dopisywać. Mi normalnie się importuje przez P/Invoke z C#. @EDIT Proszę https://gmclan.org/up8194_3_DotNetSlapCross...1_0_fixed2.html. Wszystkie funkcje z dopiskiem AsCharPtr przyjmują i zwracają char* oprócz funkcji związanych ze wskaźnikami (LPVOID). Pamiętaj, że to wszystko odbywa się kosztem wydajności.
-
Mogę zrobić, ale czy nie lepsza by była konwersja po stronie Slapa? @EDIT Funkcje LoadDll, CreateObject, RemoveObject, Add***Argument też mają zwracać char* czy zostawić int?