diff --git a/Spaceinator.project.gmx b/Spaceinator.project.gmx index 6d6be44..6b0b710 100644 --- a/Spaceinator.project.gmx +++ b/Spaceinator.project.gmx @@ -16,14 +16,13 @@ sprites\spr_enemy sprites\spr_asteroid sprites\spr_boom - sprites\spr_empty background\bg_space - + objects\obj_player @@ -31,7 +30,6 @@ objects\obj_controller objects\obj_bullet objects\obj_asteriod - objects\obj_air rooms\rm_game diff --git a/objects/obj_air.object.gmx b/objects/obj_air.object.gmx deleted file mode 100644 index 2c4e293..0000000 --- a/objects/obj_air.object.gmx +++ /dev/null @@ -1,23 +0,0 @@ - - - spr_empty - 0 - -1 - 0 - 0 - <undefined> - <undefined> - - 0 - 0 - 0 - 0.5 - 0.100000001490116 - 0 - 0.100000001490116 - 0.100000001490116 - 0.200000002980232 - -1 - 0 - - diff --git a/objects/obj_controller.object.gmx b/objects/obj_controller.object.gmx index e2ad267..286716d 100644 --- a/objects/obj_controller.object.gmx +++ b/objects/obj_controller.object.gmx @@ -48,7 +48,43 @@ 1 - step_counter++; + /// Every Frame Global Code. +step_counter++; + + + + + + + + 1 + 603 + 7 + 0 + 0 + -1 + 2 + + + self + 0 + 0 + + + 1 + /// Draw Debug Screen + +var chunkRelX = obj_player.x % 256 +var chunkRelY = obj_player.y % 256 + +var chunkX = (obj_player.x - chunkRelX) / 256,; +var chunkY = (obj_player.y - chunkRelY) / 256; + + + +draw_text(10,10,"X: "+string(obj_player.x)+"#Y: "+string(obj_player.y)); +draw_text(10,40,"CrX: "+string(chunkRelX)+"#CrY: "+string(chunkRelY)); +draw_text(10,70,"CX: "+string(chunkX)+"#CY: "+string(chunkY)); @@ -71,7 +107,8 @@ 1 - if(window_get_fullscreen()) + /// Set fullscreen +if(window_get_fullscreen()) { window_set_fullscreen(0); } diff --git a/objects/obj_controller_world_gen.object.gmx b/objects/obj_controller_world_gen.object.gmx index f81b847..6c58a52 100644 --- a/objects/obj_controller_world_gen.object.gmx +++ b/objects/obj_controller_world_gen.object.gmx @@ -25,7 +25,10 @@ 1 - + loaded_chunks[64] = 0; +//load_chunk(0,0); + + @@ -47,7 +50,15 @@ 1 - generate_world(); + var chunkRelX = obj_player.x % 256 +var chunkRelY = obj_player.y % 256 + +var chunkX = (obj_player.x - chunkRelX) / 256,; +var chunkY = (obj_player.y - chunkRelY) / 256; + +if(loaded_chunks[0] == 0) + loaded_chunks[0] = load_chunk(chunkX,chunkY); + diff --git a/objects/obj_player.object.gmx b/objects/obj_player.object.gmx index f53a863..616cfd5 100644 --- a/objects/obj_player.object.gmx +++ b/objects/obj_player.object.gmx @@ -25,8 +25,10 @@ 1 - image_speed = 0; + /// Player creation code. +image_speed = 0; image_index = 1; + @@ -49,7 +51,8 @@ image_index = 1; 1 - direction = image_angle + /// Player per frame +direction = image_angle if(speed > 0) speed -= 1 @@ -58,6 +61,7 @@ if(speed > 20) view_xview[0] = x - view_wview[0]/2; view_yview[0] = y - view_hview[0]/2; + diff --git a/scripts/generate_chunk.gml b/scripts/generate_chunk.gml new file mode 100644 index 0000000..1ab203d --- /dev/null +++ b/scripts/generate_chunk.gml @@ -0,0 +1,20 @@ +///generate_chunk() + +var chunk_grid = ds_grid_create(128,128); + +for(var xx = 0; xx < 128; xx++) +{ + for(var yy = 0; yy < 128; yy++) + { + if(random_range(0,10) > 5) + { + chunk_grid = obj_asteriod; + } + else + { + chunk_grid = 0; + } + } +} + + diff --git a/scripts/generate_world.gml b/scripts/generate_world.gml index 8496fef..a2b5448 100644 --- a/scripts/generate_world.gml +++ b/scripts/generate_world.gml @@ -17,9 +17,7 @@ for(var xx = startx; xx < xmax; xx+=32) { for(var yy = starty; yy < ymax;yy+=32) { - - - if(!place_free(xx,yy)) + if(place_empty(xx,yy)) { instance_create(xx,yy,obj_air); diff --git a/scripts/load_chunk.gml b/scripts/load_chunk.gml new file mode 100644 index 0000000..ecd18a8 --- /dev/null +++ b/scripts/load_chunk.gml @@ -0,0 +1,48 @@ +///load_chunk(cx,cy); + +var cx = argument0 +var cy = argument1 + +var chunk_grid = ds_grid_create(256,256); +var filename = string(cx)+","+string(cy)+".spr"; +if(file_exists(filename)) // Load Chunk +{ + ini_open(filename); + for(var xx = 0; xx < 256; xx++) + { + for(var yy = 0; yy < 256; yy++) + { + var nm = string(xx)+string(yy); + var c = ini_read_real("XYV",nm,0); + chunk_grid[xx,yy] = c; + if(c != 0) + instance_create(xx,yy,c); + } + } + ini_close(); +} +else // Generate Chunk +{ + ini_open(filename); + for(var xx = 0; xx < 256; xx++) + { + for(var yy = 0; yy < 256; yy++) + { + var nm = string(xx)+string(yy); + if(random_range(0,10) > 5) + { + ini_write_real("XYV",nm,obj_asteriod); + chunk_grid[xx,yy] = obj_asteriod; + instance_create(cx+xx,cy+yy,obj_asteriod); + } + else + { + ini_write_real("XYV",nm,0);; + chunk_grid[xx,yy] = 0; + } + } + } + ini_close(); +} +return chunk_grid; + diff --git a/sprites/spr_empty.sprite.gmx b/sprites/spr_empty.sprite.gmx deleted file mode 100644 index 09d34af..0000000 --- a/sprites/spr_empty.sprite.gmx +++ /dev/null @@ -1,25 +0,0 @@ - - - 0 - 0 - 0 - 0 - 0 - -1 - 1 - 0 - 31 - 0 - 31 - 0 - 0 - - 0 - - 0 - 32 - 32 - - images\spr_empty_0.png - -