今天心血来潮,想搞个宝石消除的游戏玩玩。以前玩过不少消消乐,感觉挺有意思,这回就自己动手试试看。
准备工作
一开始也没啥头绪,就上网随便搜搜,看看人家都怎么做的。发现好多都是“单机消灭宝石”、“宝石消除联盟”之类的,玩法都差不多,就是三个一样的连一起就消掉。我寻思着,这应该不难?
我也不想搞太复杂,就打算弄个最简单的,能消就行。界面也懒得花里胡哨的,能看就行。
开搞
先画个草图,大概就是一堆格子,里面放上不同颜色的宝石。然后就开始琢磨怎么让这些宝石动起来。
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
一开始想得挺简单,鼠标点一下宝石,然后跟旁边的交换位置。结果写完发现,这交换完还得判断有没有三个一样的,有的话还得消掉,消掉之后上面的还得掉下来... 越想越麻烦。
卡好久,感觉脑子都快烧糊。后来突然灵光一现,想到一个办法:
- 先用一个二维数组把宝石的位置存起来。
- 每次交换完宝石,就遍历一遍这个数组,看看有没有横着或者竖着三个一样的。
- 有的话就标记一下,然后把这些位置的宝石都清空。
- 然后让上面的宝石掉下来,填补空位。
这么一想,感觉思路清晰多。赶紧动手写代码,噼里啪一顿敲。
调试
写完代码,当然要跑起来看看效果。结果,bug 一大堆!
有时候宝石消不掉,有时候消掉之后上面的掉不下来,有时候干脆就卡死... 我真是服。
没办法,只能一点一点调试。加打印,看变量,单步执行... 反正就是各种折腾。
改好几个小时,总算把这些问题都解决。看着屏幕上五颜六色的宝石,点来点去,消来消去,还挺有成就感的。
收工
虽然只是个简陋的宝石消除游戏,但好歹是自己从头到尾做出来的。以后有时间再慢慢完善,比如加点音效、特效什么的,再弄个好看点的界面。今天就先这样,玩一天也累,该歇歇。
这回实践还是挺有收获的,下次再挑战个更难的!