Diskuze: Problém s pohybem inventáře za postavou
V předchozím kvízu, Online test znalostí GameMakeru, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí GameMakeru, jsme si ověřili nabyté zkušenosti z kurzu.
Vykresluj inventář na souřadnice postavy nebo ho tam přesouvej v údálosti EndStep.
thx
Sakra kde to v tom kódu je?
draw_set_font(inv_font);
draw_set_color(inv_c2);
draw_rectangle(inv_x,inv_y,inv_x+inv_widthinv_grid,inv_y+inv_heightinv_grid,obj_character);
for (X=obj_character;X<inv_width;X+=1) {
for (Y=obj_character;Y<inv_height;Y+=1) {
draw_set_color(inv_c1);
draw_rectangle(inv_x+Xinv_grid,inv_y+Yinv_grid,inv_x+inv_grid+inv_gridX,inv_y+inv_grid+inv_gridY,1);
draw_set_color(inv_slotc)
if
jemys(inv_x+inv_gridX,inv_y+inv_gridY,inv_x+inv_gridX+inv_grid,inv_y+inv_gridY+inv_grid)
then
draw_rectangle(inv_x+Xinv_grid+1,inv_y+Yinv_grid+1,inv_x+inv_grid+inv_gridX-1,inv_y+inv_grid+inv_gridY-1,0)
if
jemys(inv_x+inv_gridX,inv_y+inv_gridY,inv_x+inv_gridX+inv_grid,inv_y+inv_gridY+inv_grid)
and mouse_check_button_pressed(mb_left) then
{inv_vybranex=X+1;inv_vybraney=Y+1}
if inv_vybranex=X+1 and inv_vybraney=Y+1 {
draw_set_color(inv_slotcs);
draw_rectangle(inv_x+Xinv_grid+1,inv_y+Yinv_grid+1,inv_x+inv_grid+inv_gridX-1,inv_y+inv_grid+inv_gridY-1,0)
}
draw_set_color(inv_rcolor);
draw_rectangle(inv_x,inv_y+20+inv_gridinv_height,inv_x+inv_rwidth,inv_y+inv_rheight+inv_gridinv_height,0);
draw_sprite_ext(object_get_sprite(inv_item[X+1,Y+1]),0,inv_x+Xinv_grid,inv_y+Yinv_grid,inv_grid/sprite_get_width(object_get_sprite(inv_item[X+1,Y+1])),inv_grid/sprite_get_height(object_get_sprite(inv_item[X+1,Y+1])),0,c_white,1);
if inv_itemcount[X+1,Y+1]!=0 then
draw_text(inv_x+inv_gridX,inv_y+inv_gridY,string(inv_itemcount[X+1,Y+1]));
if
jemys(inv_x,inv_y,inv_x+inv_widthinv_grid,inv_y+inv_heightinv_grid)
then {
inv_obj=inv_get_item_xy(mouse_x,mouse_y);
draw_set_color(inv_rfcolor);
if inv_obj!=inv_freeslot then inv_text=o_inventar.inv_popis[inv_obj] else
inv_text=o_inventar.inv_popis[inv_freeslot];
draw_text(inv_x+3,inv_y+20+inv_grid*inv_height+5,inv_text);
}
}
}
if inv_vybranex!=0 and inv_vybraney!=0 {
if keyboard_check_pressed(vk_delete) then
inv_delete_item(inv_vybranex,inv_vybraney);
if keyboard_check_pressed(vk_enter) then
execute_string(o_inventar.inv_kod[inv_get_item(inv_vybranex,inv_vybraney)]);
}
Pokud jsi to psal, tak bys to skoro měl vědět. Jinak na vložení kódu se používá "Vložení zdrojového kódu".
Ne vážně, kde to v tom je?
A pak že se tady člověk dozví co potřebuje
Ve svém kódu jsi použil proměnné inv_x a inv_y, jistě k tomu, abys jejich nastavením poté mohl inventář posouvat
Je to hrozně nepřehledný.
for (X=obj_character;X<inv_width;X+=1) {
V tomhle cyklu se vykresluje inventář? Pokud ano tak tam by mělo být obj_character.x a měl bys k tomu přičíst nějakou hodnotu aby ti to vykreslovalo hezky vedle postavičky.
A tady u toho to asi bude to samý.
draw_rectangle(inv_x,inv_y,inv_x+inv_widthinv_grid,inv_y+inv_heightinv_grid,obj_character);
Z toho kódu se toho nedá moc vyčíst. Příště prosím použij tag
(vložení zdrojového kódu) a podej nám informace v čitelné podobě a tak abychom z nich mohli něco vyčíst poradit ti s problémem.
Díky. To si ve svém <b>kódu</b> opravím.
Zobrazeno 11 zpráv z 11.