Skocz do zawartości

Cygnus

Użytkownicy
  • Postów

    330
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Cygnus

  1. ANtY dzięki;) z Energią to taki efekt chcę osiągnąć,że jeśli wskaźnik energii osiągnie 0 to odejmie mi życie o tak,czyli np jak podejde do wroga i wróg zada mi obrażenia energia mi się zmniejsza,a kiedy całkowicie mi się zmniejszy,wtedy tracę życie,o taki efekt mi się rozchodzi.
  2. Cześć wszystkim stworzyłem sobie obiekt controler a w nim życia ustawiłem startowo na 5 żyć no i ładnie obiekt wyświetla się w prawym górnym rogu,ale teraz chciałbym,żeby te życia zmieniały się np jeśli zbiorę 100 monet to zwiększy się o jedno życie,a jeśli spadnę na kolce to zmniejszy się o jedno,a jak wróg mnie dotknie,to najpierw energia się zmniejszy aż do poziomu takiego,że odejmie mi jedno życie itd.Jak to zrobić? tu pokaże część kodu wroga mojego obj_enemy_bulwa Event-kolizja z obj_player GML ///Zgniecenie if other.y < y && other.vspd > 0 && other.hurtClock == 0 && skok==0{ skok+=1; hp-=10; other.vspd = -12; with instance_create(x,y,obj_entity_die) { sprite_index = sprWrogGinie; //dodatkowa animacja wroga kiedy ginie gdy sie na niego naskoczy image_xscale = other.image_xscale; hspd = other.hspd; vspd = other.vspd; } } else if other.y < y && other.vspd > 0 && other.hurtClock == 0 && skok==1{ other.vspd = -12; hp-=10; with instance_create(x,y,obj_entity_die) { sprite_index = sprWrogGinie; //dodatkowa animacja wroga kiedy ginie gdy sie na niego naskoczy image_xscale = other.image_xscale; hspd = other.hspd; vspd = other.vspd; if (global.life > 0) { global.life -=1; instance_create(room_width/2,room_height/2,obj_player); } } instance_destroy(); }
  3. Threef no dobra a jest możliwość takiego zapisu gry,żeby nie musiał każdy obiekt wczytywać jego poprzedni stan głównie chodzi o to,żeby było wczytywane miejsce ostatniego stanu gry czyli byłem w 3 świecie i od tego zaczynam jeśli kliknę na load game ,nie muszą się wczytywać wrogowie,np zabiłem ich w tym świecie,ale nie muszą być zabici po wczytaniu stanu gry.Najważniejsze,to żeby wczytywał ilość żyć całą energie i świat w którym ostatnio wykonałem zapis gry.
  4. Ktoś wie jak to zrobić z tymi tłami,żeby się poruszały w momencie ruchu bohatera???
  5. Powinno zadziałać Threefie...jutro zobacze dzięki;) jak co,to bede pisał;) ale myśle ,że ifem zadziała;)
  6. Właśnie jak go wywalam,to nic nie daje to:/ coś cięzko będzie z tym game save;) i load;)
  7. No to jak wszystko wywaliłem w momencie klikniecia lewym przyciskiem myszki na load game mam taki błąd: zrobiłem tak jak napisałem wywaliłem wszystko cały kod z tego obiektu przycisku i w stepie dałem ten kod,no i bład o taki jest: GML ERROR in action number 1 of Step Event0 for object object164: Data structure with index does not exist. at gml_Object_object164_StepNormalEvent_1 (line 58) - for (i=0;i<ds_list_size(notOnMeList);i++) { pod tym obiektem mam ruchomą poruszającą się platformę kurcze że te z problem z tym save game jest.
  8. o taki błąd mi wywala po naciśnięciu load game,albo jak próbuje do głównego menu wejść jak dałem w przycisku load game ten kod GML game_load("Save.dat") to mi taki błąd wyskakuje GML ERROR in action number 1 of Step Event1 for object obj_ice: Data structure with index does not exist. at gml_Object_obj_ice_StepBeginEvent_1 (line 9) - for (i=0;i<ds_list_size(onMeList);i++) { rozumiem,że się odwołuje bład do tego obiektu ice mam stworzony obiekt ,który jest lodem i bohater się po nim ślizga. tu kod tego obiektu obj_ice: Begin STEP GML ///ruch while place_meeting(x,y-1,par_entity) { with instance_place(x,y-1,par_entity) { ds_list_add(other.onMeList,id); y -= 9999; } } for (i=0;i<ds_list_size(onMeList);i++) { with ds_list_find_value(onMeList,i) { y += 9999; multiF *= other.multiF; } } ds_list_clear(onMeList); Nie mam pojęcia,dlaczego to powoduje jakis konflikt z funkcją load game
  9. No dobra teraz się tworzy plik sprawdziłem ścieżkę dostępu,a i licznik z 0 wskoczył na 1 czyli zapisuje pod nazwą jak sprawdzałem save.dat ok,ale teraz kwestia mojego przycisku w menu load game może ja źle kod wpisuje bo mam dokładnie tak w tym przycisku load game w kodzie: STEP i w akcji mam: GML scr_mouse_hover o tak mam,i potem dodałem nowy kod i w nim wpisałem GML game_load("Save.dat") no i wywala błąd jak próbuje nacisnąć na ten load game przycisk
  10. ANtY tak też zrobiłem jak ten kolega napisał fakt teraz nie ma błędów,ale też to nic nie daje nachodzę bohaterem na ten obiekt save i nic nie zapisuje...zupełnie nic.. w Create w moim stworzonym obiekcie GML checked = false; tu w evencie bohatera lub w evencie tego nowego obiektu co stworzyłem GML if( !checked ) { checked = true; game_save("Save.dat"); } natomiast w obj_load_game ( to objekt gdzie mam przycisk load game w menu) dałem w Create w kodzie STEP - execute script GML scr_mouse_hover i niżej to w osobnym pliku w kodzie GML game_load("Save.dat")
  11. ANty proszę tu w linku kod całego mojego bohatera;) jak zobaczysz tam w komentrzach w stepie wyłączyłem te ruchome tło,no bo nie działa:(pliczek z calym kodem bohatera Game maker studio mam,ale to już wiesz;) dzięki za wszystko jesteś naprawdę w porządku. kliknij na to ANtY to przekieruje cie do mojego pliku Faktycznie Gnysek wybacz za mocno się rozpędziłem poprawie się z tagami;) teraz sam widzę;) dzięki za uwagę;)
  12. ANtY zrobiłem sobie obj_savegame a w nim dałem ten kod: w Create GML [/gml] checked = false; [gml] w evencie kolizji dałem ten kod co napisałeś GML [/gml] if( !checked ) { checked = true; game_save(); } [gml] no i tu w linijce przy game_save(); mam podświetlone na czerwono,że jest błąd próbowałem zarówno w evencie kolizji u bohatera jak i w evencie kolizji w tym obiekcie nowym czyli obj_savegame no i nadal ten błąd w linijce savegame(); natomiast w obj_load_game ( to objekt gdzie mam przycisk load game w menu) dałem w Create w kodzie GML [/gml] game_load() [gml] to też podświetla się na czerwono game_load() może średnik powinien być no nie wiem na końcu nawiasu ja ogólnie w tym obiekcie obj_load_game mam tak: STEP - execute script GML [/gml] scr_mouse_hover [gml] Bo mam sterowanie myszką menu takie zrobiłem.
  13. Dzię ANtY działa;) kurcze jak nic na żywo masz flaszke ode mnie za pomoc;) Widzę,że też piszesz gry,ja jestem grafikiem 2D i 3D oraz pracuje przy sieciach ,a kolega ogarnia programowanie,tyle,że teraz nie ma jak,bo wyjechał,i sporo mi roboty zostało.
  14. Dzięki ANty naprawdę dużo mi pomogłeś;)
  15. Mam taki problem może wkleję kod bohatera No i chciałbym,żeby tła się ruszały jak się poruszam bohaterem próbowałem użyć tego kodu i podobnych: GML[/gml] background_x[0] = view_xview[0]/5; background_y[0] = view_yview[0]/5; GML ale to nie działa i tła się nie poruszają,a mam dwa obecnie tła ustawione:/ nie wiem już co mam zrobić pomóżcie... o to niżej kod bohatera... STEP GML ///Controls if !place_meeting(x,y,obj_water) { //Normal movement if climbing == false { if keyboard_check_pressed(kJump) && inAir == false { vspd = -10-sign(pwrupJmp*3); jumpStr = 3; //Step down if keyboard_check(kDown) && place_meeting(x,y+1,par_solid_ghost) { y += 4; vspd = 0; jumpStr = 0; jumpTimes = 0; } } else if keyboard_check(kJump) && jumpStr > 0 { vspd -= 2+sign(pwrupJmp); jumpStr--; } else { if keyboard_check_released(kJump) && jumpStr > 2 { vspd += 2+sign(pwrupJmp); } jumpStr = 0; } if jumpTimes > 0 && keyboard_check_pressed(kJump) && inAir == true { vspd = -10-sign(pwrupJmp*3); jumpStr = 0; jumpTimes--; } if keyboard_check(kAction) && attClock == false { if keyboard_check(kDown) { attClock = 12; curAttack = 1; with instance_create(x,y-16,obj_projectile) { hspd = other.image_xscale*10; vspd = -4; g = .2; owner = par_player; strength = 0; explode = true; explosionRadius = 30; explosionStrength = 2+(sign(other.pwrupStr)*8); image_blend = c_lime; } } else { attClock = 18; curAttack = 0; with instance_create(x,y,par_attack) { sprite_index = mask_player_attack; image_xscale = other.image_xscale; owner = par_player; strength = 1+(sign(other.pwrupStr)*4); } } } if keyboard_check(kRight) && !keyboard_check(kLeft) { if hspd < 10+(sign(pwrupSpd)*5) { hspd = min(hspd+(2+(sign(pwrupSpd)*2))*multiF,10+(sign(pwrupSpd)*5)); } image_xscale = 1; } if keyboard_check(kLeft) && !keyboard_check(kRight) { if hspd > -10-(sign(pwrupSpd)*5) { hspd = max(hspd-(2+(sign(pwrupSpd)*2))*multiF,-10-(sign(pwrupSpd)*5)); } image_xscale = -1; } //Climb if place_meeting(x,y,par_climbable) && place_meeting(x,y-32,par_climbable) && place_meeting(x,y+32,par_climbable) && attClock <= 0 && (keyboard_check(kUp) || keyboard_check(kDown)) { climbing = true; vspd = 0; hspd = 0; } } //Climbing if climbing == true { var __hsign = keyboard_check(vk_right)-keyboard_check(vk_left); var __vsign = keyboard_check(vk_down)-keyboard_check(vk_up); hspd = min(max(hspd+__hsign,-2),2); vspd = min(max(vspd+__vsign*2,-4),4); if __vsign == -1 && !place_meeting(x,y-32,par_climbable) { climbing = false; vspd = -10; } if __hsign != 0 { image_xscale = __hsign; } if !place_meeting(x,y,par_climbable) || !place_meeting(x,y+32,par_climbable) { climbing = false; } } } else { //Swimming swimDir = point_direction(0,0,keyboard_check(kRight)-keyboard_check(kLeft),keyboard_check(kDown)-keyboard_check(kUp)); if abs(keyboard_check(kRight)-keyboard_check(kLeft))+abs(keyboard_check(kDown)-keyboard_check(kUp)) != 0 { hspd += lengthdir_x(.5,swimDir); if !(swimDir > 0 && swimDir < 180) || place_meeting(x,y-sprite_height/3-1,obj_water) { vspd += lengthdir_y(.5,swimDir); } } if keyboard_check(kUp) && !place_meeting(x,y-sprite_height/1.5,obj_water) && vspd <= 0 { vspd = -12; } } GML jeszcze raz drugi kod w STEP GML ///View offset gvOffY = -32; if !place_meeting(x,y,obj_water) { gvOffX = image_xscale*view_wview[0]/4; if keyboard_check(kUp) && !keyboard_check(kDown) && inAir == false { gvOffY -= view_hview[0]/3; } else if keyboard_check(kDown) && !keyboard_check(kUp) && inAir == false { gvOffY += view_hview[0]/3; } } //Tła funkcja odpowiedzialna za ruchome tło,kiedy bohater idzie tło jakby podąża za nim /* background_x[0] = view_xview[0]/5; background_y[0] = view_yview[0]/5; background_x[1] = view_xview[1]/5; //mozna dodac na zachod slonca;p background_y[1] = view_yview[1]/5; /* background_x[2] = view_xview /5; background_y[2] = view_yview /5; */ GML Begin Step GML ///Reset image_blend = merge_colour(image_blend,c_white,0.1); if inAir == false { jumpTimes = 1; } GML End STEP kod1 GML ///Inherit if climbing == true { multiG = 0; vF = true; } else { vF = false; } event_inherited(); GML End step kod 2 GML ///Sprites if !place_meeting(x,y,obj_water) { if inAir == false && keyboard_check(kRight) = keyboard_check(kLeft) && sprite_index != spr_player_stand && climbing == false { sprite_index = spr_player_stand; image_index =0; } if inAir == false && (keyboard_check(kRight) || keyboard_check(kLeft)) && keyboard_check(kRight) != keyboard_check(kLeft) && sprite_index != spr_player_run && climbing == false { sprite_index = spr_player_run; image_index = 0; } if inAir == true && climbing == false { sprite_index = spr_player_air; if vspd <= -1 { image_index = 0; } else if vspd >= 1 { image_index = 2; } else { image_index = 1; } } if climbing == true { if x == xprevious && y == yprevious { if sprite_index != spr_player_hang { sprite_index = spr_player_hang; } } else { if sprite_index != spr_player_climb { sprite_index = spr_player_climb; } } } if attClock > 0 && curAttack == 0 { sprite_index = spr_player_attack; image_index = 14-(attClock); attClock -= 1; } if attClock > 0 && curAttack == 1 { sprite_index = spr_player_shoot; image_index = 6-(attClock); attClock -= 1; } swimDir = point_direction(xprevious,yprevious,x,y); drawAngle = swimDir; if image_xscale < 0 { drawAngle += 180; } } else { if sprite_index != spr_player_water { sprite_index = spr_player_water; image_index = 0; } if keyboard_check(kRight) && !keyboard_check(kLeft) && image_xscale = -1 { image_xscale = 1; drawAngle -= 180; } else if keyboard_check(kLeft) && !keyboard_check(kRight) && image_xscale = 1 { image_xscale = -1; drawAngle += 180; } if abs(keyboard_check(kRight)-keyboard_check(kLeft))+abs(keyboard_check(kDown)-keyboard_check(kUp)) != 0 { image_index += 2; if image_xscale > 0 { drawAngle -= angle_difference(drawAngle,swimDir)/16; } else { drawAngle -= angle_difference(drawAngle,180+swimDir)/16; } } } GML End step kod 3 GML ///Health and power ups if hurtClock > 0 { visible = !visible; hurtClock -= 1; } else { visible = true; } if hp <= 0{ instance_destroy(); with (instance_create(x,y,obj_entity_die)) { sprite_index = spr_player_die01; image_xscale = other.image_xscale; respawnObject = obj_player; respawnX = spawnX; respawnY = spawnY; physics = true; respawn = true; } } //Power ups if pwrupSpd > 0 { //Effect if pwrupSpd mod 2 == 0 { if image_xscale > 0 { part_type_orientation(pArrow,0,0,0,0,0); part_type_direction(pArrow,0,0,0,0); } else { part_type_orientation(pArrow,180,180,0,0,0); part_type_direction(pArrow,180,180,0,0); } part_type_colour1(pArrow,c_lime); part_particles_create(partSystem,x-image_xscale*16,y-irandom(70),pArrow,1); } //Count down pwrupSpd -= 1; } if pwrupStr > 0 { //Effect image_blend = merge_colour(image_blend,c_red,0.11); //Count down pwrupStr -= 1; } if pwrupJmp > 0 { //Effect if pwrupJmp mod 2 == 0 { part_type_orientation(pArrow,90,90,0,0,0); part_type_direction(pArrow,90,90,0,0); part_type_colour1(pArrow,c_yellow); part_particles_create(partSystem,x-16+irandom(32),y,pArrow,1); } //Count down pwrupJmp -= 1; } [gml]
  16. O właśnie o taki efekt mi chodziło;D Dzięki;) Her AntY a słuchaj jak zrobić żeby ten napis powiększyć i żeby on wolno się oddalał;) bo teraz jest mały i szybko się oddala;) AntY i pytanie,czy w miejsce napisu Game Over mogę wstawić swoje zrobione logo jeśli tak to mam zrobić? np logo mam pod nazwa obj_logo
  17. No tak to już robiłem stworzyłem objekt intro a w nim DRAW i w kodzie wpisałem GML [/gml]draw_set_halign(fa_center); draw_set_valign(fa_middle); image_angle += 1; draw_text_transformed(room_width / 2, room_height / 2, "GAME OVER!", 2, 2, image_angle);[gml] wstawiłem ten objekt intro do pokoju i niestety nie uruchamia się są błędy..pewnie czegoś brakuje.. Dobra mój błąd był,ok napis tu w tym przykładzie Game Over on tylko się obraca...a co zrobić,żeby był taki efekt napisu jak na tym filmiku co podałem linka? dzięki ogólnie za pomoc;)
  18. MI chodzi głównie o zapis gry podobny do tego co jest w TOP HAT czyli nachodzę na dany element na planszy,i następuje zapis..potem wychodzę z gry do głównego menu klikam na load game i zaczynam od tego właśnie momentu,co zapisałem dokładnie o takie coś mi chodzi..
  19. Rozumiem,że tworze obj np intro w nim funkcja Draw a potem w kodzie wpisuje GML [/gml]draw_text_transformed[gml]
  20. Cześć wszystkim chciałbym zrobić takie intro z napisami zbliżającymi się jak na tym filmiku pierwsze sekundy filmiku od 0:05 do 0:16sek Magnetic Fields ktoś wie jak to zrobić? bardzo proszę o pomoc posiadam Game Maker Studio
  21. Dzień dobry wszystkim mam taki problem otóż stworzyłem sobie w menu gry z load game i teraz w grze załóżmy jestem w drugim świecie nachodzę na dany jakiś obiekt i zapisuje sobie gre,i teraz jak wyjdę z gry i po naciśnięciu load game,żeby to to sczytał,że skończyłem na tym drugim etapie. Jak to zrobić? domyślam się,że muszę obiekt utworzyć. Posiadam Game Maker Studio
  22. Gnysku no cóż zrobiłem tak jak Ty,hmmm błędu nie ma gra się odpala,ale dalej jest linia,oczywiście objekt ten umieściłem na planszach.Jedynie co to się ekran zmniejszył,a kreska jak jest tak jest:/
  23. A,więc tak Gnysku;) Stworzyłem pusty obiekt o nazwie obj_skalowalnie i w nim tak w ewenencie Create wpisałem: GML [/gml] application_surface_enable(true); application_surface_draw_enable(false); [gml] a w ewenencie Post Draw wpisałem: GML [/gml] draw_surface_ext(0,0,application_surface,1920,1080); [gml] No,ale błąd wyskakuje w ewenencie Post Draw "Wrong number of arguments to function on script
  24. Dziękuje Gnysek A powiedz mi,w którym miejscu mam wyłączyć application_surface?
×
×
  • Dodaj nową pozycję...