gamemaker吧 关注:13,586贴子:94,192
  • 1回复贴,共1

gm8实现消除星星中的星星自然下落

取消只看楼主收藏回复

消除星星或者叫消灭星星,消除宝石等是一款非常流行的小游戏,游戏开局会生成10*10的区域,区域中有不同颜色的星星,当玩家点击连在一起星星时,相当相连区域的星星就会被消除,而被消除的星星上方的所有星星都会向下掉落,当不存在连在一起的星星时本局就会结束。
这里不谈判断能否消除的算法,这里只谈方块消除之后,其他方块如何移动的方法。


IP属地:河南1楼2020-03-29 17:00回复
    方案一:
    以前,我采用过最简单的方法,就是在每个方块的消除(instance destroy)事件中,执行一个动作:判断其上方是否存在方块,如果存在,则所有其上方的方块均向下位移一个方块高度单位:其伪代码如下:
    for(i=y-64;i>=32;i-=64) //从当前位置的上边开始向上遍历
    {
    temp=instance_position(x,i,obj_ceil); //获取指定位置的方块
    with(temp) //使用with结构
    {
    y+=64; //纵坐标增加一个方块高度单位
    }
    }
    这样也能实现下落效果,但方块下落过程都是瞬移,比较突兀。那么如果对上面的代码做一下修改能不能实现呢?
    完整版的我上传百度文库了,地址在这里:https冒号双斜杠wenku点baidu点com/view/f0147b40f66527d3240c844769eae009591ba27f


    IP属地:河南2楼2020-03-29 17:02
    回复