GameMaker--mp_grid_create函数

分类栏目:gamemaker教程

114

GameMaker--mp_grid_create函数

mp_grid_create(left,top,hcells,vcells,cellwidth,cellheight)

这个函式就跟创建一个grid意思差不多(不过他不可以以grid的函式去存取...我试过..),不过他等於是在地图上画透明的格子(把他想成战棋游戏的格子就好了)。
left与top代表要从room的哪里开始画格子,可以当成draw函数的x,y。
hcells与vcells代表要创造几*几的格子,当成横纵。
cellwidth与cellheight呢,就是你的一个格子的大小是多少,当成宽与高。
这个函数使用后会回传一个ID供其他函数使用。
做完了之后,你就会有一个hcells * vcells的grid了,而预设的是每个格子都可以行走。
更改格子属性的函数: 
mp_grid_clear_all(id) 把所有的格子设为可行走,id就是之前create得到的id。
mp_grid_clear_cell(id,h,v) 让特定的格子变为可行走,h跟v不是x与y轴喔,是索引值。
mp_grid_clear_rectangle(id,left,top,right,bottom) 让一个矩阵范围内的所有格子变为可行走,要注意的是后面四个参数为真实的x与y轴(当成draw_rectangle)。
mp_grid_add_cell(id,h,v) 这个是让所有格子设为不能行走。
mp_grid_add_rectangle(id,left,top,right,bottom) 将一个矩阵范围内的所有格子设为不能行走。
mp_grid_add_instances(id,obj,prec) 将一个实例的碰撞范围内的格子设为不能行走,prec是是否使用精准判断,如果要作战棋游戏建议设为true(我就是为了这个卡了一段时间orz)。
mp_grid_path(id,path,xstart,ystart,xgoal,ygoal,allowdiag) path为一个已经存在的路径(就是你要先创造一个..),起点(xstart,ystart)到终点(xgoal,ygoal),allowdiag是是否与许走斜线(true or false),如果有找到一条可行走的路径则回传1,并把路径存到path里(原本的路径会被覆盖),没有则回传0。
mp_grid_draw(id) debug用,可行走区域画绿色,不能行走画红色。