Information about object: obj_get_from_net
Sprite:
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Children:
Mask:
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Create Event:
execute code:
//Next part sets path file and target
show_message("Getting Level");
file = http_get_file("https://gist.githubusercontent.com/edward1986/23eeafea5fe1f1652423bd52dba3f522/raw/33b0727256a2938528402f53a10ff8073577069b/level.txt",working_directory +"level1.txt");//save locally as level1.txt
str[0]="";//initiate array
done=false;//this will be used as a flag to detect if file is downloaded
//prevent pc hanging - assume failed after 10 seconds
alarm[0]=room_speed*10;
Alarm Event for alarm 0:
execute code:
show_message("Download Failed. Exiting");
file=-1;
game_end();
Step Event:
execute code: if done room_goto(room_from_file);//when saved goto game rooom
Async Event: HTTP:
execute code:
if ds_map_find_value(async_load, "id") == file//sets up map
{
var status = ds_map_find_value(async_load, "status");//gets status
if status == 0//status 0 means file is finished downloading
{
show_message("Downloaded Level");
done=true;
}
}
Information about object: obj_create_from_fileSprite:
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Children:
Mask: No Physics ObjectCreate Event:execute code: ///read lines to an array lines=0; var file=file_text_open_read("level1.txt");//open file for reading while (!file_text_eof(file))//loops until end of file { str[lines] = file_text_read_string(file); file_text_readln(file); lines++; } file_text_close(file);//closes fileexecute code: ///Read Characters and Create Objects //size of grid grid_size=32; //create a loop for however many lines for ( var loop = 0; loop < lines; loop += 1) { var line=(str[loop]); line_width=string_length(line); for (var position = 1; position <= line_width; position+= 1) { //check each position, create appropriate block switch (string_char_at(line, position)) { case "P": instance_create(16+(position-1)*grid_size,16+loop*grid_size,obj_player); break; case "W": instance_create(16+(position-1)*grid_size,16+loop*grid_size,obj_wall); break; case "L": instance_create(16+(position-1)*grid_size,16+loop*grid_size,obj_lake); break; case "T": instance_create(16+(position-1)*grid_size,16+loop*grid_size,obj_tree); break; case "B": instance_create(16+(position-1)*grid_size,16+loop*grid_size,obj_bush); break; } } }Information about object: obj_playerSprite: spr_idle_down
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Children:
Mask: No Physics ObjectCreate Event:execute code: ///set up enum player_state { idle, up, down, left, right } dir=player_state.down; is_moving=false; image_speed=0.5;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; } ///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; } } ///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; } } else { 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_wallSprite: spr_wall
Solid: true
Visible: true
Depth: 1
Persistent: false
Parent:
Children:
Mask: No Physics ObjectInformation about object: obj_lakeSprite: spr_lake
Solid: true
Visible: true
Depth: 1
Persistent: false
Parent:
Children:
Mask: No Physics ObjectInformation about object: obj_treeSprite: spr_tree
Solid: true
Visible: true
Depth: 1
Persistent: false
Parent:
Children:
Mask: No Physics ObjectInformation about object: obj_bushSprite: spr_bush
Solid: true
Visible: true
Depth: 1
Persistent: false
Parent:
Children:
Mask: No Physics Object