Cygnus Opublikowano 26 Czerwca 2015 Autor Udostępnij Opublikowano 26 Czerwca 2015 Threef view na pewno w tych pokojach menu i game over nie mam ustawionych,bo patrzyłem w ustawieniach... został rozwiązany problem jak wychodzi się z gry do głównego menu,ale pozostał problem jak bohater ginie,wskakuje plansza game over już nie wyraźna no i jak nacisnę escape,bo tam mam ustawione ,to przechodzę do menu głównego gry i jest niewyraźne..ten obiekt stworzony z tym kodem co mi podałeś wstawiłem go zarówno w game over jak i w menu głównym. Dziwne trochę,bo jak wyjdę z gry do głównego menu,no to ładnie już wszystko wygląda,a jak zginę i wskoczy plansza game over,to już bardzo brzydko... Threef co mam podać jeszcze żeby zlokalizować co jest nie tak??? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 26 Czerwca 2015 Udostępnij Opublikowano 26 Czerwca 2015 To samo co wtedy. Musimy znać wymiary wszystkich powierzchni. Twój błąd pojawia się po zmianie rozmiaru application_surface. Musisz sprawdzić jakie są dobre i jakie są złe wymiary. Dopiero wtedy będzie można coś robić. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 26 Czerwca 2015 Autor Udostępnij Opublikowano 26 Czerwca 2015 a,więc tak całe menu gry i game over te roomy mam w jednej rozdzielczości 1920x1080 natomiast scenerie gry mam w takich rozmiarach: 19200x800 taka długa plansza...Jeśli o to chodzi.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 27 Czerwca 2015 Autor Udostępnij Opublikowano 27 Czerwca 2015 Tutaj cały kod ze wszystkich obiektów jakie są w scenerii w grze: 1.obj_game_controller CREATE GML ///Setup global.pScore = 0; global.life = 5; global.coins = 0; globalvar spawnX, spawnY; //View globalvar gvX, gvY, gvW, gvH, gvObj, gvOffX, gvOffY; gvX = view_xview[0]; gvY = view_yview[0]; gvW = view_wview[0]; gvH = view_hview[0]; gvObj = view_object[0]; gvOffX = 0; gvOffY = 0; //HUD hpHUD = 0; maxHpHUD = 0; END STEP GML ///View if view_wview[0] != gvW || view_hview[0] != gvH { var tempW, tempH; tempW = view_wview[0]; tempH = view_hview[0]; if gvW/view_wport[0] >= gvH/view_hport[0] { view_hview[0] = lerp(view_hview[0],gvH,.3); view_wview[0] = view_hview[0]/view_hport[0]*view_wport[0]; } else { view_wview[0] = lerp(view_wview[0],gvW,.3); view_hview[0] = view_wview[0]/view_wport[0]*view_hport[0]; } view_xview[0] -= (view_wview[0]-tempW)/2; view_yview[0] -= (view_hview[0]-tempH)/2; } if view_wview[0] > room_width { view_wview[0] = room_width; view_hview[0] = view_wview[0]/view_wport[0]*view_hport[0]; } if view_hview[0] > room_height { view_hview[0] = room_height; view_wview[0] = view_hview[0]/view_hport[0]*view_wport[0]; } if instance_exists(gvObj) { gvX = min(max(0,gvObj.x+gvOffX-view_wview[0]/2),room_width-view_wview[0]); gvY = min(max(0,gvObj.y+gvOffY-view_hview[0]/2),room_height-view_hview[0]); gvOffX = 0; gvOffY = 0; } view_xview[0] = round(min(max(0,lerp(view_xview[0],gvX,.15)),room_width-view_wview[0])); view_yview[0] = round(min(max(0,lerp(view_yview[0],gvY,.15)),room_height-view_hview[0])); gvW = gvWStart; gvH = gvHStart; //Backgrounds for(i=0;i<8;i++) { if background_visible == true || background_foreground == true { //Horizontal if background_width != room_width { background_x = view_xview[0]/(room_width-view_wview[0])*(room_width-background_width); } //Vertical if background_height != room_height { background_y = view_yview[0]/(room_height-view_hview[0])*(room_height-background_height); } } } Room Start GML ///Destroy self if string_copy(room_get_name(room),0,9) != "roo_world" { //wyszukiwwanie nazw map z poaczatkiem roo_world instance_destroy(); } GML ///View globalvar gvXStart, gvYStart, gvWStart, gvHStart, gvObjStart; gvXStart = view_xview[0]; gvYStart = view_yview[0]; gvWStart = view_wview[0]; gvHStart = view_hview[0]; gvObjStart = view_object[0]; if instance_exists(gvObj) { view_xview[0] = min(max(0,gvX),room_width-view_wview[0]); view_yview[0] = min(max(0,gvY),room_height-view_hview[0]); } DRAW GUI GML ///Draw player HUD draw_set_color(c_white); draw_text(32, 88, string(" Score: " + string(global.pScore))); var __guiW = display_get_gui_width(), __guiH = display_get_gui_height(); draw_sprite(spr_healthbar,0,0,0); draw_text(32, 64, string(" Lives: " + string(global.life))); draw_text(32, 120, string(" Coins: " + string(global.coins))); if instance_exists(par_player) { hpHUD = lerp(hpHUD,par_player.hp,.5); maxHpHUD = par_player.maxHp; with obj_player { var _offset; _offset = 0; draw_set_font(fnt_small); 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); } draw_sprite_part(spr_healthbar,1,4,0,91/maxHpHUD*hpHUD,32,4,0); 2.obj_room_controller press<ESCAPE> GML instance_create(x, y, obj_pause_menu_controller); 3.obj_global_controller CREATE GML ///Setup //restart =true; //r = 0; //World selections globalvar openWorlds; openWorlds = ds_list_create(); ds_list_add(openWorlds,roo_world1_1); ds_list_add(openWorlds,roo_world2_1); //ds_list_add(openWorlds,SEN); //Key bindings globalvar kUp, kDown, kLeft, kRight, kJump, kAction; kUp = vk_up; kDown = vk_down; kLeft = vk_left; kRight = vk_right; kJump = vk_space; kAction = ord("X"); //Map Z for other keyboard layouts keyboard_set_map(ord("Y"),ord("Z")); keyboard_set_map(ord("W"),ord("Z")); //Particle system globalvar partSystem, pRain, pLightFog, pHeavyFog, pArrow, pPlayerProjectileTrail, pExplosion, pPixel, pLavaGlow, pz; partSystem = part_system_create(); part_system_depth(partSystem,-100); pRain = part_type_create() part_type_alpha3(pRain,0,.5,0); part_type_colour1(pRain,c_white); part_type_shape(pRain,pt_shape_line); part_type_size(pRain,0.15,0.15,0,0); part_type_gravity(pRain,1,270); part_type_direction(pRain,270,270,0,0); part_type_speed(pRain,8,16,0,0); part_type_orientation(pRain,90,90,0,0,0); part_type_life(pRain,3,5); pLightFog = part_type_create() part_type_alpha2(pLightFog,.05,0); part_type_colour2(pLightFog,c_white,c_gray); part_type_shape(pLightFog,pt_shape_cloud); part_type_size(pLightFog,1,2,0,0); part_type_direction(pLightFog,0,360,0,0); part_type_speed(pLightFog,.1,.2,0,0); part_type_orientation(pLightFog,0,360,0,0,0); part_type_life(pLightFog,30,120); pHeavyFog = part_type_create() part_type_alpha3(pHeavyFog,0,.2,0); part_type_colour2(pHeavyFog,c_white,c_gray); part_type_shape(pHeavyFog,pt_shape_cloud); part_type_size(pHeavyFog,1,3,0,0); part_type_direction(pHeavyFog,0,360,0,0); part_type_speed(pHeavyFog,.1,.2,0,0); part_type_orientation(pHeavyFog,0,360,0,0,0); part_type_life(pHeavyFog,30,120); pArrow = part_type_create() part_type_alpha3(pArrow,0,.5,0); part_type_colour1(pArrow,c_lime); //Will change on use part_type_sprite(pArrow,spr_part_arrow,true,false,false); part_type_direction(pArrow,180,180,0,0); //Will change on use part_type_speed(pArrow,1,2,.1,0); part_type_orientation(pArrow,180,180,0,0,0); //Will change on use part_type_life(pArrow,10,20); pPlayerProjectileTrail = part_type_create() part_type_alpha2(pPlayerProjectileTrail,.8,0); part_type_sprite(pPlayerProjectileTrail,spr_projectile,true,false,false); //Will change in projectile part_type_size(pPlayerProjectileTrail,.8,.8,0,0); part_type_life(pPlayerProjectileTrail,5,10); pz = part_type_create() part_type_alpha2(pz,.8,0); part_type_sprite(pz,spr_pocisk_armatek,true,false,false); //Will change in projectile part_type_size(pz,.8,.8,0,0); part_type_life(pz,5,10); pExplosion = part_type_create() part_type_alpha2(pExplosion,1,0); part_type_color1(pExplosion,c_orange); part_type_shape(pExplosion,pt_shape_explosion); part_type_size(pExplosion,1,1,0,0); //Will change on use part_type_life(pExplosion,30,30); part_type_blend(pExplosion,true); pPixel = part_type_create(); part_type_shape(pPixel,pt_shape_pixel); pLavaGlow = part_type_create() part_type_alpha3(pLavaGlow,0,.1,0); part_type_colour1(pLavaGlow,c_orange); part_type_shape(pLavaGlow,pt_shape_smoke); part_type_size(pLavaGlow,1,1,0,0); part_type_direction(pLavaGlow,90,90,0,0); part_type_speed(pLavaGlow,.1,.2,0,0); part_type_orientation(pLavaGlow,0,360,0,0,0); part_type_life(pLavaGlow,60,180); part_type_blend(pLavaGlow,true); DESTROY GML part_system_destroy(partSystem); part_type_destroy(pRain); STEP GML key_r = keyboard_check_pressed(ord("R")); if (key_r) { room_restart(); } BEGIN STEP GML ///Window if (view_wport[0] != window_get_width() || view_hport[0] != window_get_height()) && window_get_width() != 0 { view_wport[0] = window_get_width(); view_hport[0] = window_get_height(); view_hview[0] = view_wview[0]/view_wport[0]*view_hport[0]; surface_resize(application_surface,view_wview[0],view_hview[0]); display_set_gui_size(view_wport[0],view_hport[0]); //wersja podstawowa</span> } 4.obj_fade CREATE GML fadeIn = true; alpha = 1; alarm[0] = room_speed * 0.05; ALARM 0 GML if (fadeIn == true) { if (alpha > 0) { alpha -= 0.015; alarm[0] = room_speed * 0.05; } else { alpha = 0; } } ALARM 1 GML if (fadeIn == false) { if (alpha < 1) { alpha += 0.015; alarm[1] = room_speed * 0.05; } else { alpha = 1; if (room == rm_cygnus) { room_goto(rm_menu); } else { room_goto(rm_cygnus); } if (obj_options) { room_goto(rm_options); // do zmiany jak dojdzie pokoj z rozbudowanyi opcjami } else { room_goto(obj_back); } if (obj_play) { room_goto(SEN); } else { room_goto(SENczB); } } } DRAW GML draw_set_color(c_black); draw_set_alpha(alpha); draw_rectangle(0,0,room_width,room_height,false); draw_set_alpha(1); draw_set_font(fntScore) if (alpha > 0.5) { draw_set_color(c_white); } else { draw_set_color(c_black); } draw_set_halign(fa_center); draw_set_valign(fa_middle); //draw_text(room_width/2,50,"Alpha = " +string(alpha)); //sprawdzanie przyciemniania jak dziala w kazdym pokoju 5.obj_przejscie7 CREATE GML ///Setup ///Change room if (room == roo_world1_1) { room_goto_transition(roo_world1_1,TRANS_MAXIMIZE,10+irandom(80),choose(c_lime,c_yellow,c_white,c_black,c_gray),true); } To są wszystkie obiekty u mnie na scenerii w grze... a tu jest w menu gry takie obiekty ten obj_fade co jest w scenerii gry i jeszcze obj_controller o to kod obj_controller CREATE GML global.pScore = 0; STEP GML key_r = keyboard_check_pressed(ord("R")); key_esc = keyboard_check_pressed(vk_escape); if (key_r) { room_restart(); } if (key_esc) { game_end(); } DRAW GUI GML draw_set_color(c_white); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 27 Czerwca 2015 Udostępnij Opublikowano 27 Czerwca 2015 Nie potrzebujemy kodu. Wszystko już od dawna w nim wyczytaliśmy. Twoje widoki są zależne od rozmiaru okna gry. Te nie jest określone więc nie znamy rzeczywistych wymiarów jakie potrzebujemy. O czym mówię? O tym fragmencie: GML view_wport[0] = window_get_width(); view_hport[0] = window_get_height(); view_hview[0] = view_wview[0]/view_wport[0]*view_hport[0]; surface_resize(application_surface,view_wview[0],view_hview[0]); display_set_gui_size(view_wport[0],view_hport[0]); Wszystkie dane jakie potrzebujemy do rozwiązania problemu są wyliczane z tych prostych obliczeń, ale nie znamy danych wejściowych, bo są zależne od rozmiaru okna które może mieć wymiary dowolne. Trzeci raz odwołuję cię do mojej poprzedniej odpowiedzi. Nie będę już odpisywał jeżeli nie będę mieć dostępu do danych. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 28 Czerwca 2015 Autor Udostępnij Opublikowano 28 Czerwca 2015 1.Menu główne nie zepsute ma takie dane: view_hview[0]:480 view_hport[0]:480 App_surface: 1920x1080 i tak samo jest w całym menu opcji zanim się popsuje,po lekkiej naprawie co pomogłeś jak wyjdę do menu bohaterem z gry,to też są jw te dane. 2.tu dane planszy już z samej rozgrywki gry view_hview[0]:542.19 view_hport[0]:1041 App_surface: 1000x542 3.Tutaj room game_over ,który pojawia się w momencie śmierci bohatera o to jego dane: view_hview[0]:555.20 view_hport[0]:1041 App_surface: 1024x555 4.No,a tu jeszcze raz menu główne gry,te same co na samej górze ten sam room,ale już zepsute po wyjściu z pokoju game over jak nacisnę Escape view_hview[0]:347 view_hport[0]:1041 App_surface: 640x347 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 28 Czerwca 2015 Udostępnij Opublikowano 28 Czerwca 2015 No i to są ciekawe dane. Nie zapytałem się nigdzie wcześniej ale domyślam się gra jest odpalana na fullscreen. Z tego powodu przed jakąkolwiek ingerencją w zmiany rozmiarów menu na początku ma taki rozmiar application_surface. view_hport[0] jest zależne od rozmiaru okna. 1041 jest dość dziwną wartością, ale okno można rozszerzać więc nie powinno to dziwić. view_hview[0] w samej grze ma wartość po przecinku. Ogółem wszystkie wartości dotyczące kamery przepuszczałbym przez funkcję round(). Room game_over zachowuje się dziwnie. Wartość jest inna i zwalam winę na te dziwne operacje z lerp(). Jeżeli game_over ma zachowywać się tak samo jak menu to możesz tu wykorzystać to samo rozwiązanie co dałem wcześniej. Powinno działać. Jeżeli nie to we wszystkich obiektach w tym room sprawdź czy gdzieś nie zmieniasz view_hview[0] albo surface_resize(application_surface, ...) Wciąż wydaje mi się że to nie jest rozwiązanie. Czy masz jakieś obiekty albo room z zaznaczonym "Presistent"? Jak tak to które? W nich też sprawdź czy nie masz surface_resize(). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 28 Czerwca 2015 Autor Udostępnij Opublikowano 28 Czerwca 2015 Tak w paru obiektach mam presistent zaznaczone mam poodznaczać? co do tego obiektu,co pomogło w menu jak wyjde z gry,to w game over już to nie pomaga. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 28 Czerwca 2015 Udostępnij Opublikowano 28 Czerwca 2015 Nie pomaga bo któryś obiekt jest persistent i pomimo że nie masz go wstawionego w room to on w nim jest. Nie możesz tego odznaczyć bo przestanie Ci działać kupa innych rzeczy. Przerób na to: GML if(instance_exists(TEN OBIEKT KTÓRZY PSUJE WSZYSTKO)){with(TEN OBIEKT KTÓRZY PSUJE WSZYSTKO){instance_destroy()}} surface_resize(application_surface,room_width,room_height) display_set_gui_maximise() Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 28 Czerwca 2015 Autor Udostępnij Opublikowano 28 Czerwca 2015 No dobra stworzyć nowy pusty obiekt w nim wkleić to od Ciebie,w tych miejsach wpisać wszystkie obiekty,które psują obraz? Threef w Draw wpisuje ten kod w nowym obiekcie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 28 Czerwca 2015 Udostępnij Opublikowano 28 Czerwca 2015 Nie musisz tworzyć nowego obiektu. Ten kod ma się wykonać raz więc w Create wystarczy... Chyba że room jest persistent, wtedy w room start. Przerób tamten co już stworzyłeś. No i jak masz więcej takich obiektów to: GML if(instance_exists(TEN OBIEKT KTÓRZY PSUJE WSZYSTKO)){with(TEN OBIEKT KTÓRZY PSUJE WSZYSTKO){instance_destroy()}} if(instance_exists( INNY OBIEKT KTÓRZY PSUJE WSZYSTKO)){with(INNY OBIEKT KTÓRZY PSUJE WSZYSTKO){instance_destroy()}} surface_resize(application_surface,room_width,room_height) display_set_gui_maximise() Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Cygnus Opublikowano 28 Czerwca 2015 Autor Udostępnij Opublikowano 28 Czerwca 2015 Threef brawo;) działa zrobiłem tak jak napisałeś nie w DRAW a w STEPIE racja;) wipisalem te dwa obiekty,które powodują problem;) Dziękuje!!! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się