Skocz do zawartości

kt1117

Użytkownicy
  • Postów

    1 103
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez kt1117

  1. A daj w with przed if GML show_message("r:"+image_blend.r+"g:"+image_blend.g+"b:"+image_blend.b); To powinno wyświetlić wartości image_blend każdego obiektu tego typu. Ja tak robię kiedy coś nie działa a nie wiem co. Dzięki temu będziesz wiedział jakie wartości powinieneś podać w if.
  2. a!=b || a!=c => !(a==b && a==c) (a==b && a==c) => b==c //a to nie jest prawda, bo menu!=level_choose więc (a==b && a==c) jest zawsze fałszywe więc !(a==b && a==c) jest zawsze prawdziwe Czyli twój warunek jest zawsze prawdziwy. Myślę że miałeś na myśli taki kod GML if (room!=menu && room!=level_choose){audio_stop_sound(music_menu)}
  3. Mój pomysł jest taki. Dajesz celownik Create GML mouse_delta=0 mouse_xprevious=-1; wsp=0.5//daj tu coś sensownego camspeed=20;//i tu też insensitivitist=2;//j.w. Begin Step GML if (mouse_xprevious!=-1) mouse_delta=mouse_x-mouse_xprevious; if (abs(mouse_delta)<insensitivitist)) mouse_delta=0; //tu sobie ustaw pozycje myszki jak chcesz (nie pamiętam jak to było) Step GML view_angle[0]+=min(abs(mouse_delta)*wsp,camspeed)*sign(mouse_delta); hero.direction+=mouse_delta*wsp;//bohater musi się obrócić razem z view hero.image_angle+=mouse_delta*wsp;//obrazek też End Step GML mouse_xprevious=mouse_x; Draw GUI GML draw_sprite(view_wview[0]/2,view_hview[0]/4,sprite_celownika);//tu też sobie zmień To taki koncept tylko
  4. OK, nie wszędzie podmieniłem GML ///AI wroga Dino chodzi nerwowo i strzela jak nas zobaczy var stopped; stopped=0; if place_free(x+32,y+3) && image_xscale = 1 { image_xscale = -1; } if place_free(x-32,y+3) && image_xscale = -1 { image_xscale = 1; } image_angle = direction; if distance_to_object(obj_player)<90 { stopped=1 if obj_player.x>x image_xscale=1; else image_xscale=-1; if( strzal ) { var i; i = instance_create( x, y, obj_laserek ); i.speed = 10; i.hspeed=image_xscale*10; //i.direction = point_direction(i.x,i.y,obj_player.x,obj_player.y); //ew i.hspeed=image_xscale*10; jak ma strzelac tylko w poziomie, niezaleznie od wysokosci bohatera strzal = 0; alarm[0]=room_speed*0.2 } } else { if alarm[1] = -1 alarm[1] = room_speed+random(room_speed*2); if (place_free(x+image_xscale*5,y) && instance_position(x+image_xscale*5,y+32,par_solid)) x+=image_xscale*5; } //naprawiamy bugujacego sie wroga przy zawracaniu if place_meeting(x+5,y,par_solid ) && image_xscale = 1 { image_xscale = -1; } if place_meeting(x-5,y,par_solid) && image_xscale = -1 { image_xscale = 1; } ///Ruch wroga z odwracaniem go przez obiekty dziedziczace z par_solid if !place_meeting(x+sign(image_xscale),y-2,par_solid) { if image_xscale > 0 { hspd = min(hspd+sign(image_xscale),2); } else if image_xscale < 0 { hspd = max(hspd+sign(image_xscale),-2); } } if hspd == 0 { image_xscale *= -1; unstick(8); } //Obrazenia wroga if hurtClock > 0 { visible = !visible; hurtClock -= 1; } else { visible = true; } if hp <= 0 { instance_destroy(); instance_create(x,y+50,choose(obj_coin,object102)) // daje losowy item np monety albo jabłuszka with instance_create(x,y,obj_entity_die) { sprite_index = DinoGinie; //sprite do poruszania sie wroga image_xscale = other.image_xscale; image_yscale = other.image_yscale; hspd = other.hspd; vspd = other.vspd; } } if (stopped) hspd=0;
  5. Ja tam w jednym miejscu kodu zamieniłem par_wall na par_solid, to powinno robić różnicę.
  6. Zobacz teraz: GML ///AI wroga Dino chodzi nerwowo i strzela jak nas zobaczy var stopped; stopped=0; if place_free(x+32,y+3) && image_xscale = 1 { image_xscale = -1; } if place_free(x-32,y+3) && image_xscale = -1 { image_xscale = 1; } image_angle = direction; if distance_to_object(obj_player)<90 { stopped=1 if obj_player.x>x image_xscale=1; else image_xscale=-1; if( strzal ) { var i; i = instance_create( x, y, obj_laserek ); i.speed = 10; i.hspeed=image_xscale*10; //i.direction = point_direction(i.x,i.y,obj_player.x,obj_player.y); //ew i.hspeed=image_xscale*10; jak ma strzelac tylko w poziomie, niezaleznie od wysokosci bohatera strzal = 0; alarm[0]=room_speed*0.2 } } else { if alarm[1] = -1 alarm[1] = room_speed+random(room_speed*2); if (place_free(x+image_xscale*5,y) && instance_position(x+image_xscale*5,y+32,par_solid)) x+=image_xscale*5; } //naprawiamy bugujacego sie wroga przy zawracaniu if place_meeting(x+5,y,par_wall ) && image_xscale = 1 { image_xscale = -1; } if place_meeting(x-5,y,par_wall) && image_xscale = -1 { image_xscale = 1; } ///Ruch wroga z odwracaniem go przez obiekty dziedziczace z par_solid if !place_meeting(x+sign(image_xscale),y-2,par_solid) { if image_xscale > 0 { hspd = min(hspd+sign(image_xscale),2); } else if image_xscale < 0 { hspd = max(hspd+sign(image_xscale),-2); } } if hspd == 0 { image_xscale *= -1; unstick(8); } //Obrazenia wroga if hurtClock > 0 { visible = !visible; hurtClock -= 1; } else { visible = true; } if hp <= 0 { instance_destroy(); instance_create(x,y+50,choose(obj_coin,object102)) // daje losowy item np monety albo jabłuszka with instance_create(x,y,obj_entity_die) { sprite_index = DinoGinie; //sprite do poruszania sie wroga image_xscale = other.image_xscale; image_yscale = other.image_yscale; hspd = other.hspd; vspd = other.vspd; } } if (stopped) hspd=0; par_wall powinien dziedziczyć po par_solid
  7. Tak ma być GML ///AI wroga Dino chodzi nerwowo i strzela jak nas zobaczy var stopped; stopped=0; if place_free(x+32,y+3) && image_xscale = 1 { image_xscale = -1; } if place_free(x-32,y+3) && image_xscale = -1 { image_xscale = 1; } image_angle = direction; if distance_to_object(obj_player)<90 { stopped=1 if obj_player.x>x image_xscale=1; else image_xscale=-1; if( strzal ) { var i; i = instance_create( x, y, obj_laserek ); i.speed = 10; i.hspeed=image_xscale*10; //i.direction = point_direction(i.x,i.y,obj_player.x,obj_player.y); //ew i.hspeed=image_xscale*10; jak ma strzelac tylko w poziomie, niezaleznie od wysokosci bohatera strzal = 0; alarm[0]=room_speed*0.2 } } else { if alarm[1] = -1 alarm[1] = room_speed+random(room_speed*2); if (place_free(x+image_xscale*5,y) && instance_position(x+image_xscale*5,y+32,par_wall)) x+=image_xscale*5; } //naprawiamy bugujacego sie wroga przy zawracaniu if place_meeting(x+5,y,par_wall ) && image_xscale = 1 { image_xscale = -1; } if place_meeting(x-5,y,par_wall) && image_xscale = -1 { image_xscale = 1; } ///Ruch wroga z odwracaniem go przez obiekty dziedziczace z par_solid if !place_meeting(x+sign(image_xscale),y-2,par_solid) { if image_xscale > 0 { hspd = min(hspd+sign(image_xscale),2); } else if image_xscale < 0 { hspd = max(hspd+sign(image_xscale),-2); } } if hspd == 0 { image_xscale *= -1; unstick(8); } //Obrazenia wroga if hurtClock > 0 { visible = !visible; hurtClock -= 1; } else { visible = true; } if hp <= 0 { instance_destroy(); instance_create(x,y+50,choose(obj_coin,object102)) // daje losowy item np monety albo jabłuszka with instance_create(x,y,obj_entity_die) { sprite_index = DinoGinie; //sprite do poruszania sie wroga image_xscale = other.image_xscale; image_yscale = other.image_yscale; hspd = other.hspd; vspd = other.vspd; } } if (stopped) hspd=0;
  8. Nie nie, GML var stopped; stopped=0; Na samym początku eventu step GML if (stopped) hspd=0; Na samym końcu Tam po GML if distance_to_object(obj_player)<90 { ma być GML stopped=1
  9. Dobra, wiem to się nadpisuje. Zrób na początku STEP GML var stopped; stopped=0; Zamiast GML hspd=0; daj GML stopped=1 I na końcu STEP GML if (stopped) hspd=0
  10. Dobra, to daj tam gdzie wykrywasz że już ma stać i strzelać GML hspd=0;
  11. Wnioskując z kodu on zwalnia bo: 1.Dochodzisz do niego, on cie zauważa i się zatrzymuje ale ty się oddalasz i goni cię, zatrzymuje itd. albo 2.Zmieniasz x wroga, bawisz się speed, hspeed itp. gdzie indziej niż w przedostatniej linijce kodu który załączyłeś. Jeżeli bohater porusza się wolniej niż wróg to możliwa jest pierwsza opcja, jeżeli masz jeszcze jakiś kod u wroga/wróg ma parenta to 2. Spróbuj podać więcej info.
  12. Tam gdzie zmieniłeś z strzal=0 na strzal=1 to nie ma sensu. Spróbuj tam wywalić if alarm[0]=-1, ale strzal=0 zostaw.
  13. Cienie powinny być wypalonymi lightmapami, dynamiczne jedynie dla ruchomych części. Dla kilku samochodów to nie byłoby zbyt zasobożerne.
  14. Heh, zostaw 1 utwór i 12 jako DLC.
  15. To obiekt ds_ctrl musi mieć największy depth (wykonać się ostatni) CREATE jak poprzednio BEGIN_STEP GML ds_priority_clear() END_STEP GML if (ds_priority_size()>0) with(ds_priority_delete_min(global.pg)) instance_destroy() w twoim obiekcie LEFT_PRESSED GML ds_priority_add(global.pq,id,depth); W CREATE usuń drugą linijkę Nie jestem pewien czy to zadziała, daj znać jak się zachowuje
  16. Masz mnóstwo pustych list, jak klikasz to tworzysz 1 element i usuwasz cały obiekt (razem z listą). Mam pytanie: ma usuwać się obiekt o najmniejszym depth czy obiekt o najmniejszym depth pod myszką? E:Jeżeli to pierwsze to potrzebujesz nowy obiekt. Powiedzmy ds_ctrl CREATE GML global.pq=ds_priority_create(); GLOBAL LEFT PRESSED GML with(ds_priority_delete_min(global.pg)) instance_destroy() i w twoim obiekcie wystarczy CREATE GML depth=irandom_range(1,999999); ds_priority_add(global.pq,id,depth);
  17. Też chodzi o to, żeby gra trafiała do jak największej ilości graczy. Bo to nie AAA i raczej nikt nie będzie modernizował kompa dla twojej gry. Ale no to już jest twoja decyzja.
  18. Grafika ma mniejszą pamięć, wbudowane karty nawet 1gb.
  19. 700 mb to nawet google chrome i zżera. Twoja gra nie będzie działać.
  20. W create miałem literówkę, zamień GML curent_state na GML current_state
  21. DRAW_GUI GML if (current_state) { draw_rectangle(0,view_hview[0]-boxHeight,view_wview[0],view_hview[0]); draw_text(boxPadding,view_hview[0]-boxHeight+boxPadding,messages[current_message,0]); } PRESS_SPACE GML current_message=messages[current_message,1]; if (current_message==0) current_state=0;
  22. No tak bo tutaj też musisz dać , zamiast ][. Ja się pomyliłem bo w większości języków jest tak jak ja zrobiłem, ale tu jest inna składnia.
  23. To ten sam błąd, jeszcze w draw GUI musisz po current_message dać GML ,0
  24. No ja bym robił tak jakoś Powiedzmy obiekt:ctrl_textbox;bez sprite;zaznaczony permanent (czy jakoś tak);dodajesz go do pierwszego roomu I kod; CREATE GML boxHeight=200;//do zmiany boxPadding=10;//do zmiany current_message=0; curent_state=0; messages[0][0]=""; messages[0][1]=0; messages[1][0]="jakas kwestia";//tresc messages[1][1]=2;//numer nastepnej kwestii messages[2][0]="odpowiedz"; messages[2][1]=0;//i żeby skończyć //tutaj sobie wpisz wszystkie kwestie z gry w takim formacie DRAW_GUI GML if (current_state) { draw_rectangle(0,view_hview[0]-boxHeight,view_wview[0],view_hview[0]); draw_text(boxPadding,view_hview[0]-boxHeight+boxPadding,messages[current_message]); } PRESS_SPACE(albo co innego) GML current_message=messages[current_message][1]; if (current_message==0) current_state=0; I teraz jak chcesz żeby pojawił się textbox z kwestia to GML txtctrl=instance_find(ctrl_textbox); if (txtctrl.current_state==0) { txtctrl.current_state=1; txtctrl.current_message=2;//no tutaj jaką kwestią ma zacząć, reszta to poleci sama }
×
×
  • Dodaj nową pozycję...