Showing posts with label 【GAMEMAKER】write text files that can be downloaded and processed. Show all posts
Showing posts with label 【GAMEMAKER】write text files that can be downloaded and processed. Show all posts

Thursday, 8 April 2021

【GAMEMAKER】write text files that can be downloaded and processed

 Information about object: obj_get_from_net

Sprite:
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_file
Sprite:
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Create 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 file


execute 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_player
Sprite: spr_idle_down
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Children:
Mask:
No Physics Object
Create 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_wall
Sprite: spr_wall
Solid: true
Visible: true
Depth: 1
Persistent: false
Parent:
Children:
Mask:
No Physics Object

Information about object: obj_lake
Sprite: spr_lake
Solid: true
Visible: true
Depth: 1
Persistent: false
Parent:
Children:
Mask:
No Physics Object

Information about object: obj_tree
Sprite: spr_tree
Solid: true
Visible: true
Depth: 1
Persistent: false
Parent:
Children:
Mask:
No Physics Object

Information about object: obj_bush
Sprite: spr_bush
Solid: true
Visible: true
Depth: 1
Persistent: false
Parent:
Children:
Mask:
No Physics Object

BREAKING: North Carolina automotive group acquires 7 Upstate dealerships

Breaking news from GSA Business Report Click here to view this message in a browser window. ...