从零开始做一个俄罗斯方块游戏6形状停靠
我是会做游戏也会教你做游戏的小蚂蚁,欢迎关注我,每天学点儿做游戏的知识。
嗨!大家好,我是小蚂蚁。今天我们继续来看下一个流程:形状停靠。
什么是形状停靠呢?就是当一个形状碰撞到任何一个已有的方块或者碰撞到下边界时,它就应该被停放在那里。
在处理形状停靠之前,有一点儿东西需要了解,就是已经停靠的方块和正在下落的方块不是一种方块,如图,红色的表示的是已经停靠的方块,绿色的表示下落的方块。
绿色方块的作用是展示当前下落的形状,红色方块的作用是标识出哪些位置已经摆放了方块。
整个停靠的过程是这样的:当形状发生碰撞后,我们在当前形状对应的方块位置上创建一个新的方块,创建完新的方块之后,再将当前的这个形状移除。
如果你看了之前的教程,对于数据抽象和表格的遍历有一定的了解了,那么这里就很容易了。
当形状发生碰撞后,首先计算出当前形状的的"计算点"在整个数据表格中的行号和列号,然后从"计算点"所在的行列号开始,依次遍历当前状态数据表格中的每一项,如果当前数据为 1 ,就在这个位置处创建一个新的方块,直到当前状态的数据表格遍历完成为止。最后,再将这个形状删除。
其中还涉及到行列号和位置的换算,公式在上面,就不再解释了。这个换算将表面上的游戏世界和背后的看不见数据表格连接起来,其实真正的计算和逻辑处理都是以背后的数据表格为基础的,背后的工作完成之后,再将得到的结果展现到游戏的界面上。
接下来,我们就来看一下形状停靠的逻辑实现。由于形状只在下方发生碰撞时才进行停靠,所以,所以,我们只需要处理向下移动的逻辑即可。
方块填充的函数。
创建一个新的"填充方块"用于填充,为了区分两种方块,这里我将填充方块设置为绿色。
再来看一下"填充方块"的积木逻辑。
逻辑很简单,根据行号和列号设置自己在游戏世界中的位置,然后再在整个数据表格中自己对应的位置处设置为 1,表示当前的这个位置已经有方块填充了。
最后,我们来预览一下。
一个形状停靠之后,在它的各个方块的位置上创建了新的绿色填充方块,填充完成后,原有的白色形状被删除了,这个就是"形状停靠"的过程了。
你是否疑惑为什么这里要用两种方块呢?在形状的停靠过程中使用同一个方块不行吗?为什么要把原来的删除掉,再去创建新的方块呢?
之所以这么做是要把不同方块的职责划分清楚。构成形状的方块不需要任何的逻辑,它只是用于拼凑出当前的形状。而填充的方块需要处理后续的很多事情,例如消除处理,下落处理等。所以,我们使用两种方块,一种方块没有逻辑,只用于表现,一种方块包含逻辑,用于后续的各种处理。这样每种方块只需要专心的处理自己的职责即可,无需了解其它的事情。
一鱼多吃模式激活IP商业化新势能来源人民网原创稿人民网北京3月24日电(焦磊)穿行在繁花似锦的神都洛阳,欣赏璀璨焰火在人声吵嚷的牡丹楼里,观看衣着华丽的舞者翩翩起舞画风一转,在入夜的神都街头,踏上一辆颠簸的马车,
小米有品众筹降维打击!下放万元级别装备,车主无比从容淡定如今城市的节奏越来越快,对于每天奔波在通勤道路上的上班一族来说,生活工作的压力需要得到释放,有的人会选择在休息时间进行跑步有的人会选择在周末的时间进行爬山有的人会选择游泳,释放压力
联想拯救者新品发布后吵翻了天!4050显卡卖9K,真能对标ROG?今年23月份的新品游戏本井喷,从一线到三线品牌都陆续发布了旗下新一代游戏本,而近期联想拯救者2023系列发布之后,引发的讨论热度格外强烈,其中占比很大的话题不外乎产品涨价,价格飘了
國際七欖下周五開打門票銷情理想超越去年香港欖球總會(欖總)表示將於下周五(31日)至周日(4月2日)開打的香港國際七人欖球賽(七欖),目前門票銷量和預計入場人數已超越去年11月賽事的逾27,000張門票。賽事至今已賣出
菜鸟联合淘宝直播举办绿色回收节,230万个旧快递包装被回收再利用3月6日至20日,菜鸟联合淘宝直播举办了首届绿色回收节。头部主播和消费者共同努力,菜鸟15天内共回收快递包装230余万个。据中环联合认证中心单包裹减碳量测算数据推算,这批回收的快递
当代散文一炷心香祭奶奶文王新雷爷爷中风偏瘫在床躺了两年,最终还是没能熬过那句七十三八十四,阎王不叫自己去的老俗话,在一九九0年的春天去世,那年我上高二。二十五年后,九十六岁的奶奶也走完了自己的人生路,安
非常有意思40句的哲理1俗话说好马不吃回头草可俗话又说浪子回头金不换!2俗话说兔子不吃窝边草可俗话又说近水楼台先得月!3俗话说宰相肚里能撑船可俗话又说有仇不报非君子!4俗话说男子汉大丈夫,宁死不屈可俗话
文案忘不掉你的原因是因为你曾在我的记忆中得过满分眼睛会说话,一个眼神就可以看到一个人的心思。温柔的眼神,有着别样的吸引力。等待和犹豫,才是这个世界上最无情的杀手。原以为是救赎,但却是另一个深渊你是我褪去新鲜感仍然心动的人忘不掉你
红尘看不破文烽火台红尘当然指的是人世间的正常生活,所谓看破红尘,一般指有人遭受了世间的磨难和灾祸,产生了避世和厌世的想法。说得直白一点,就是这日子不想过了。普通人过日子,也不是一件容易事,天
今夜无眠,35岁重新定义幸福偶尔的,失眠。想要的得不到,得失看的太重,两眼都是名和利,这两年总感觉自己是个失败者!今晚原想早早入睡,9点半就躺下辗转反侧,无法入睡,重新定义自己的35岁现状,突然豁然开朗,原来
全能型斜杠青年,却说我只学会爱这是我们采访的第210位创业人物,创业即是人生,生命精彩待续斜杠青年周重辉我要的不是多重收入,而是多重人生。周重辉凭借自己多方面的兴趣与多方面的天赋,为自己人生开拓志业,不为自己的