-
Postów
491 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez candy
-
Można to zrobić na przykład tak: GML (step auto) if(collision_point(x,y,N1,1,0))//gdy auto najechało na powierzhnię N1 { if(speed<speed_max1)//jeżeli spped jest mniejszy od maksymalnego na tej powierzchni... speed+=1;//..to dodaj 1 speed... else if(speed>speed_max1)//...a gdy speed jest większy od maksymalnego... speed-=1;//...odejmij 1 speed } . . . else if(collision_point(x,y,Nn,1,0))//sprawdzamy takim sposobem wszystkie n powierzchni N(n- liczba powierzchni N) { if(speed<speed_maxn) speed+=1; else if(speed>speed_maxn) speed-=1; } else if(collision_point(x,y,S,1,0))/a gdy nie ma kolizji z żadnym N i ma kolizje z S... { if(speed<speed_max+boost) speed+=1; else if(speed>speed_maxn) speed-=1; } else if(speed>speed_max_normal)//a gdy nie ma kolizji z żadną powierzchnią N i S speed-=1;//odejmij 1 speed</span> Pamiętaj aby zadeklarować zmienne speed_max dla każdej powierzchni i boost. Możesz dodawać różne wartości speed, zależnie od swoich potrzeb.
-
To wyświetlanie many i hp przerzuciłbym do innego obiektu. Wydaje mi się, że jak dasz w bohaterze DRAW to nie będą wyświetlane jego sprity. Chyba, że sprite też będzie wyświetlany w DRAW np za pomocą funkcji: GML draw_sprite(sprite,index.x.y)
-
Zakładam, że jeżeli hero jest odwrócony w lewo to miecz ma być tworzony 100 px na lewo od niego, a gdy jest odwrócony w prawo to miecz ma taką samą pozycję x co hero. Tworzysz w hero zmienną strona. GML (hero create) strona=1;//1- odwrócony w prawo, -1 odwrócony w lewo</span> Ważne aby na samym początku zmienna ta była poprawnie wpisana. Jeżeli więc hero na starcie ma sprite hero_lewo (jest odwrócony w lewo) to strona=1, inaczej strona=-1. Dodajesz do: GML (hero sterownie) if(keyboard_check(vk_right)) { strona=1; //reszta kodu } else if(keyboard_check(vk_left)) { strona=-1; //reszta kodu } Na końcu dopisujesz do miecza: GML (step miecz) x=o_hero.x+(50*o_hero.strona-50);
-
Może tak: GML if(distance_to_object(obj_Bohater1)<=200) { direction=point_direction(x,y,obj_Bohater1.x,obj_Bohater1.y); move_towards_point(obj_Bohater1.x,obj_Bohater1.y,5) if(can==true) { pocisk=instance_create(x,y,obj_Pocisk); pocisk.speed=10; pocisk.direction=direction; can=false; } if(alarm[0]==-1) alarm[0]=12*room_speed; }
-
Ustaw w zakładce view: Hbor i Vbor. Gdy odległość gracza od krawędzi będzie mniejsza albo równa room view zacznie się przesuwać. A co do drugiego, zaznacz dwa kwadraciki w tej samej zakładce. W view in room ustaw rozmiary okienka.
-
GML if ( skok < 5 ) skok += 0.5; &&!place_free(x,y+1) Nie tędy droga. Edit: I znowu Jaklub mnie wyprzedził...
-
Dopisz warunek do skoku: GML &&!place_free(x,y+1)
-
GML draw_text(x,y,'jajko'+string(score))
-
Pokombinuj z maską. Może pomoże.
-
Spróbuj tak: GML (create host) hp=100; GML (kolizja w pocisku z hostem) with other { hp-=1; if(!hp) instance_destroy() } E:poprawiony
-
A sound_volume(.....) wstawiłeś do step'a innego obiektu niż gracz, czy do któregoś event'a gracza?
-
Do pierwszego pytania. Możesz spróbować: GML (step) sound_volume(muza,distance_to_object(o_gracz)/100) Wstaw to do obiektu, do którego się zbliżasz.
-
Skorzystaj z maski i cały problem zniknie.
-
Jeżeli ściana porusza tylko w lewo albo prawo, to można tak: o_sciana: GML (step) if(x<obj_hero.x&&moze)//moze- zeby tylko raz dodawal, zakladam ze punkty dodaje sie gdy hero przechodzi z lewej do prawej { moze=false; global.ptk+=10; }
-
Usuń z control akcje związane z myszką. Zamiast nich wstaw: GML (Glob Left Released) global.xx1=0; global.xx2=0; global.yy1=0; global.yy2=0; W obj0 i obj1 wstaw: GML (Left pressed) global.xx1=x; global.yy1=y; GML (Left released) global.xx2=x; global.yy2=y; instance_create(x,y,kabel)
-
funkcja: Zwracanie wartości najbliższej zeru.
candy odpowiedział(a) na I am Lord temat w Pytania zaawansowanych
Może tak: GML tab[0]=-1;//w tablice ta wpisz zbior swoich liczb tab[1]=1; tab[2]=2; min0=tab[0];//najblizej zera jest tab[0] (tak zakladamy) for(i=1;i<=2;i+=1) if(abs(tab)<abs(min0))//jezeli kolejna wartosc w tablicy jest mniejsza od min0, min0=tab;//to wartosc tab jest teraz najblizej zera (wszystko na wartosciach bezwzglednych) else if(abs(tab)==abs(min0)&&tab>min0)//jezeli chcesz aby liczby dodatnie byly uprzywilejowane w przypadku gdy min0=tab;//wartosci bewzgledne liczb sa sobie rowne (jezeli nie to usun ten warunek)</span></span> -
Masz pliczek: tutaj
-
Ad 2: Może GML image_angle+=wartosc;
-
Możesz na obiekt kliknąć myszką i pobrać jego id. Potem odwołujesz się do obiektu przez id. Odpal grę przez F6==>tools==>show global... masz listę obiektów i ich id :)
-
Troszkę się spóźniłem, ale może się na przyszłość Ci przyda: Pliczek
-
Arekadiusz: fileid to nazwa twojego pliku txt, np: GML fileid="costam.txt";//zamiast fileid możesz wpisać cokolwiek, to musi być zadeklarowane zanim dokonasz zapisu</span> file_text_write_real(fileid,x), fileid-do którego pliku ma zapisać, x-zmienna(jakaś wartość) do zapisu
-
Do pliku txt zapisuj object_index, x i y obiektu (file_text_write_real(fileid,x)). Pomocna okaże się komenda with all {kod}. Jeżeli na mapie są obiekty, których nie chcesz zapisywać do pliku txt, użyj w with all: if(object_index!=xx&&object_index!=xx1...). Zapisuj wszystko do oddzielnych linijek w txt (poszukaj w helpie). Na końcu otwierasz plik txt i usuwasz wszystko co jest po przecinkach oraz spacje. (Ja tak musiałem robić, bo zapisywało mi tak: 1,0000 i miałem spacje miedzy cyfra a krawędzią notatnika). Przy wczytywaniu sprawdzasz warunek, czy plik txt się nie skończył (poszukaj w helpie). Następnie wczytujesz trzy kolejne zmienne. (pierwsza to object_index, druga x i trzecia y). Tworzysz obiekt instance_create(zmienna2,zmienne3,zmienna1).
-
Obj_mouse ma ciągle te same współrzędne co x i y myszki. Więc jak myszką wrócisz na środek, obj_mouse także. Dlatego view Ci wraca. Pokombinuj, aby obj_mouse śledził x i y myszki gdy naciśnięty jest np prawy przycisk myszki.
-
Przechodzenie "pionowo" z rooma do rooma
candy odpowiedział(a) na ZyperPL temat w Pytania początkujących
Może przeskakujesz przez lewą krawędź room'a i przenosi gracza do poprzedniego room'a. Wstaw do warunku if(y<0) jeszcze x=100; i zobacz co się stanie. -
Przechodzenie "pionowo" z rooma do rooma
candy odpowiedział(a) na ZyperPL temat w Pytania początkujących
Używasz view'a? Jaki błąd Ci wywala?