Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

Pobrałem skrypt z działu download i mam następujący problem, jak zrobić żeby to całe inventory pojawiało się w zasięgu widoku postaci.

Jak widze to inventory zostało zrobione na room bez przesuwania bo inv stoi jak słup w jednym miejscu :(.

Próbowałem wieloma sposobami ale spędziłem z 2 godziny nad rozmyślaniem jak to szybko zrobić zamiast zamieniać pojedyńczo dane :(. Chciałbym aby inventory przesuwało/pojawiało się równomiernie razem z kamerą/postacią.

P.S Jak zrobić aby można było przesuwać to inv myszką w inne miejsce?

 

Z góry dziękuje za pomoc

 

Oto ten skrypt (w obj_draw -> draw):

draw_set_font(font_main);
draw_set_halign(fa_left);
draw_set_valign(fa_middle);

draw_set_color(c_white);
draw_set_alpha(0.5);
draw_rectangle(10,10,210,10+(5*20)+20,false);
draw_rectangle(10,10+(5*20),210,10+(5*20)+20,false);

draw_set_color(c_green);
draw_set_alpha(0.5);
draw_rectangle(10,10+(kursor_y*20),210,10+(kursor_y*20)+20,false);
//5*20 to ilosc pikseli potrzebna na wyswietlenie 5 linijek tekstu
//+20 na koncu dodane jest aby wyswietlic znak > do przewijania stron

draw_set_color(c_black);
draw_set_alpha(1);
draw_rectangle(10,10,210,10+(5*20)+20,true);

for (i=0; i<5; i+=1;)
    {
     /*
    w przypadku gdy mamy strone 0, to 5*0=0 zatem wynik = i,
    czyli itemy od 0 do 4 (i<5)
    natomiast gdy jestesmy na 1 stronie (kursor_x=1), to i=i+5*1 czyli
    naprzyklad 6 dzieki temu wyswietlamy itemy od 5 do 9
    */
    if i+(5*kursor_x)<max_items
        {
        draw_sprite(item_img[i+(5*kursor_x)],0,20,10+(20*i)+10);
        draw_text(30,10+(20*i)+10,item_name[i+(5*kursor_x)]);//+10 dodane aby wysrodkowalo tekst, jest to 20/2
        draw_text(190,10+(20*i)+10,string(item_n[i+(5*kursor_x)]));
        }
    }
if pages>0 then draw_set_color(c_black) else draw_set_color(c_gray);

draw_text(30,10+(5*20)+10,'< Strona '+string(kursor_x+1)+'/'+string(pages+1)+' >');

Opublikowano

Kiedyś mi się nudziło i zrobiłem sobie prosty przykład okienek. Jest w nich również przesuwanie.

LINK

Mam nadzieję, że zrozumiesz przykład

Opublikowano

view_xview + ilestam, view_yview + ilestam <-- jesli walniesz takie cosik przy kazdej wspolrzednej to inventory bedzie Ci latac za viewem

Opublikowano
view_xview + ilestam, view_yview + ilestam <-- jesli walniesz takie cosik przy kazdej wspolrzednej to inventory bedzie Ci latac za viewem

 

Ale tam jest tyle współrzędnych :( wogole da sie zbadac ktore to x ktore to y ?(w jakiej kolejnosci)

Jeżeli bym pojedyńczo badał to jakieś 3 godziny mi zajmie.

Proszę o pomoc

 

draw_rectangle(10,10,210,10+(5*20)+20,true);

które to x a które y?

 

Kiedyś mi się nudziło i zrobiłem sobie prosty przykład okienek. Jest w nich również przesuwanie.

LINK

Mam nadzieję, że zrozumiesz przykład

 

Thx także spróbuje :)

Opublikowano

draw_rectangle(10,10,210,10+(5*20)+20,true);

Pierwsze cztery (x1,y1,x2,y2). Help w GameMakerze się kłania...tam znajdziesz opis każdego skryptu.

Opublikowano

Wielkie dzięki, powoli już zaczynam wszystko kapować. Mam jeszcze jedno pytanie jak ten skrypt przerobić aby item nie był kasowany a tylko wyrzucany w miejsce gdzie stoi postać?

 

//usuwamy item

if kursor_y+(5*kursor_x)<max_items

{

remove_item(item[kursor_y+(5*kursor_x)],1);

event_perform(ev_other,ev_user0);

}

Opublikowano

Daj, że obiekt przedmiotu, albo tylko jego instance pojawiał się na mapce przy graczu, użyj instance_create(x,y,item)...

Opublikowano

Ale właśnie ja wiem jaki jest skypt ale niewiem jak go złożyć razem z tym inventory bo ono ma te jakies kursor.x/y i niewiem jak cały skrypt ma wyglądać

Opublikowano

To co, zrobiles inventory i nawet nie wiesz jak ?? :P

 

if kursor_y+(5*kursor_x)<max_items
{
remove_item(item[kursor_y+(5*kursor_x)],1);
event_perform(ev_other,ev_user0);
instance_create(player.x,player.y,obj_item)
}

...

Nieeee, tak sie nie da, dawaj, pokaż ten pełny skrypt :P bo inaczej sie nie dowiem jak to trza...

Opublikowano

Oo no widzę, że to profesjonalny skrypt ! Gratz i pozdro dla gnyska ! xD

 

No musiałbym jeszczę chwilę nad tym posiedzieć, bo tera nie mam czau, ale niedługo ci pokaże, najpierw spróbuj zrobić jak mówiłem wcześniej...

 

btw. Kto mu, gnyskowi pozwolił uzyć grafik z Golden Sun'a !!! :D

Opublikowano

Zamiast obj_item daj po prostu item, bo chyba tak też się tam określa itemy... A zresztą możesz osobiście o to zapytać gnyska, albo poszukać tematu związanego z tym przykładem, bo sądzę, że takowy był... Jak nie to jutro podam ci skrypt, ale wcześniej dla pewności poszukaj jakiejś informacji, np. właśnie u gnyska.

Opublikowano

Hmmm za pierwszym razem zadziałało ale raczej nie tak jak trzeba xD pojawiła się druga postać (bohater) i za drugim razem napisało że nie może stworzyć obiektu...

 

Szukałem trochę ale za nic nie moge znaleść.

 

To będe wdzięczny jak mi jutro odpiszesz.

Opublikowano

Aha, już chyba wiem - daj zamiast obj_item, to item_random w tym instance_create i będzie dobrze xD

 

Kk na jutro dorobie ci ten skrypt.

Opublikowano

Wtedy to stworzy niekoniecznie ten obiekt :) ale chyba chodzi ci o to ze jak stworze osobne przedmioty... wtedy nasuwa się 2 problem mianowicie że skrypt musi sam rozpoznawać obiekt albo wyrzucać nie zwracając uwagi na obiekt a na slota bo innaczej zadziała tylko jakbym miały dany item w specjalnym miejscu.

Opublikowano

Przepraszam za double posta ale temat już zszedł troche w dół i ponawiam moje pytanie a także pytam czy można to przerobić:

draw_sprite(item_img[i+(5*kursor_x)],view_yview+0,view_xview+20,view_yview+10+(2

0*i)+10);

Chce to przerobić aby rysowało ograniczone sprity a nie takie jakie są w rzeczywistości. Bo jak pojawia się tam np. Miecz to zajmuje pół okna inventory.

 

Z góry thx

Opublikowano

Co do zmienienia rozmiarów sprite to o czymś takim nie ma mowy : miecz wielkości grzyba? to nie przejdzie.

 

Co do robienia losowych itemów to ja też zrobiłem (do tego doszliśmy wcześniej)

 

Ale wielkie dzięki za starania

Opublikowano

;/ Ale przecie nawet jak zmienisz rozmiar sprite'a to rozdzielczość i tak się zmieni - 8 na 8 pixeli w rozmiarach to w końcu 8 na 8 pixeli w rezolucji, nie ?? xD (rozdzielczości)... Chyba że masz rozdzielczość monitora przynajmniej 1600:1200 (tak jak ja :P) to wtedy możesz pokombinować bardziej z grafiką...

Opublikowano

Nie chodzi o rozdzielczośc mi chodzi o to że jak itemy mają mieć taką samą wielkość to grzyb leżący na ziemi i miecz będą tej samej wielkości... co raczej nie jest normalne. Ja chciałbym żeby dopiero inv ograniczało wielkość wyświetlania sprite (minimalizowało by obrazek do potrzebnych mi rozmiarów)

Opublikowano

Aha, już rozumiem ! Chodzi ci o to, żeby sprite'y były inne na pickup'a a inne na inventory ! To musisz zmienić sprite'y bodajże w get_item i add_item...

Opublikowano

To wtedy zmieni się i w wyświetlaniu

 

EDIT: Poradziłem sobie, dodałem 1 zmienną do get_item w której zawarłem 2 spirita ktorego drawował w inventory.

 

Jeśli jeszcze ktoś mógłby mi pomóc z tym dropem byłbym wdzięczny

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...