原理很简单,请不要喷。数组
种子输入框markdown
种子为12345的地形dom
种子为23456的地形spa
globalvar map random_set_seed(real(get_string("Seed: ","")))//获取种子 for(i=0;i<=room_width/32;i+=1) { for(j=0;j<=room_height/32;j+=1) { map[i,j]=0;//初始化数组 } } for(i=0;i<=room_width/32;i+=1) { for(j=0;j<=room_height/32;j+=1) { if(random_range(0,100)>=65) map[i,j]=1;//按几率填充房间 } } for(n=1;n<=room_height/32;n+=1) { for(i=0;i<=room_width/32;i+=1) { for(j=0;j<=room_height/32-1;j+=1) { if(map[i,j+1]==0&&map[i,j]==1) { map[i,j+1]=map[i,j]; map[i,j]=0;//方块重力处理 } } } } for(i=0;i<=room_width/32;i+=1) { for(j=0;j<=room_height/32;j+=1) { if(map[i,j]==1) instance_create(i*32,j*32,obj_block)//在房间中按地图建立物体 } }
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... |
---|---|---|---|---|---|---|---|---|---|
2 | |||||||||
3 | |||||||||
4 | |||||||||
5 | |||||||||
6 | |||||||||
7 | |||||||||
8 | |||||||||
9 | |||||||||
... | ... |
random_set_seed()
:置随机数种子random_range
:生产随机数code
map[i,j]==1
是确保正在处理的位置有方块map[i,j+1]==0
是确保正在处理的位置下面一格没有方块对象
若是符合条件的话blog
map[i,j+1]=map[i,j]//清空当前格 map[i,j]=0;//填充下面格
(即当前方块下落)游戏
注意一下,这里没有用map[i,j+1]=1
,让往后二次开发有更多方块。开发
其实它的本质就是建立对象。rem
instance_create(x,y,obj)
的用法本身看F1.
这是我作的第一个记录,但愿个人沙盒游戏也能坚持作下去!
本文原做者Tesla,首发于Tesla-173的我的博客。
Tesla本人转载至Gamemaker开发者之家。
未经受权禁止转载。
如需转载请联系2230229670@qq.com。