Skocz do zawartości

pankracy

Użytkownicy
  • Postów

    320
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    1

Treść opublikowana przez pankracy

  1. Teraz tak...w draw gui mam użyć tych dwóch funkcji ? display_get_width() lub display_get_height() oraz display_set_gui_maximize()
  2. Grę mam ustawioną na 1280x720 i full screen jest ustawiony na 1280x720
  3. A jak to dokładnie obliczyć? mam ustawić tutaj również połowę rozdzielczości obrazu??Pytam,bo nie używałem jeszcze tej funkcji.. Mam jeszcze jedno pytanie do tego tematu.. Ustawiłem sobie w menu gry zmianę obrazu z trybu pełnoekranowego w tryb okienkowy.. ale myślę,że część kodu nie działa..zwłaszcza ten warunek przy którym napisałem komentarz.. obj_opcje create options=ds_list_create() options[|0]=("Controlls") options[|1]=("Sound") options[|2]=("Display") options[|3]=("Back") selected=0 gp_up=false gup_down=false gp_left=false gp_right=false //Używane do animacji menu animation_speed=room_speed/4 for(var i=0; i<ds_list_size(options); i++) { animation[i]=0 } step if(keyboard_check_pressed(vk_enter) || gamepad_button_check_pressed(0,gp_face1)) { if(selected=0) { room_goto(room_controls_setup) } else if(selected=1) { room_goto(room_sound_setup) } else if(selected=2) { window_set_fullscreen(!window_get_fullscreen()); //nie wiem czy ten warunek dziala tak jak go tu zaimplementowalem if (!window_get_fullscreen()) { window_set_size(obj_display_manager.ideal_width, obj_display_manager.ideal_height); } } else if(selected=3) { room_goto(room_menu_glowne) } }
  4. Cześć wszystkim, Próbuje od jakiegoś czasu rozwiązać problem ze skalowaniem paska HUD w trybie okienkowym.. Moja gra pracuje na pełnym ekranie w rozdzielczości 1280x720. W grze ustawiłem sobie możliwość przełączania gry z pełnego ekranu na tryb okienkowy z zachowaniem proporcji obrazu ze skalowaniem. Wszystko ładnie działa..Prawie wszystko się skaluje w trybie okienkowym,ale pasek HUD nie chce się skalować do wymiarów okna gry..Jest cały czas w takich samych rozmiarach jak na pełnym ekranie.. Próbowałem użyć nawet funkcji display_set_gui_size() Wpisując odpowiednie wartości czyli połowę display_set_gui_size(640,360) Pomimo tego nadal pasek HUD nie chce się skalować i wszystkie sprity które są na nim umieszczone.Mało tego jak użyje tej właśnie funkcji to pasek HUD w trybie pełnoekranowym i w trybie okienkowym jest jeszcze większy. Bardzo proszę o waszą pomoc..bo nie mam już pomysłów jak to naprawić.. dziękuję Kod wygląda następująco room_display_manager creacion code window_set_fullscreen(true); obj_display_manager (trwały) create ideal_width = 0; ideal_height = 720; aspect_ratio = display_get_width()/display_get_height(); ideal_width = round(ideal_height * aspect_ratio); //Sprawdź czy liczba jest nieparzysta if (ideal_width & 1) { ideal_width ++; } for (var i=2; i <= room_last; i++) { if (room_exists(i)) { view_wview[0] = ideal_width; view_hview[0] = ideal_height; view_wport[0] = ideal_width; view_hport[0] = ideal_height; } } surface_resize(application_surface, ideal_width, ideal_height); window_set_size(ideal_width, ideal_height); room_goto(room_next(room)); obj_game_controller step ///Przełącz tryb okienkowy if (keyboard_check_pressed(ord("F"))) { window_set_fullscreen(!window_get_fullscreen()); if (!window_get_fullscreen()) { window_set_size(obj_display_manager.ideal_width, obj_display_manager.ideal_height); } } draw GUI /// Wyswietlamy HUD gracza draw_set_color(c_white); draw_sprite(spr_mniejszy_hud,1,50,64); var __guiW = display_get_gui_width(), __guiH = display_get_gui_height(); //punkty czyli score wysrodkowalem to na HUD draw_set_color(c_white); draw_set_valign(fa_middle); draw_set_halign(fa_center); draw_set_font(fn_punkty); draw_sprite(spr_score,1,310,30); draw_text(310,75,"$"+string(global.pScore)); // Rozmieszenie monet draw_set_color(c_white); draw_set_valign(fa_middle); draw_set_halign(fa_center); draw_set_font(fn_punkty); draw_sprite(spr_coins,1,400,30); draw_text(400, 75, string(" " + string(global.coins))); //HP HUD if instance_exists(par_player) { //hpHUD = lerp(hpHUD,par_player.hp,.5); hpHUD=global.hp; maxHpHUD = par_player.maxHp; //HUD dopalaczy with obj_player { var _offset; _offset = 0; draw_set_font(fnt_pwrup); draw_set_valign(fa_bottom); draw_set_halign(fa_center); draw_set_color(c_white); draw_texture_flush(); if pwrupSpd > 0 { draw_sprite_ext(spr_pwrup_speed,0,__guiW-26,29+35*_offset,1,1,0,c_gray,.5); draw_text(__guiW-26,29+35*_offset,string(ceil(pwrupSpd/room_speed))); _offset++; } if pwrupStr > 0 { draw_sprite_ext(spr_pwrup_strength,0,__guiW-26,35+35*_offset,1,1,0,c_gray,.5); draw_text(__guiW-26,35+35*_offset,string(ceil(pwrupStr/room_speed))); _offset++; } if pwrupJmp > 0 { draw_sprite_ext(spr_pwrup_jump,0,__guiW-26,28+35*_offset,1,1,0,c_gray,.5); draw_text(__guiW-26,28+35*_offset,string(ceil(pwrupJmp/room_speed))); _offset++; } } } else { hpHUD = lerp(hpHUD,0,.5); } //HUD zycia draw_sprite_part(spr_hp_bar,1,1,0,180/maxHpHUD*hpHUD,130,90,14); draw_set_color(c_white); draw_set_valign(fa_middle); draw_set_halign(fa_center); draw_set_font(fn_punkty); draw_text(70, 74, string("x" + string(global.life))); //rozmieszczenie wskaznika zyc draw_sprite(spr_glowa,1,40,1);
  5. o sporo tego;-) kodu.... Ja też będę robił swój system zmiany broni..ale to na razie w planach.
  6. Zrobione;-) temat do zamknięcia;-) Użyłem funkcji draw_sprite oraz sprite_get_width. Dziękuję wszystkim za pomoc.
  7. A draw_sprite_tiled nie stworzy mi na scenerii wielu spritów? Myślałem o użyciu funkcji (x-sprite_width,y) i (x+sprite_width,y) ale nie mam na to pomysłu... Brak też na sieci dobrego przykładu.Są odnośnie Backgroundów,ale obiektów które udają parallaxe ciężko znaleźć. Kurcze żeby ten obiekt nie musiał być tłem pierwszoplanowym(foreground) to nie byłoby takiej z tym zabawy, Nie mogę go użyć jako tła(background) bo zasłania mi jeden obiekt który ma być odkryty..no i taka zabawa z tym jest...
  8. Mam pytanie... chcę uzyskać efekt parallaxy w taki sposób,że jak idę graczem w lewo to trawa przesuwa się w prawo i tak samo jak idę graczem w prawo to trawa przesuwa się w lewo. Powiedzmy,że prawie udało się... Ale problem polega na tym,że Mi ten obiekt trawa ucieka..lub zaczyna się gdzieś indziej.. view mam obecnie ustawiony na 1280x720 Proszę o pomoc...fajny jest ten efekt,ale nie wiem kurcze jak ten obiekt ustawić żeby nie kończył się z żadnej strony... różne wartości wpisywałem i nic to nie daje.. draw draw_sprite(spr_trawaprzedekran,0,x+view_xview[0]*-0.2 ,y+view_yview[0] + obj_player.y /-1.5)
  9. Rozwiązałem problem;-) okazało się,że źle dobierałem wartości.. Zamiast +2 powinno być -2 czyli tak Draw draw_sprite(spr_trawaprzedekran,0,x+view_xview[0]* 0.8 ,y+view_yview[0] + obj_player.y /-2) Dziękuję jeszcze raz za pomoc;-) Gnysek.
  10. To nic nie daje.. obiekt który ma być tłem znika z planszy..i to bez względu jaką wartość y ustawię. DRAW draw_sprite(spr_trawaprzedekran,0,x+view_xview[0]+ obj_player.x / 0.5 ,y+view_yview[0] + obj_player.y / 0.5)
  11. Gnysek dokładnie o to mi chodzi. Chcę uzyskać na obiektach parallaxe. Wartością y nie poruszam,a view_yview[0] nie zmienia się... Kompletnie nie mam na to pomysłu jak to ustawić w taki sposób aby te dwa obiekty poruszały się w innym tępie względem gracza zarówno na wartości x jak i y
  12. Cześć wszystkim. Mam tło główne nr1 (background) o rozmiarze 1024x1024 i obiekt który służy mi za tło nr2 o tym samym rozmiarze 1024x1024 (ewentualnie mogę to podzielić na 4 mniejsze kawałki) I teraz tak... chciałbym żeby obiekt nr2 który zastępuje na całej planszy tło nr2 mógł poruszać się lewo prawo góra dół w chwili kiedy będę poruszał się graczem. Tak jak to działa tło nr1 (background) Dwa pytania 1 Jak to mam ustawić na obiekcie? żeby zachowywał się tak samo jak tło ? i co w przypadku jeśli ten obiekt podzielę na 4 równe części czy mimo to będzie zachowana płynność i ten obiekt który będzie tłem nie będą te elementy przypadkiem na siebie się nakładać? 2 Od dłuższego czasu próbuje ustawić też obiekt który jest tłem.. Nie jest to duży obiekt i jest on umieszczony na dole planszy...Ma dawać wrażenie trawy na polanie przed graczem. Mam problem z ustawieniem na nim ruchu góra dół. Lewo prawo działa bardzo dobrze,ale góra dół niestety przy wielu próbach albo mi ucieka wtedy obiekt i znajduje się na innej części scenerii,albo całkiem znika bo znajduje się po za view. Tu jest kod tego obiektu.. Draw draw_sprite(spr_trawaprzedekran,0,x+view_xview[0]* 0.8 ,y+view_yview[0]* 0.1)//tu zmienialem wartosc y ale nic to nie daje Bardzo dziękuję o wszelkie porady sugestie.
  13. Cześć wszystkim, Mam trzy tła z czego dwa to są backgroundy a trzeci to obiekt który udaje tło. Stworzyłem obiekt i w stepie dla dwóch backgroundów ustawiłem sobie prostą parallaxe obj_ruchome_tlo STEP background_x[0] = view_xview[0]*0.3 background_y[0] = view_yview[0]*0.1 background_x[1] = view_xview[0]*0.2 background_y[1] = view_yview[0]*0.2 Niby wszystko w porządku,ale jest mały problem. Kiedy poruszam graczem to widzę,że tła lekko są opadnięte na dół.. Co zrobić żeby tła miały swoją stałą pozycję na planszy? Jest jeszcze taka sytuacja,że jak zwiększę szybkość tych dwóch backgroundów to mi tła uciekają w chwili ruchu bohaterem. Proszę pomóżcie ... i druga sprawa. Obiekt który jest tłem ustawiłem go na dole ekranu jest to trawa która daje wrażenie jakby była przed ekranem. ustawiłem jej parallaxe i porusza się lewo prawo..kiedy dodaje ruch góra dół to ten obiekt ucieka mi do góry...nie jest na swojej stałej pozycji.. obj_parallaxa_trawa DRAW draw_sprite(spr_trawaprzed,0,x+view_xview[0]* 0.8 ,y+view_yview[0]* 0.8)
  14. Cześć wszystkim.. Może głupie pytanie,ale jak ustawić głębie depth dla tła(background)? w GMS 1.4 w obiekcie nie ma to problemu bo w ustawieniach to się robi,a tło? dzięki za odpowiedź...
  15. Cześć wszystkim, Mam obiekt na planszy do którego kiedy podejdę bohaterem wyświetla mi napis "Press UP to climble" i jak oddale się napis znika.. Wszystko ok tak ma być. Problem polega na tym,że jak ustawie w ustawieniach żeby ten obiekt był niewidoczny to napis mi się już nie wyświetla.. Co muszę jeszcze zrobić żeby przy niewidocznym obiekcie wyświetlał Mi się napis? dziękuję mój kod Obj_napiszdarzeniowy Draw if(distance_to_object(obj_player)<8) { draw_set_font(fnt_zdarzenie) var _xx=x; var _yy=y-124; var _ss="Press UP to climble"; draw_set_alpha(1) draw_set_halign(1) draw_set_colour(c_black) draw_text(_xx-1,_yy-1,_ss) draw_text(_xx+1,_yy-1,_ss) draw_text(_xx-1,_yy+1,_ss) draw_text(_xx+1,_yy+1,_ss) draw_set_colour(c_white) draw_text(_xx,_yy,_ss) draw_set_alpha(1) } draw_self()
  16. Zmienia się animacja..ale jest nie pełna...
  17. Ten sposób wyżej nie działa;-) Bohater skacze,ale kilka klatek tylko się wyświetla Być może za dużo jest ramek animacji skoku,bo aż 52
  18. No dobra,a na podstawie wyżej przedstawionego kodu;-) zrobić coś takiego.. Mam 52 ramki animacji skoku..i teraz tak: Bohater skacze i jak jest na szczycie już wyskoku to jest animacja do 26 klatki,a jak spadnie to kończy się na 52 czyli ostatniej.. tak żeby w pełni wyświetliła się animacja skoku bohatera...każda ramka..
  19. dobra coś takiego... Tak działa;-) chociaż przydałoby się jeszcze troszkę zwolnić animacje.. Step if inAir == true && climbing == false { sprite_index = spr_player_air;// wyswietlaj animacje skakania } event-other-animation end if(sprite_index == spr_player_air) { image_index = image_number - 1; }
  20. Mam takie pytanie... przy skoku bohatera nie wyświetla mi się pełna animacja składająca się z 52 ramek animacji. Wcześniej kiedy wstawiłem starego sprita który miał tylko 10 ramek animacji skoku,to całość się wyświetliła.. Co robię nie tak? Z góry dziękuje za pomoc:-) obj_player create klatkaAnimWPowietrzu = 0; step if inAir == true && climbing == false { sprite_index = spr_player_air; var cmin = 0, cmax = 0; if vspd <= -1 { cmin = 0; cmax = 52; } else if vspd >= 1 { cmin = 26; cmax = 26; } else { cmin = 26; cmax = 26; } klatkaAnimWPowietrzu = clamp(klatkaAnimWPowietrzu + 0.1, cmin, cmax); image_index = klatkaAnimWPowietrzu; }
  21. Extra! jesteś cudotwórcą Królu nic dodać nic ująć;-) czapki z głów...
  22. Dzięki;-) ustawiłem sobie jeszcze migający tekst pod tekstem obrazkowym z informacją dla gracza,że aby przejść dalej to musi nacisnąć konkretny przycisk. No dobra i ostatnie do tego moje pytanie... Obecnie tekst pokazuje się razem z ilustracja..a czy jest możliwość ustawić tak ten tekst,że pokazuje się najpierw obrazek,a za moment literka po literce pokazuje się tekst? A na końcu tego tekstu pod tym tekstem pokaże się tekst w całości migajacy np "nacisnij dowolny klawisz" tak jak mając textboxa coś takiego;-)?
  23. Ok kończy się ostatnia ilustracja i tekst,ale w dalszym ciągu nie można przejść do następnego roomu step var czego_wiecej = max(array_length_1d(msg), sprite_get_number(spr_intro1)); if (index == czego_wiecej-1) // możliwe, że będziesz musiał dać też -1, czyli index == czego_wiecej-1 { // Slajd kończy się, gdy osiągnie ostanią klatkę spr_intro1 // to koniec } if (keyboard_check_pressed(vk_enter))//Zwiększyć ten indeks o jeden, jeśli naciśne Enter index+=1; if (index == sprite_get_number(spr_intro1)) //teraz możesz tego używać, bo spr_intro1 zawiera cztery klatki { // Slajd kończy się, gdy osiągnie ostanią klatkę spr_intro1 // to koniec }
×
×
  • Dodaj nową pozycję...