NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
IT rekvalifikace s podporou uplatnění. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!

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.

Aktivity
Avatar
Neaktivní uživatel:28.5.2012 14:06

Mám menší problém s pohybem inventáře za postavou
( inventář se otevře (klávesa b) ale v rohu mísnosti. Místnost je velká zhruba 20000x20000)
Chtěl bych aby se inventář otevřel u postavy.
Prosím o pomoc. Předem děkuji.
o_O

Odpovědět
28.5.2012 14:06
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:28.5.2012 14:27

Vykresluj inventář na souřadnice postavy nebo ho tam přesouvej v údálosti EndStep.

Nahoru Odpovědět
28.5.2012 14:27
New kid back on the block with a R.I.P
Avatar
Neaktivní uživatel:29.5.2012 17:23

thx :)

Nahoru Odpovědět
29.5.2012 17:23
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:29.5.2012 17:51

Sakra kde to v tom kódu je?

draw_set_font(in­v_font);
draw_set_color(in­v_c2);
draw_rectangle(in­v_x,inv_y,inv_x+in­v_widthinv_grid,in­v_y+inv_heightin­v_grid,obj_cha­racter);

for (X=obj_charac­ter;X<inv_wid­th;X+=1) {
for (Y=obj_charac­ter;Y<inv_heig­ht;Y+=1) {
draw_set_color(in­v_c1);
draw_rectangle(in­v_x+Xinv_grid,in­v_y+Yinv_grid,in­v_x+inv_grid+in­v_gridX,inv_y+in­v_grid+inv_gri­dY,1);
draw_set_color(in­v_slotc)
if jemys(inv_x+in­v_gridX,inv_y+in­v_gridY,inv_x+in­v_gridX+inv_grid,in­v_y+inv_gridY+in­v_grid) then draw_rectangle(in­v_x+Xinv_grid+1,in­v_y+Yinv_grid+1,in­v_x+inv_grid+in­v_gridX-1,inv_y+inv_grid+in­v_gridY-1,0)
if jemys(inv_x+in­v_gridX,inv_y+in­v_gridY,inv_x+in­v_gridX+inv_grid,in­v_y+inv_gridY+in­v_grid) and mouse_check_but­ton_pressed(mb_lef­t) then {inv_vybranex=X+1;in­v_vybraney=Y+1}
if inv_vybranex=X+1 and inv_vybraney=Y+1 {
draw_set_color(in­v_slotcs);
draw_rectangle(in­v_x+Xinv_grid+1,in­v_y+Yinv_grid+1,in­v_x+inv_grid+in­v_gridX-1,inv_y+inv_grid+in­v_gridY-1,0)
}
draw_set_color(in­v_rcolor);
draw_rectangle(in­v_x,inv_y+20+in­v_gridinv_heig­ht,inv_x+inv_rwid­th,inv_y+inv_rhe­ight+inv_gridin­v_height,0);
draw_sprite_ex­t(object_get_spri­te(inv_item[X+1,Y+1]­),0,inv_x+Xin­v_grid,inv_y+Y­inv_grid,inv_grid/spri­te_get_width(ob­ject_get_spri­te(inv_item[X+1,Y+1]­)),inv_grid/spri­te_get_height(ob­ject_get_spri­te(inv_item[X+1,Y+1]­)),0,c_white,1);
if inv_itemcount[X+1,Y+1]!­=0 then draw_text(inv_x+in­v_gridX,inv_y+in­v_gridY,strin­g(inv_itemcou­nt[X+1,Y+1]));
if jemys(inv_x,in­v_y,inv_x+inv_wid­thinv_grid,in­v_y+inv_heightin­v_grid) then {
inv_obj=inv_get_i­tem_xy(mouse_x,mou­se_y);
draw_set_color(in­v_rfcolor);
if inv_obj!=inv_fre­eslot then inv_text=o_in­ventar.inv_po­pis[inv_obj] else inv_text=o_in­ventar.inv_po­pis[inv_frees­lot];
draw_text(inv_x+3,in­v_y+20+inv_grid*in­v_height+5,in­v_text);
}
}
}

if inv_vybranex!=0 and inv_vybraney!=0 {
if keyboard_chec­k_pressed(vk_de­lete) then inv_delete_item(in­v_vybranex,in­v_vybraney);
if keyboard_chec­k_pressed(vk_en­ter) then execute_strin­g(o_inventar.in­v_kod[inv_get_i­tem(inv_vybra­nex,inv_vybra­ney)]);
}

Nahoru Odpovědět
29.5.2012 17:51
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:29.5.2012 19:35

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".

Nahoru Odpovědět
29.5.2012 19:35
New kid back on the block with a R.I.P
Avatar
Neaktivní uživatel:29.5.2012 20:13

Ne vážně, kde to v tom je?

Nahoru Odpovědět
29.5.2012 20:13
Neaktivní uživatelský účet
Avatar
David Jančík
Vlastník
Avatar
Nahoru Odpovědět
29.5.2012 20:16
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Neaktivní uživatel:29.5.2012 20:40

A pak že se tady člověk dozví co potřebuje

Nahoru Odpovědět
29.5.2012 20:40
Neaktivní uživatelský účet
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Hartinger:29.5.2012 21:18

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 :`

Nahoru Odpovědět
29.5.2012 21:18
New kid back on the block with a R.I.P
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Neaktivní uživatel
David Jančík:29.5.2012 21:28

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.
Nahoru Odpovědět
29.5.2012 21:28
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Neaktivní uživatel:30.5.2012 14:21

Díky. To si ve svém <b>kódu</b> opravím.

Nahoru Odpovědět
30.5.2012 14:21
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.