Skocz do zawartości

Hawaxi

Użytkownicy
  • Postów

    39
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Hawaxi

  1. Okej, troche poczytałem bo nie zabardzo wiedziałem jak działa ten stack i jak narazie udało mi się zrobić coś takiego: obj_inv2 > Draw GML lista =ds_stack_create(); with(object) { ds_stack_push(lista, id); } for (i=0; i<InvMax; i+=1) { draw_sprite(spr_kora, 1, x+(i*65), 64); ds_stack_pop(lista); draw_sprite(lista, 1, x+(i*65), 64); } Wyświetla jeden ten sam obiekt we wszystkich slotach, później ten obiekt zamienia się na inny i tak co chwilę.Jak już przejdzie przez wszystkie obiekty crashuje... Próbowałem też na inny sposób który też nie zadziałał: GML lista =ds_stack_create(); with(object) { ds_stack_push(lista, id); } for (i=0; i<InvMax; i+=1) { draw_sprite(spr_kora, 1, x+(i*65), 64); wybrany = ds_stack_pop(lista); draw_sprite(wybrany, 1, x+(i*65), 64); } Tutaj pokazywał się jeden obiekt we wszystkich slotach. Tutaj nic się nie działo: GML lista =ds_stack_create(); with(object) { ds_stack_push(lista, id); } for (i=0; i<InvMax; i+=1) { draw_sprite(spr_kora, 1, x+(i*65), 64); ds_stack_pop(lista); } Co zrobiłem źle?
  2. Witam, chce zrobić "inventory" które ma wyświetlać wszystkie obiekty dostępne w grze, i tu mam problem ponieważ każdy obiekt ma inną nazwę. Mam stworzone całe eq ale musze jeszcze włożyć w nie wszystkie obiekty... Mój kod: obj_inv2 > Create GML InvMax=6; obj_inv2 > Draw GML for (i=0; i<InvMax; i+=1) { draw_sprite(spr_kora, 1, x+(i*65), 64); } Ma ktoś pomysł jak to zrobić? Jeśli ktoś nie zrozumiał co chce zrobić to chodzi mi o inventory takie jak jest w minecrafcie na creative (widzisz wszystkie bloki dostępne w grze).
  3. no tak, ale to jest jednorazowe a ja chce żeby za każdym razem gdy wartość global.a się zwiększy wykonywało tą instrukcje... czyli nie ma na to jakiegoś specjalnego sposobu? Musze kombinować ze zmiennymi?
  4. Witam, chce aby program coś robił gdy wartość global.a się zwiększy... próbowałem GML if global.a++ ale to nie działa <_< jest na to jakiś myk?
  5. Nareszcie działa!!! Dziękuje wszystkim za pomoc :)
  6. Jeśli wszystkie obiekty wylosuja liczbe 1 to tylko wygląd jednego objektu się zmieni, trzeba dodać że jeśli już występiła ta liczba to pomieszaj i jeszcze raz losuj. Czyli tak jak poprzednio: GML if global.liczba1 == 1 && global.k == 0 { sprite_index = spr_1 global.k++ } else if global.liczba1 == 2 && global.k1 == 0 { sprite_index = spr_2 global.k1++ } else if global.liczba1 == 3 && global.k2 == 0 { sprite_index = spr_3 global.k2++ } else if global.liczba1 == 4 && global.k3 == 0 { sprite_index = spr_4 global.k3++ } plus: GML else if global.liczba1 == 1 && global.k1 == 1 { randomize(); } else if global.liczba1 == 2 && global.k2 == 1 { randomize(); } else if global.liczba1 == 3 && global.k3 == 1 { randomize(); } else if global.liczba1 == 4 && global.k4 == 1 { randomize(); } dobrze mysle? EDIT: i tak nie działa: FATAL ERROR in action number 1 of Step Event0 for object obj_3: Push :: Execution Error - Variable Get -5.k4(100005, 0) at gml_Object_obj_3_Step_0 (line 35) - else if global.liczba1 == 4 && global.k4 == 1 :crying: :crying: :crying:
  7. Mam tak: obj_1 > create event: GML global.k=0 global.k1=0 global.k2=0 global.k3=0 obj_1 > step event: GML global.liczba1 = irandom_range(1,4); if global.liczba1 == 1 && global.k == 0 { sprite_index = spr_1 global.k++ } else if global.liczba1 == 2 && global.k1 == 0 { sprite_index = spr_2 global.k1++ } else if global.liczba1 == 3 && global.k2 == 0 { sprite_index = spr_3 global.k2++ } else if global.liczba1 == 4 && global.k3 == 0 { sprite_index = spr_4 global.k3++ } obj_2 obj_3 obj_4 > step event: GML if global.liczba1 == 1 && global.k == 0 { sprite_index = spr_1 global.k++ } else if global.liczba1 == 2 && global.k1 == 0 { sprite_index = spr_2 global.k1++ } else if global.liczba1 == 3 && global.k2 == 0 { sprite_index = spr_3 global.k2++ } else if global.liczba1 == 4 && global.k3 == 0 { sprite_index = spr_4 global.k3++ } obj_1 zmienił wygląd, pozostałe nie :P ma być step, begin step czy end step?
  8. teraz błąd: FATAL ERROR in action number 1 of Create Event for object obj_4: Push :: Execution Error - Variable Get -5.k(100001, 0) at gml_Object_obj_4_Create_0 (line 5) - if global.liczba1 == 1 && global.k == 0
  9. kurcze, wciąż się powtarzają :/ kod jest w każdym z czterech obiektów może to sprawia że się powtarzają?
  10. obj_control mam w oddzienlym pokoju który odpala się przed pokojem w którym jest obj_4. wie ktoś dlaczego w tym kodzie wyglądy się powtarzają? GML global.liczba1 = irandom_range(1,4); k = 0 k1 = 0 k2 = 0 k3 = 0 if global.liczba1 == 1 && k == 0 { sprite_index = spr_1 k++ } else randomize(); if global.liczba1 == 2 && k1 == 0 { sprite_index = spr_2 k1++ } else randomize(); if global.liczba1 == 3 && k2 == 0 { sprite_index = spr_3 k2++ } else randomize(); if global.liczba1 == 4 && k3 == 0 { sprite_index = spr_4 k3++ } else randomize();
  11. Okej, mam tak: obj_control ktory tworzy liste, dodaje dane do listy i je miesza: GML globalvar lista; lista = ds_list_create(); ds_list_add(lista,spr_1); ds_list_add(lista,spr_2); ds_list_add(lista,spr_3); ds_list_add(lista,spr_4); ds_list_shuffle(lista); Później 4 objekty które wybierają i usuwają pozycje w tabeli: obj_1: GML sprite_index = ds_list_find_value(lista,0); ds_list_delete(lista,0); obj_2: GML sprite_index = ds_list_find_value(lista,1); ds_list_delete(lista,1); obj_3: GML sprite_index = ds_list_find_value(lista,2); ds_list_delete(lista,2); obj_4: GML sprite_index = ds_list_find_value(lista,3); ds_list_delete(lista,3); Wszystko elegancko ale powie mi ktoś dalczego wywala bład? : FATAL ERROR in action number 1 of Create Event for object obj_4: Push :: Execution Error - Variable Get -5.lista(100000, 0) at gml_Object_obj_4_Create_0 (line 1) - sprite_index = ds_list_find_value(lista,3);
  12. Witam, Mam 4 obiekty i chcę żeby zmieniały wygląd w zależności jaką liczbe wylosuje, wyglądy nie mogą się powtarzać... Mam to: GML global.liczba1 = irandom_range(1,4); if global.liczba1 = 1 { sprite_index = spr_1 } if global.liczba1 = 2 { sprite_index = spr_2 } if global.liczba1 = 3 { sprite_index = spr_3 } if global.liczba1 = 4 { sprite_index = spr_4 } pomoże ktoś? GameMaker:Studio
  13. Siemanko, Ostatnio robiłem grę i postanowiłem zobaczyć jak zadziała na androidzie wiec zmieniłem wszystkie przyciski na myszke ale mam pewien problem chce aby po dotknięciu guzika ze strałką w lewo postać ruszała się w lewo: GML key_left = -keyboard_check(vk_left); przy klawiaturze działało to świetnie ale na myszce już nie: GML key_left = -mouse_check_button(mb_left) && position_meeting(mouse_x,mouse_y,obj_left); przy guziku w prawo wszystko działa prawidłowo: GML key_right = mouse_check_button(mb_left) && position_meeting(mouse_x,mouse_y,obj_right); Napisze mi ktoś dlaczego przycisk w lewo nie działa???
×
×
  • Dodaj nową pozycję...