Skocz do zawartości

feedthezombie

Użytkownicy
  • Postów

    9
  • Dołączył

  • Ostatnia wizyta

Osiągnięcia feedthezombie

Chicken

Chicken (1/13)

0

Reputacja

  1. GML z=noone; for (i=1;i<global.zasieg;i+=1){ if ((position_meeting(x-i*32,y,obj_blok)) || (z=instance_place(x-i*32,y,obj_cegla))){break;} //jesli znajdzie blok lub cegle to przerywa, blok- idziemy dalej, cegla -niszczymy ta cegle else instance_create(x-i*32,y,obj_bomba_po); //jesli nie to tam powstaje animacja wybuchu } if (z!=noone) { //jesli znalazl cegle with(z) {instance_destroy();} niszczy cegłę } Czy dobrze rozumiem jak mam tego użyć? przy wybuchu cegła znika i od razu się pojawia, nie wiem co dalej.
  2. o rety, ile nowych rzeczy, przeanalizuję :) dziekuję :)
  3. Witam ponownie, kolejny już raz bomberman, mam nadzieję, że Was nie zanudzę. :) Animacje wybuchów są skończone, ale pojawił się nowy problem. W pętli, która tworzy wybuch sprawdzam czy napotyka na bloczek, który docelowo ma zniszczyć- no i nie wiem co zrobić, zeby "przekierować" działanie do tego właśnie bloku, tzn coś jakby event tego właśnie bloku, żebym mógł napisać kod do niszczenia w tym właśnie obiekcie, a jestem na razie w obiekcie bomby. Znalazłem takie eventy jak user definied ale nie wiem czy to nie działa tak jak chcę czy po prostu nie umiem używać. Sprawdzam czy jest blok do zniszczenia, no jest, i co dalej? Nie wiem tylko co zrobić żeby ten blok dostał jakby "sygnał" do rozpoczęcia kodu, sam kod niszczenia bloku bede umiał napisać. Pomocy :) Z góry dziękuję :)
  4. dobry pomysł z tym breakiem, heh, do tego naszczescie niewiele gm potrzebne :) Masz rację, zrobię chyba tak ze na początku bede robil jeden kierunek do konca, potem pozostale, moze tak bedzie git, dzieki za pomoc :)
  5. nie używam dzieciczenia i szczerze mówiąc to nawet nic o tym nie wiem. Prawie wszystko co robię tutaj, odkrywam na bieżąco, opierając się jedynie na tym co umiem z c++ :) czym jest in=noone ? przeanalizuję to (moze mi to troche zająć) i dam znać jak działa :) Dziękuję @edit w kodzie, który wkleiłeś jest if (position_meeting(x-i*32,y) && lewo==1) -- program mi pokazuje ze brakuje argumentu (chce zebym podal obiekt) ale to ma byc prawdziwe wtedy kiedy jest puste pole, a nie obiekt. Czy mam zrobić to z negacją i wpisać wszystkie możliwosci tych obiektów czy cos innego? Jak na razie to dostaje tu błąd: brakuje arg.
  6. Z tym co juz mam, to problem jest taki że ta eksplozja sie nie zatrzymuje na ścianach itp, tylko przechodzi dalej, mam ustawione : blok;pusto;blok;pusto;blok.. bomba wybucha przed blokiem i jeszcze za tym blokiem i za nastepnymi (tyle ile jest zasieg) jest widac eksplozję, same te bloki są widoczne cały czas chyba tylko z tego powodu ze animacja eksplozji jest "pod" blokami, ktore to zasłaniają. Ja chcę oczywiście żeby to się zatrzymywało na bloku. I TU jest problem... :) Zakonczenia są dobrze.
  7. Witam, poradziłem sobie ze zrobieniem animacji wybuchu bomby, ale teraz chcę żeby eksplozja się zatrzymywała np. na ścianach. Probowałem to rozwiązać tak: 1. zmienne : gora, dol,prawo,lewo - wszystkie są =1 2. w pętli ktora robila wybuch w 4 kierunkach zrobilem sprawdzenie if (instance_place(....)) // czy na pewno ta funkcja do tego sluzy?? a nastepnie jesli tam byla sciana to zmienna danego kierunku =0 np. lewo=0 3. Przy tworzeniu sprawdzam czy dany kierunek =0 , jesli 0 to przerywam, bo tam sie nie rozprzestrzenia. Nie działało, ok, nie poddajemy się :D no to moze tak: z użyciem place_free() // dobry pomysł?? GML prawo=1; //0 - ściana, ogien sie nie rozprzestrzenia, 1 - idzie dalej lewo=1; gora=1; dol=1; for (i=1;i<global.zasieg;i+=1){ if (place_free(x-i*32,y) && lewo==1){instance_create(x-i*32,y,obj_bomba_po);} else{lewo=0;} if (place_free(x+i*32,y) && prawo==1){instance_create(x+i*32,y,obj_bomba_po);} else{prawo=0;} if (place_free(x,y-i*32) && gora==1) {instance_create(x,y-i*32,obj_bomba_pi);} else{gora=0;} if (place_free(x,y+i*32) && dol==1) {instance_create(x,y+i*32,obj_bomba_pi);} else{dol=0;} } if (place_free(x-i*32,y) && lewo==1) {instance_create(x-i*32,y,obj_bomba_l);} if (place_free(x+i*32,y) && prawo==1) {instance_create(x+i*32,y,obj_bomba_p);} if (place_free(x,y-i*32) && gora==1) {instance_create(x,y-i*32,obj_bomba_g);} if (place_free(x,y+i*32) && dol==1) {instance_create(x,y+i*32,obj_bomba_d);} Wszystkie x i y są dobrze zrobione, to wiem, jest jak jest bo działam na polu zrobionym z kwadratów 32x32, w pętli tworzą się kolejne kratki gdzie rozprzestrzenia się ta eksplozja, a poza pętlą jest po prostu zakończenie, ostatnie kratki jakich dosięga wybuch. 1.Czy waszym zdaniem lepiej użyć place_free czy instance_place? (biorąc pod uwagę, że później będę musiał rozróżnić, czy na drodze stoi ściana, graczm przeciwnik, itp.) 2. Jak to zrobić żeby działało? :) Z góry bardzo dziękuję za pomoc. Używam Game Maker 8.0 Pro
  8. Taak, o to chodzi, świetnie :) Dziękuję bardzo.
  9. Witam serdecznie! Jestem amatorem i próbuję odtworzyć starą grę dyna blaster w GM. Poradziłem sobie z poruszaniem się postacią i stawianiem bomb. Po postawieniu odlicza się czas, po którym w miejscu bomby przełącza się animacja na wybuch. 1. Nie wiem, co zrobić, zeby ta animacja przeszła tylko raz, a potem znikła. 2. planszę mam podzieloną na kwadraty 32x32 i wiem jak zrobic animację tylko w tym polu co była bomba, to znaczy źródło wybuchu. a co zrobić, żeby ten wybuch gdzieś sięgał dalej i animacja wystawała na kratki w 4 kierunkach? Proszę o prosty język. :) Nie wiem dużo o GM, ale z programowaniem miałem dużo wspólnego, więc będę zadowolony jak przedstawicie mi Wasze logiczne sposoby jak to zrobić, nazwy funkcji, a z resztą chyba sobie poradzę. Problem mam taki że nawet nie wiem pod jakimi hasłami szukać różnych rzeczy. Z góry dziękuję za pomoc :)
×
×
  • Dodaj nową pozycję...