做了一个三消游戏,说一下做的思路
gamemaker吧
全部回复
仅看楼主
level 4
jkm三儿 楼主
一楼留空
2014年12月27日 09点12分 1
level 4
jkm三儿 楼主
2014年12月27日 10点12分 2
先加入消除元素和背景. 创建6个Sprite,创建Sprite需要注意自己做一个充满图片的钻石碰撞.自动碰撞是根据图片中的图形做的.会使房间中的物体掉落不整齐
2014年12月27日 10点12分
level 4
jkm三儿 楼主
2014年12月27日 10点12分 3
房间中的构成,黄色框中是生成点,用来生成消除元素.蓝色框中是边界.
2014年12月27日 10点12分
level 4
jkm三儿 楼主
生成的方法是:设置一个20帧时钟,每次生成之前判断下面一格是否有元素,没有元素就生成一个.
生成之后的元素会自动朝下掉落,碰到元素和边界之后停止.
控制好生成点生成元素的时间和元素掉落速度,太慢了,充满整个房间需要很长时间;太快了,所有元素就都卡在了生成点的位置.(原因:碰到元素和边界之后停止)
2014年12月27日 10点12分 4
level 4
jkm三儿 楼主
元素生成的时候设置一个Color变量,随机一个1-6的值,然后确定图片.
Color//颜色变量,用来记录每个实例对应的颜色
//1 - 红色.(Red)
//2 - 绿色(Green)
//3 - 棕色(Brown)
//4 - 黄色(Yellow)
//5 - 蓝色(Blue)
//6 - 粉色(Pink)
每一步都会根据Color变量切换图片.
2014年12月27日 10点12分 5
level 4
jkm三儿 楼主
生成好了之后,鼠标点击一下,选中元素,再点一其他位置的元素,两个元素互换Color值.(我没有换位置,因为这个比较方便)
我用了一个全局变量来记录第一次点击的实例的id值,然后在判断这个id是否符合要求.如果符合要求就互换两个Color变量.
2014年12月27日 10点12分 6
蓝色框显示的是全局变量global.FirstID,初始值为0,用完之后在把值改为0. 红色框是被选中的两个元素交换Color的过程.
2014年12月27日 10点12分
level 4
jkm三儿 楼主
每两帧进行一次判断,如果Horizontal和Vertical > 1,就消除元素.
开始的时候我把这个操作放在Step中,有BUG,所以就每两帧消除一次.
2014年12月27日 10点12分 8
level 6
牙疼……
2015年01月05日 03点01分 9
1