Skocz do zawartości

Flame

Użytkownicy
  • Postów

    58
  • Dołączył

  • Ostatnia wizyta

O Flame

  • Urodziny 23.10.1999

Informacje

  • Team
    Flame's Productions
  • Użytkownik GameMaker Studio
    Tak
  • Użytkownik Unity
    Tak

O mnie

  • Skąd
    Łódź
  • Płeć
    Mężczyzna
  • Hobby
    Granie na gitarze, programowanie w GMie.

Osiągnięcia Flame

Smart Newbie

Smart Newbie (2/13)

0

Reputacja

  1. okej dzięki xd Sry za nieogarnięcie, wróciłem do programowania po dłuugiej przerwie i pozapominałem trochę :/
  2. Nie zrozumiałeś mnie :) (albo ja ciebie xD) Potrzebuje mieć zwracane id obj_walla który koliduje z linią jego wzroku. Bez tego gra bierze najbliższą ścianę, która niekoniecznie znajduje się w zasięgu jego linii wzroku przez co przeciwnik nie atakuje. Chodzi o to, że gdy postać jest za ścianą(czyli jest dalej niż ściana w jego linii wzroku), przeciwnik nie atakuje, a gdy jest przed ścianą (co nie znaczy, że kolizji ze ścianą już nie ma) przeciwnik atakuje. Nie wiem jak mam zwrócić sobie id tego właśnie pojedyńczego bloku ściany który jest w kolizji z linią wzroku przeciwnika i o to właśnie pytam :jezor: A w jaki sposób odczytać ID z collision line. Collision line nie zwraca tru/false ?
  3. Dobry, Zrobiłem mały kodzik dot. podążania za postacią przez przeciwnika. Kodzik generalnie polega na tym żeby przeciwnik nie zobaczył postaci przez ścianę więc dałem tę linijeczkę: GML (step obiektu obj enemy) if !collision_line(x,y,x+lengthdir_x(range,dir),y+lengthdir_y(range,dir),obj_wall,false,true) && distance_to_object(obj_character)<distance_to_object(obj_wall) problem w tym że distance_to_object(obj_wall) nie odnosi się do ściany w zasięgu widzenia a najbliższej, która nie koniecznie jest w zasięgu linii. Z tego też powodu mimo tego, że nawet jeśli zasięg wzroku koliduje z jakąś ścianą lecz postać jest przed nią, przeciwnik nie reaguje ze względu na ścianę np. obok niego, która jest bliżej niż sama postać. Próbowałem coś robić z id obj_wall ale nie wyszło to najlepiej :/ tutaj cały kodzik: GML (step obiektu obj enemy) dir=point_direction(x,y,obj_character.x,obj_character.y); if instance_exists(obj_character) { if !collision_line(x,y,x+lengthdir_x(range,dir),y+lengthdir_y(range,dir),obj_wall,false,true) && distance_to_object(obj_character)<distance_to_object(obj_wall) { if collision_line(x,y,x+lengthdir_x(range,dir),y+lengthdir_y(range,dir),obj_character,false,true) then seen=true; else seen=false; } else seen=false; } else seen=false; if seen==true mp_potential_step_object(obj_character.x,obj_character.y,spd,obj_wall); Dołączam SS z opisanej wyżej sytuacji: link
  4. Zmieniłem na full scale'a i teraz czarne pasy po bokach zniknęły. Jednak problem wciąż występuje bowiem wszystko jest zblurowane. Zauważyłem, że zależy to od wielkości pierwszego roomu od którego startuje gra. Gdy ustawiłem pierwszemu roomowi rozmiary 500x500 rozdzielczość mimo zachowania proporcji wyglądała jakbym miał ekran wielkości nokii 5510 xD a wyłączenie opcji "interpolate colors between pixels" powoduje że piksele są nierówne. Jedynie gdy ustawiłem moją rozdzielczość do rozmiarów pierwszego roomu w drugim roomie wszystko działao bez zarzutów tj. bez blura, bez pasów a kwadrat nie był prostokątem (czyli jak na pierwszym screenie z tego tematu) tutaj screen zblurowanej gry: O co chodzi ;-; ?
  5. Wiem, próbowałem, bezskutecznie :| Gdybym rozumiał co się dzieje w tutorialu nie pisałbym tu :/
  6. Witam, Wracam po dłuższej przerwie do GMa i odrazu mam problem :c. Chciałbym żeby fullscreen działał na każdej rozdzielczości więc używam do tego funkcji display_get_width() i ...height() a następnie ustawiam view z zebranych wcześniej informacji na temat rozdzielczości. Do ustawienia viewu korzystam z funkcji room_set_view i włączam view'a za pomocą room_set_enabled. Wiem, że te funkcje nie działają dla roomu w którym się znajdujemy dlatego ustawiam go w innym po czym przechodze do roomu gry "room_test". Tak wygląda kod: GML window_set_fullscreen(true); w=display_get_width(); h=display_get_height(); room_set_view(room_test,0,1,0,0, w, h,0,0, w, h,200,200,5,5, obj_character); room_set_view_enabled(room_test, true); room_goto_next(); moja rozdziałka to 1680x1050 a rozmiary roomu to 3k na 3k. Kiedy ustawiam swoją rozdzielczość w room editorze na wview, hview, wport i hport to wszystko ładnie działa. Jednak gdy robie to samo za pomocą kodu pojawiają się czarne pasy po bokach i nie mam pojęcia co źle robię i jak to naprawić. Dodam jeszcze dwa screeny : ustawiona rozdziałka z room editora: i z kodu: Jak widać wyżej kod który zamieściłem wcześniej powoduje, że obraz jest ściśnięty i występują czarne pasy po bokach ekranu. Pomocy... :boxed:
  7. Czy da się zrobić okienko składające się z backgrounda z przeźroczystymi elementami ? Żeby po wyłączeniu ramek okna było widać tam gdzie background jest przeźroczysty co się dzieje za okienkiem. Chodzi mi np o to : link
  8. Wystarczy że stworzysz zmienną w tym obiekcie w evencie create : przykładowo GML punkt=true; i w evencie w którym dodajesz ten punkt (czyli pewnie w step lub w draw): GML if mouse_check_button_pressed(mb_left) and punkt=true { //kod tworzący punkt (nwm czy to obiekt czy funkcja w draw) w draw mozesz dać np : draw_set_color(c_black); draw_point(mouse_x,mouse_y); //lub jak robisz to za pomocą obiektu to w stepie instance_create(mouse_x,mouse_y,obj_punkt); punkt=false; } czyli kiedy wciśniesz lewy klawisz a punkt będzie równy "true" to wtedy stworzysz punkt a zmienna punkt zmieni wartość na false dzięki czemu po wciśnieciu ponownie lpm nie stworzy się kolejny punkt ponieważ warunkiem stworzenia punktu jest to że punkt musi mieć wartość true. A mouse_x i mouse_y bedzie stawiało obiekt w koordynatach x i y twojej myszki w grze.
  9. Flame

    Inwazja

    Fajna gierka :) Podoba mi się interakcja z otoczeniem, że wszystko jest zniszczalne. Dużo różnych przeciwników, różnorakie helikoptery, czołgi. Troche grafika taka paintowa i sterowanie wg mnie niewygodne ale można się przyzwyczaić.
  10. Znalazłem coś takiego, może rozwiąże to twój problem : Link
  11. Znamy bok a, kąt prosty i kąt beta GML a=4; prost=degtorad(90); //zamieniamy stopnie na radiany beta=degtorad(55); //tu tak samo</span></span> Z tych danych możemy wyliczyć bok b, bok c, i alfa GML b=sin(beta)*(a/cos(beta)); c=a/cos(beta); alfa=pi/2-beta; I teraz jak chcesz wyświetlać w grze wyniki to musisz spowrotem zamienić radiany na stopnie GML draw_text(x,y,string(radtodeg(prost))); draw_text(x,y,string(radtodeg(alfa))); draw_text(x,y,string(radtodeg(beta)));
  12. chiptune.com Polecam Piotr Fronczewski ;)
  13. Coś próbowałem z tym display_set_gui_maximise() ale też mi nie wyszło ;p Nie rozumiem do końca jak ta funkcja działa... @edit dobra już kumam jak to działa ;p Dzięki za pomoc :) Temat do zamknięcia.
  14. Dobry, mam problem bowiem rysuje sobie dwa sprite'y w Draw GUI, jeden znajduje się w lewym górnym rogu, drugi w prawym górnym rogu. Wszystko ok do czasu kiedy włączam fullscreen. Wtedy pojawiają się błędy... Nie wiem z jakiej funkcji mam skorzystać żeby ten drugi sprite rysował się w tym prawym górnym rogu na fullscreenie. Niezależnie z jakiej funcji skorzystam rysuje się on albo na środku zamiast po prawej albo rysuje się wogóle gdzieś poza ekranem...Ten pierwszy sprite rysuje się na x=0 i y=0 i z nim problemu nie ma. Normalnie gra w okienku korzysta z tego kodu : GML draw_sprite_ext(spr_pause,i,view_wport[0]-64,0,gui_size,gui_size,0,c_white,1); Niestety na fullscreenie view_wport nie działa bo rysuje się w połowie szerokości ekranu, próbowałem też z window_get_width() ale też nie działa. Co robić ??
×
×
  • Dodaj nową pozycję...