-
Postów
39 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Odpowiedzi opublikowane przez Hawaxi
-
-
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
GMLInvMax=6;obj_inv2 > Draw
GMLfor (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).
-
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?
-
Witam,
chce aby program coś robił gdy wartość global.a się zwiększy...
próbowałem
GMLif global.a++ale to nie działa <_<
jest na to jakiś myk?
-
Nareszcie działa!!!
Dziękuje wszystkim za pomoc :)
-
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:
GMLif 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:
GMLelse 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:
-
Mam tak:
obj_1 > create event:
GMLglobal.k=0global.k1=0
global.k2=0
global.k3=0
obj_1 > step event:
GMLglobal.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:
GMLif 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?
-
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
-
kurcze, wciąż się powtarzają :/
kod jest w każdym z czterech obiektów może to sprawia że się powtarzają?
-
-
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ą?
GMLglobal.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();
-
Okej, mam tak:
obj_control ktory tworzy liste, dodaje dane do listy i je miesza:
GMLglobalvar 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:
GMLsprite_index = ds_list_find_value(lista,0);ds_list_delete(lista,0);
obj_2:
GMLsprite_index = ds_list_find_value(lista,1);ds_list_delete(lista,1);
obj_3:
GMLsprite_index = ds_list_find_value(lista,2);ds_list_delete(lista,2);
obj_4:
GMLsprite_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);
-
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:
GMLglobal.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
-
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:
GMLkey_left = -keyboard_check(vk_left);przy klawiaturze działało to świetnie ale na myszce już nie:
GMLkey_left = -mouse_check_button(mb_left) && position_meeting(mouse_x,mouse_y,obj_left);przy guziku w prawo wszystko działa prawidłowo:
GMLkey_right = mouse_check_button(mb_left) && position_meeting(mouse_x,mouse_y,obj_right);Napisze mi ktoś dlaczego przycisk w lewo nie działa???
Inventory
w Pytania początkujących
Opublikowano
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
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ł:
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:
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?