W
wesk1288
Guest
Hey guys,
I have been following this tutorial to set up my inventory system. However, instead of drawing through the draw event as he does, I am now trying to move all of that to the draw GUI event. Problem is, I can't get my items to display in my inventory when I pick them up. Everything else about my inventory draws fine on screen except my items and their description text. Any ideas?
Obj_Inventory / Create Event:
Obj_Inventory / Key Press - I:
Obj_Inventory / Draw GUI:
Thanks in advance for any help!
I have been following this tutorial to set up my inventory system. However, instead of drawing through the draw event as he does, I am now trying to move all of that to the draw GUI event. Problem is, I can't get my items to display in my inventory when I pick them up. Everything else about my inventory draws fine on screen except my items and their description text. Any ideas?
Obj_Inventory / Create Event:
Code:
globalvar playerInventory, playerInventoryWidth;
playerInventoryWidth = 5;
playerInventory = ds_grid_create(playerInventoryWidth, 1);
showInventory = false;
textBorder = 12;
myItems = playerInventory;
myColor = c_black;
isEmpty = false;
emptyMessage = "You don't have any items";
globalvar itemSelected, scrolledAmount, inventoryEndAt;
itemSelected = 0;
scrolledAmount = 0;
inventoryEndAt = min(ds_grid_height(myItems), floor((sprite_height - (textBorder * 3)) / 24));
inventoryOnScreen = 0;
if(ds_grid_get(myItems, 0 , 0) == 0){
inventoryEndAt = 0;
isEmpty = true;
}
alarm[0] = 1;
Code:
if(showInventory == false){
audio_play_sound(snd_UI_click, 10, false);
showInventory = true;
} else {
audio_play_sound(snd_UI_click, 10, false);
showInventory = false;
}
Code:
if(showInventory == true){
draw_self();
draw_set_font(fnt_header);
draw_set_colour(myColor);
draw_text(bbox_left + textBorder, bbox_top + textBorder - 10, "Image");
draw_text(bbox_left + 65, bbox_top + textBorder - 10, "Name");
draw_text(bbox_left + 245, bbox_top + textBorder - 10, "Amount");
draw_set_font(-1);
itemLeftStart = bbox_left + 75;
itemTopStart = bbox_top + 24;
for(i = 0; i < inventoryEndAt; ++i) {
for(j = 0; j < playerInventoryWidth; ++j){
inventoryOnScreen = i;
if(j == 0)
draw_text(itemLeftStart - 8, itemTopStart + (i * 32) + 3, ds_grid_get(myItems, 0, i + scrolledAmount));
if(j == 1)
draw_text(itemLeftStart + 175, itemTopStart + (i * 32) + 3, ds_grid_get(myItems, 1, i + scrolledAmount));
if(j == 3)
draw_sprite(ds_grid_get(myItems, j, i + scrolledAmount), 0, bbox_left + 25, itemTopStart + (i * 32) + 10);
}
}
draw_rectangle(bbox_left + textBorder, itemTopStart - 5 + ((itemSelected - scrolledAmount) * 32), bbox_right - textBorder, itemTopStart - 10 + ((itemSelected - scrolledAmount) * 32) + 32, true);
draw_sprite(spr_InventoryDescriptionWall, 0, x + 150, y + 150);
if(isEmpty){
draw_text_ext(bbox_right - 110, camera_get_view_width(view_camera[0]) - sprite_get_yoffset(spr_InventoryDescriptionWall) - 10, emptyMessage, 32, sprite_get_width(spr_InventoryDescriptionWall) - textBorder);
} else {
draw_text_ext(bbox_right + 15, camera_get_view_y(view_camera[0]) + 425 - sprite_get_yoffset(spr_InventoryDescriptionWall) - 100, ds_grid_get(myItems, 2, itemSelected), 16, sprite_get_width(spr_InventoryDescriptionWall) - textBorder - 4);
}
}
draw_set_font(-1);
draw_set_color(c_white);