Skocz do zawartości

ProExCurator

Użytkownicy
  • Postów

    18
  • Dołączył

  • Ostatnia wizyta

Informacje

  • Użytkownik GameMaker Studio 2
    Nie
  • Użytkownik GameMaker Studio
    Tak
  • Użytkownik GameMaker 8
    Nie
  • Użytkownik GameMaker 7 i wcześniejszych wersji
    Nie
  • Użytkownik Unity
    Nie
  • Użytkownik Godot
    Nie

O mnie

Ostatnie wizyty

949 wyświetleń profilu

Osiągnięcia ProExCurator

Chicken

Chicken (1/13)

0

Reputacja

  1. To nie bardzo rozumiem, jak w takim razie powinien wyglądać kod?
  2. I próbowałem właśnie "tworzyć ponownie" surface. Próbowałem to osiągnąć w ten sposób, ale nie działa... GML sur = surface_create(room_width, room_height); if !surface_exists(sur) { sur = surface_create(room_width, room_height); } Więc właśnie miałem nadzieje że ktoś podpowie jak zrobić to prawidłowo?
  3. Więc znalazłem na necie bardzo fajny, płynne działający "silnik" dla "latarki". https://drive.google.com/file/d/0B5tuOPULqE...&authuser=1 http://www.masterxy.bplaced.net/download.php (wersja nowsza, ma mniej skryptów) I wszystko byłoby super gdyby nie fakt że skrypt nie działa gdy go przeniosłem do mojej gry. GML ################################################################################ ############ FATAL ERROR in action number 1 of Step Event0 for object obj_control: Variable obj_control.sur(100002, -2147483648) not set before reading it. at gml_Object_obj_control_StepNormalEvent_1 (line 2) - surface_set_target(sur); ################################################################################ ############ Ludzie w komentarzach przy tym filmiku - również piszą, że dostają ten błąd w różnych sytuacjach. Poczytałem to co znalazłem dzięki Google i jedyna sensowna odpowiedz na podobny przypadek z podobnym skryptem była taka, że surface może w każdej chwili zostać usunięty z pamięci i trzeba sprawdzić czy się tak nie stało, jeżeli tak to znowu stworzyć surface. Nie wiem czy to ma sens - tłumaczone z ang. Dla mnie cały ten skrypt to póki co "trochę" zbyt zaawansowana sprawa, gdyby jednak działał to bardzo chętnie bym go wykorzystał w swojej grze. Może znajdzie się tutaj jakiś magik, który by pomógł znaleźć przyczynę występowania błędu i sposobu jego rozwiązania?
  4. Łatwy do ogarnięcia? Sprawdziłem na G2A i na steama za dyszkę można dostać, ale w sumie wolałbym poza steam mieć. Da radę gdzieś dostać za tą cenę poza steam?
  5. Jak widać na lewym obrazku w trakcie obracania postaci sprite jest poszarpany, a powinien być przez cały czas taki jak po prawej. Myślałem że może chodzi o rozdzielczość sprite'u więc się z tym bawiłem, ale zwiększyłem nawet 4x a efekt ten sam. Próbowałem też z anti-aliasingiem, ale to nie to... Po raz kolejny próbuje uzyskać ten sam efekt co w Hotline Miami, ale nie wiem jak: Może ktoś pomóc?
  6. No to jestem zaskoczony, myślałem że jest gdzieś opcja w Game Makerze która po prostu umożliwia wyskakiwanie takiego okna z ustawieniami przed uruchomieniem gry. Nie sądziłem że jest to zaprogramowane jako room w game makerze. Sugerowałem się wyglądem tego okna, bo wygląda jak "typowe windowsowe okno".
  7. Jak mogę zrobić takie okno z ustawieniami? Szukałem gdzieś opcji które by umożliwiały wyskakiwanie takiego okna przed odpaleniem gry, ale nie widzę nigdzie.
  8. Witam Chciałem zrobić prostą animację zrobioną z 25 klatek w rozdzielczości 1280x720, mającą służyć jako tło do menu. Po utworzeniu jednak okazało się że ten sprite waży aż 85MB, dlaczego aż tyle się z tego zrobiło skoro tworzyłem sprite z pliku png który waży 431KB. Dlaczego tak jest i ja coś robię źle? Nie powinienem używać sprite do tego typu animacji? Jeżeli tak to jak to inaczej zrobić? Proszę o pomoc.
  9. Szczerze to, zacząłem przygodę z GM bardzo nie dawno i właśnie jedno z czym się do tej pory nie zapoznałem to jak działa Debugger :D Wiem że to podstawa, więc muszę się tego nauczyć. Jest jakiś poradnik gdzieś, co do tego?
  10. Hmmm, ciekawe... Ustawiłem GML global.MeleeAttacking = false; w zwykłym timerze GML Alarm[0] = room_speed*0.5 i teraz mogę atakować w tym samym miejscu i wszystko działa jak trzeba dopóki nie użyje shifta/biegania... czyli tutaj jeszcze tylko jest problem. EDIT: Okay, ustawiłem przy wywoływaniu funkcji stałą prędkość animacji image_speed = 0.2, bo z jakiegoś powodu pobierało prędkość z animacji chodzenia i gdy wciskałem shift zmieniało prędkość spr_attack_melee na 0.3 i przy tej prędkości floor(image_index==5) nie działa prawidłowo. Czyli jak widać faktycznie można by tutaj to usprawnić, ale nie wiem jak... PS: Warto się przenieść na Studio 2? Nie ma tam tego typu problemów jak tu z Animation End?
  11. W przetłumaczeniu - "Jeżeli - 5 klatka animacji". Akurat ta funkcja raczej działa prawidłowo i napisana jest w ten sposób ponieważ taki mi doradzono wcześniej na zagranicznym forum, gdy miałem problem z tego typu funkcją. Wcześniej używałem zwykłego "image_index==5" i nie działało jak trzeba. Jeżeli wiesz jak można lepiej napisać tego typu warunek, to chętnie poznam, bo może jest lepszy sposób na uzyskanie tego rezultatu. attack_key jest w skrypcie scr_get_input, a pobierany jest w Create Evencie obj_player.
  12. Problem jest taki że z jakiegoś powodu nie mogę zaatakować dwukrotnie gdy postać stoi w jednym miejscu, dopiero poruszenie się sprawia że mogę zaatakować po raz drugi. Jednocześnie gdy użyje przycisku "Shift", czyli w tym przypadku "biegania", to w ogóle nie mogę atakować. Próbuję znaleźć przyczynę, ale jej nie widzę. Pomożecie? Obj_Player - Step Event: GML if (attack_key) { if (global.MeleeAttacking == false) { image_index = 0; global.MeleeAttacking = true; } } Obj_Player - End Animation: GML global.MeleeAttacking = false; Script - scr_move_state: GML //Movement phy_rotation = -point_direction(x,y,mouse_x,mouse_y) global.rotation = phy_rotation var xaxis = (right_key - left_key); var yaxis = (down_key - up_key); // Get direction var dir = point_direction(0, 0, xaxis, yaxis); // Get the length if(xaxis == 0 and yaxis = 0) { len = 0; run_len = 0; } else { len = spd; run_len = run_spd; } // Get the hspd and vspd hspd = lengthdir_x(len, dir); vspd = lengthdir_y(len, dir); run_hspd = lengthdir_x(run_len, dir); run_vspd = lengthdir_y(run_len, dir); if(len == 0) { if(global.MeleeAttacking == false) { sprite_index = spr_player_stand } global.Direction = "Stand" } // Move if(keyboard_check(vk_lshift)) { phy_position_x += run_hspd; phy_position_y += run_vspd; } else { phy_position_x += hspd; phy_position_y += vspd; } // Vertical sprites if (vspd > 0) { if(global.MeleeAttacking == false) { if(!keyboard_check(vk_lshift)) { image_speed = .2; sprite_index = spr_player; } else { image_speed = .3; sprite_index = spr_player; } } global.Direction = "Up"; } else if (vspd < 0) { if(global.MeleeAttacking == false) { if(!keyboard_check(vk_lshift)) { image_speed = .2; sprite_index = spr_player; } else { image_speed = .3; sprite_index = spr_player; } } global.Direction = "Down"; } // Horizontal sprites if (hspd > 0) { if(global.MeleeAttacking == false) { if(!keyboard_check(vk_lshift)) { image_speed = .2; sprite_index = spr_player; } else { image_speed = .3; sprite_index = spr_player; } } global.Direction = "Left"; } else if (hspd < 0) { if(global.MeleeAttacking == false) { if(!keyboard_check(vk_lshift)) { image_speed = .2; sprite_index = spr_player; } else { image_speed = .3; sprite_index = spr_player; } } global.Direction = "Right"; } // Melee Attack if (global.Select_Weapon = "Melee") { if(global.MeleeAttacking == true) { sprite_index = spr_player_melee if (floor(image_index==5)) { instance_create(x, y, obj_attack_box) audio_play_sound(snd_melee_swing, 0, false); } } }
  13. Właśnie chyba tak, ponieważ cokolwiek nie wprowadzę w ten lub inny sposób jak napisał Uzjel to i tak prędkość jest ta sama. Tyle że ja używałem default'owych ustawień, w sensie nic nie wprowadzałem własnego w globalnych ustawieniach fizyki, bo nawet nie wiem gdzie. To co trzeba zmienić w takim razie?
  14. Ja pie... Ja tu się głowie co jest nie tak z kodem przez tyle czasu a tu literówka... Dzięki mistrzu, nie znalazłbym jej bez twojej pomocy :D Przynajmniej w międzyczasie usprawniłem kod. ale jednak dalej nie wiem jak przyśpieszyć pocisk?
×
×
  • Dodaj nową pozycję...