Step Event:
execute code:
///keypress code
if (keyboard_check(vk_left))
{
dir=player_state.left;
is_moving=true;
}
else
if (keyboard_check(vk_right))
{
dir=player_state.right;
is_moving=true;
}
else
if (keyboard_check(vk_up))
{
dir=player_state.up;
is_moving=true;
}
else
if (keyboard_check(vk_down))
{
dir=player_state.down;
is_moving=true;
}
else
{
is_moving=false;
}
execute code:
///movement
if is_moving
{
switch (dir)
{
case player_state.up:
y -= 4;
break;
case player_state.down:
y += 4;
break;
case player_state.left:
x -= 4;
break;
case player_state.right:
x += 4;
break;
}
}
execute code:
///animation
if is_moving
{
switch (dir)
{
case player_state.up:
sprite_index=spr_walk_up;
break;
case player_state.down:
sprite_index=spr_walk_down;
break;
case player_state.left:
sprite_index=spr_walk_left;
break;
case player_state.right:
sprite_index=spr_walk_right;
break;
}
}
if !is_moving
{
switch (dir)
{
case player_state.up:
sprite_index=spr_idle_up;
break;
case player_state.down:
sprite_index=spr_idle_down;
break;
case player_state.left:
sprite_index=spr_idle_left;
break;
case player_state.right:
sprite_index=spr_idle_right;
break;
}
}
Information about object: obj_setup
Sprite:
Solid: false
Visible: true
Depth:
0
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Create Event:
execute code:
///Very Basic Example
global.cash=10000;
//In game you may declare gold like here or load from a saved ini file
global.inventory[1,1]="Rum"; //Item Name
global.inventory[1,2]=spr_rum; //Item Sprite
global.inventory[1,3]=50; //Cost
global.inventory[1,4]=10; // Current Inventory
global.inventory[1,5]=25; // Max Inventory
global.inventory[2,1]="Banana"; //Item Name
global.inventory[2,2]=spr_banana; //Item Sprite
global.inventory[2,3]=12; //Cost
global.inventory[2,4]=4; // Current Inventory
global.inventory[2,5]=10; // Max Inventory
global.inventory[3,1]="Gun"; //Item Name
global.inventory[3,2]=spr_gun; //Item Sprite
global.inventory[3,3]=120; //Cost
global.inventory[3,4]=2; // Current Inventory
global.inventory[3,5]=100; // Max Inventory
global.inventory[4,1]="Chest"; //Item Name
global.inventory[4,2]=spr_chest; //Item Sprite
global.inventory[4,3]=1000; //Cost
global.inventory[4,4]=0; // Current Inventory
global.inventory[4,5]=50; // Max Inventory
Information about object: obj_shop
Sprite: spr_shop
Solid: false
Visible: true
Depth:
0
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Collision Event with object obj_player:
execute code:
room_goto(room_shop);
Information about object: obj_shopkeeper
Sprite: spr_shop_head
Solid: false
Visible: true
Depth:
0
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Create Event:
execute code:
img=0;
is_talking=false;
Step Event:
execute code:
if is_talking
{
img++;
}
if is_talking && img==30
{
img=0;
is_talking=false;
}
Draw Event:
execute code:
draw_sprite(spr_shop_mouth,img,x,y+35);
draw_self();
Information about object: obj_shopkeeper_bg
Sprite: spr_keeper_frame
Solid: false
Visible: true
Depth:
10
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Information about object: obj_item_parentSprite: spr_item_frame
Solid: false
Visible: true
Depth:
0
Persistent: false
Parent:
Children
obj_item_1
obj_item_2
obj_item_3
obj_item_4
Mask:
No Physics Object
Draw Event:
execute code:
/* Example Data:
global.inventory[1,1]="Rum"; //Item Name
global.inventory[1,2]=spr_rum; //Item Sprite
global.inventory[1,3]=50; //Cost
global.inventory[1,4]=10; // Current Inventory
global.inventory[1,5]=25; // Max Inventory
*/
//draw bg
draw_self();
//draw data from array using myid from child object
draw_set_font(font_shop_mini);
draw_set_halign(fa_center);
draw_set_valign(fa_middle);
draw_set_colour(c_black);
draw_text(x,y-72,global.inventory[myid,1]);
draw_sprite(global.inventory[myid,2],0,x,y-30);
draw_set_colour(c_yellow);
draw_text(x,y+15,string(global.inventory[myid,3])+" Coins");
draw_set_colour(c_black);
draw_text(x,y+40,string(global.inventory[myid,4])+" / "+string(global.inventory[myid,5]));
Information about object: obj_item_1
Sprite: spr_item_frame
Solid: false
Visible: true
Depth:
0
Persistent: false
Parent: obj_item_parent
Children:
Mask:
No Physics Object
Create Event:
execute code:
myid=1;
Information about object: obj_item_2
Sprite: spr_item_frame
Solid: false
Visible: true
Depth:
0
Persistent: false
Parent: obj_item_parent
Children:
Mask:
No Physics Object
Create Event:
execute code:
myid=2;
Information about object: obj_item_3
Sprite: spr_item_frame
Solid: false
Visible: true
Depth:
0
Persistent: false
Parent: obj_item_parent
Children:
Mask:
No Physics Object
Create Event:
execute code:
myid=3;
Information about object: obj_item_4
Sprite: spr_item_frame
Solid: false
Visible: true
Depth:
0
Persistent: false
Parent: obj_item_parent
Children:
Mask:
No Physics Object
Create Event:
execute code:
myid=4;
Information about object: obj_shop_sign
Sprite: spr_shop_sign
Solid: false
Visible: true
Depth:
10
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Information about object: obj_coinSprite: spr_coin
Solid: false
Visible: true
Depth:
-100
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Draw Event:
execute code:
draw_self();
draw_set_font(font_shop_big);
draw_set_halign(fa_center);
draw_set_valign(fa_middle);
draw_set_colour(c_black);
draw_text(x-2,y-122,"Current#"+string(global.cash));
draw_set_colour(c_yellow);
draw_text(x,y-120,"Current#"+string(global.cash));
Information about object: obj_buy_parent
Sprite: spr_buy
Solid: false
Visible: true
Depth:
-100
Persistent: false
Parent:
Children
obj_buy_1
obj_buy_2
obj_buy_3
obj_buy_4
Mask:
No Physics Object
Create Event:
execute code:
image_speed=0;
image_index=0;
Step Event:
execute code:
//set as red or green button
if global.cash>=global.inventory[myid,3]//if player has enough cash
{
image_index=0;
}
else
{
image_index=1;
}
if global.inventory[myid,4]==global.inventory[myid,5]//if maxed out
{
image_index=1;
}
Mouse Event for Left Pressed:
execute code:
///basic shop buy
if global.inventory[myid,4]==global.inventory[myid,5] //check if maxed out already
{
audio_play_sound(snd_overkill,1,false);
obj_shopkeeper.is_talking=true; //make shopkeeper talk
}
else if global.cash<global.inventory[myid,3]//do this if not enough cash
{
audio_play_sound(snd_not_enough_cash,1,false);
obj_shopkeeper.is_talking=true; //make shopkeeper talk
}
//next part for successful purchase
else
{
audio_play_sound(snd_purchase_complete,1,false);
obj_shopkeeper.is_talking=true; //make shopkeeper talk
global.cash-=global.inventory[myid,3];
global.inventory[myid,4]++;
}
Information about object: obj_buy_1
Sprite: spr_buy
Solid: false
Visible: true
Depth:
-100
Persistent: false
Parent: obj_buy_parent
Children:
Mask:
No Physics Object
Create Event:
execute code:
myid=1;
event_inherited();
Information about object: obj_buy_2
Sprite: spr_buy
Solid: false
Visible: true
Depth:
-100
Persistent: false
Parent: obj_buy_parent
Children:
Mask:
No Physics Object
Create Event:
execute code:
myid=2;
event_inherited();
Information about object: obj_buy_3
Sprite: spr_buy
Solid: false
Visible: true
Depth:
-100
Persistent: false
Parent: obj_buy_parent
Children:
Mask:
No Physics Object
Create Event:
execute code:
myid=3;
event_inherited();
Information about object: obj_buy_4
Sprite: spr_buy
Solid: false
Visible: true
Depth:
-100
Persistent: false
Parent: obj_buy_parent
Children:
Mask:
No Physics Object
Create Event:
execute code:
myid=4;
event_inherited();
No comments:
Post a Comment