原理很簡單,請不要噴。數組
種子輸入框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。