var xx = argument0

var yy = argument1

var ins = argument2

var left_top_x = room_width/2-CELL_WIDTH*(CELL_x_number div 2) - CELL_WIDTH

var left_top_y = room_height/2-CELL_HEIGHT*(CELL_y_number div 2) - CELL_HEIGHT

var px = (obj_player.x - left_top_x) div CELL_WIDTH

var py = (obj_player.y - left_top_y) div CELL_HEIGHT

var R_bbox = (obj_player.bbox_right - left_top_x) div CELL_WIDTH

var L_bbox = (obj_player.bbox_left - left_top_x) div CELL_WIDTH

var T_bbox = (obj_player.bbox_top - left_top_y) div CELL_HEIGHT

var B_bbox = (obj_player.bbox_bottom - left_top_y) div CELL_HEIGHT


var xp = x

var yp = y


x = xx

y = yy


var left_meeting = false;

if ins.geo_grid[# L_bbox,py] = Mountain {left_meeting = true};

var right_meeting = false;

if ins.geo_grid[# R_bbox,py] = Mountain {right_meeting = true};

var top_meeting = false;

if ins.geo_grid[# px,T_bbox] = Mountain {top_meeting = true};

var bottom_meeting = false;

if ins.geo_grid[# px, B_bbox] = Mountain {bottom_meeting = true};


x = xp

y = yp


while (left_meeting or right_meeting or top_meeting or bottom_meeting)

{

ย  ย  if ins.geo_grid[# L_bbox,py] != Mountain {left_meeting = false};

ย  ย  if ins.geo_grid[# R_bbox,py] != Mountain {right_meeting = false};

ย  ย  if ins.geo_grid[# px,T_bbox] != Mountain {top_meeting = false};

ย  ย  if ins.geo_grid[# px, B_bbox] != Mountain {bottom_meeting = false};

ย  ย  if left_meeting {hspeed = 0; x += 1}

ย  ย  if right_meeting {hspeed = 0; x -= 1}

ย  ย  if top_meeting {vspeed = 0; y+=1}

ย  ย  if bottom_meeting {vspeed = 0; y-=1}

}


์ž„์‹œ๋ณ€์ˆ˜๊ฐ€ ๋‚ ์•„๊ฐ€์„œ ๊ทธ๋Ÿฐ๊ฑด ์•„๋‹๊ฑด๋ฐ?

while ์ง€์šฐ๋ฉด ๋™์ž‘์€ ํ•˜๋Š”๋ฐ ๋ฒฝ์— ๋ถ€๋น„๋ถ€๋น„ ๊ฑฐ๋ฆฌ๋Š”๊ฒŒ ๊ฑฐ์Šฌ๋ ค์„œ ๋ณด์ •ํ–ˆ๋Š”๋ฐ ์ž๊พธ ๋ฌดํ•œ๋ฃจํ”„๋Œ์Œ

์Šคํฌ๋ฆฝํŠธ๋Š” step์—์„œ ์ž‘๋™ํ•˜๋Š”์ค‘