关系经济人类预测化学自然
投稿投诉
自然科学
知识物理
化学生物
地理解释
预测理解
本质社会
人类现象
行为研究
经济政治
心理结构
关系指导
人文遗产

从零开始做一个俄罗斯方块游戏4形状碰撞检测(上)

10月18日 藏于心投稿
  我是会做游戏也会教你做游戏的小蚂蚁,欢迎关注我,每天学点儿做游戏的知识。
  嗨!大家好,我是小蚂蚁。
  今天,我们来继续学习下一个模块:形状碰撞检测。
  在游戏开发中,我们所说的碰撞经常指的是物理碰撞,什么是物理碰撞呢?一般的在游戏开发工具中都会包含一个叫做物理引擎的东西,它的作用就是在游戏中模拟出现实中的物理效果。例如,我们扔一个东西,这个东西会因为重力而下落,最终落到地上,与地面发生碰撞。在游戏中,我们可以借助物理引擎,来模拟出东西下落掉到地面上的效果。当东西掉到地面上时,我们就说这个东西与地面发生了碰撞。
  但是,在俄罗斯方块这个游戏中,是不需要使用物理引擎的,所以这里的碰撞指的并不是物理碰撞,而是通过计算来判断两个方块是否相邻,如果相邻,我们就说它们发生了碰撞。
  在俄罗斯方块游戏中,碰撞一共包含下面的这4种情况:1。当形状达到最下方一行时,碰撞,形状停靠。
  2。当形状下落时,任何一个位置碰到下方已有的方块,碰撞,形状停靠。
  3。当形状向左右移动时,两侧碰到任何一个已有方块,碰撞,形状不能再向两侧移动。
  4。当形状切换时,如果新状态碰到任何一个已有方块,碰撞,形状不能切换到新状态。
  今天这篇文章,我们先了解一下前两种情况。下边界的碰撞
  如图,当一个形状达到了最下方的第一行时,它就不能够再继续向下移动了。我们把这种情况叫做下边界的碰撞。
  判断起来也很简单,红色圆点代表的是形状当前的位置,由于形状的状态不同,判断是否与下边界发生碰撞的距离也不同,如图,在1,3状态下,与下边界的碰撞距离是1个方块长度,在2,4状态下,与下边界的碰撞距离是1。5个方块长度。下落的碰撞
  接着,来看一下在形状下落的过程中,如何检测是否发生碰撞。
  如图,下方的红色方块表示的是之前已经摆放的方块,上方的绿色方块是下落的形状1,此时,它们应该发生碰撞,绿色的形状应该停止向下移动,摆放在当前的位置上。
  对于下边界的碰撞来说,由于下边界是固定不变的,所以我们只需要根据当前状态,判断与下边界的距离即可判断碰撞。但是在游戏中,那些已摆放的红色方块的位置是不确定的,这就导致了发生碰撞的情况也是不确定的。
  如图,所有的情况都会发生碰撞。
  对于这样不确定的情况,该去如何检测碰撞呢?这时,我们就需要用到数据了。
  如图,右侧的图片是一个数据表格,这个数据表格与左侧的游戏界面是对应的。现在,我们用0表示空位置,1表示有方块,然后对照着左侧的游戏界面将右侧的表格填满。这样,我们就把当前的游戏抽象成了数据,这个就叫做数据抽象化。(之前专门写了一篇与数据抽象化有关的文章,在这里,基本上所有的消除游戏都离不开它)
  填充上数据之后,我们再来看一下各种情况的碰撞。
  试着观察一下碰撞的规律:只要当前形状上的任何一个方块位置的下方是1,那么当前就会发生碰撞。
  现在,我们重新再描述一下碰撞检测的过程:
  依次查看当前形状上的每一个方块,如果发现有任何一个方块下方的位置是1,那就意味着当前形状与已堆叠的方块发生了碰撞。
  接下来,我们就来实现这个碰撞检测的过程。
  如图,是形状1在4种不同状态下所对应的数据表格。如果,我们能够知道形状上的每一个方块在整个数据表格中的位置(行列号),那么,就能够依次地判断出下方的位置是否有1了。
  在进行遍历的时候,我们一般都是习惯于从左往右,从上往下。所以,这里我们可以将左下方的位置当作遍历的起点。
  如图,我们把红色的点叫做计算点,坐标轴的中心是当前形状的位置(x0,y0),根据图片可以很直观的看出来不同状态下的计算点的位置。
  这里算出的计算点的位置是在游戏坐标空间中的位置,还需要将它们进行一次转换,因为我们需要知道的是计算点在数据表格中的哪一行哪一列。
  计算公式在这里了,已经讲过很多次了(所有的消除游戏里都会用到),就不在解释了。总之,我们能够获取到计算点在数据表格中的哪一行哪一列。
  在得到了计算点的行列号之后,接下里就只需要以计算点为起点,依次查看每一个格子下方的数值,只要有任何一个格子下方的数值为1,就证明发生碰撞。
  上方举的是形状1的例子,俄罗斯方块中一共有7种形状,按照其包围矩形的形状可以分为3种类型。
  形状15是一种类型(2x3),形状6是一种类型(1x4),形状7是一种类型(2x2)。
  不同的类型又对应着不同的计算点位置。
  好了,以上就是理论基础了,接下来我们来看一下具体实现的积木逻辑。
  首先,我们创建一个全局的表格变量,叫做网格数据,作用于整个俄罗斯方块游戏。0表示没有方块,1表示有方块。
  接着,我们为形状1创建4个表格数据,对应的就是它的四个状态。
  然后,根据形状状态在表格中添上对应的数据,有方块的位置是1,没有方块的位置是0。
  接着,来看一下积木逻辑。
  最后,看一下碰撞检测函数中的积木逻辑。
  这里比较难以理解的地方是同时对两个表格(一个全局数据表格,一个形状数据表格)进行遍历检查。我习惯于先在纸上画出来,进行推演。如果能够在纸上推演出整个过程话,使用程序来实现这个过程就会简单很多。
  今天的内容就到这里了,稍微总结一下:我们了解形状碰撞检测中的两种情况,第一种下边界的碰撞,比较简单,第二种下落的碰撞,相对比较复杂,需要借助我们反复讲过许多次的数据抽象,利用数据来进行碰撞的检测。
  如果你对于消除游戏中的数据抽象化还不是很理解的话,借着这次机会可以好好研究一下。
  有些东西是值得花时间深究的,因为它们有着以一当百的效果,搞定了一个就相当于搞定了一百个,数据抽象化就是这样的东西。
投诉 评论 转载

溪潭镇磻溪村积极打造闽东红色旅游村溪潭镇磻溪村,拥有自然美景与保存完好的古建筑、古官道,是中国传统村落。近年来,该村立足自然古韵,挖掘红色资源,持续推进乡村振兴。作为革命老区基点村,20世纪30年代,叶飞……4000亿元市场规模?!这一行业,或迎爆发式增长!未来,还能年底假日季来临,买个玩具送孩子,成为很多家长的共同选择。除了经典的毛绒玩具,各类突出环保理念的商品也越发受到欢迎。在美国纽约市的一家玩具店,货架上琳琅满目的毛绒玩具、积木……又一车企停产,寒气传遍电动车行业!近日,天际汽车发布停工停产通知:鉴于公司目前资金情况及生产与销售计划,自2023年4月1日开始,公司部分岗位实行停工停产政策。这是继威马之后,又一崩溃的新能源车品牌……爱国者(aigo)2TBSSD仅售599元,读速可达7450相信大家都留意到了最近各大品牌的SSD都有不同幅度的降价,一些品牌例如梵想在360元左右的价格就能买到1TB容量的SSD,颗粒是长江存储的TLC颗粒,目前,另一品牌爱国者(ai……到底谁才是定妆界的扛把子?说到定妆粉你最先想到的会是哪个品牌?是不是傻傻分不清楚,今天给大家盘点一下大牌定妆粉,快来看看你适合哪一个,理性种草,拒绝跟风盲入,少花冤枉钱。纪梵希大名鼎鼎……从零开始做一个俄罗斯方块游戏4形状碰撞检测(上)我是会做游戏也会教你做游戏的小蚂蚁,欢迎关注我,每天学点儿做游戏的知识。嗨!大家好,我是小蚂蚁。今天,我们来继续学习下一个模块:形状碰撞检测。在游戏开发中,我……2021年下半年备受客户信赖的三款手机摩托罗拉edgex3021年的下半年也接近尾声了,新机也发布完毕了,总结一下今年的手机市场,新机层出不穷,性能不断提升,颜值和拍照也越来越高,涌现出一堆好的手机,今天我就给大家推荐三款今年下半年备受……春来无事只为花忙,去丽江古城赏一城花事春天从来不骗人,该冒的芽会冒,该开的花也会开。时间越往前,草木和自然的气息就越发浓郁起来。春天到丽江古城赏花是一件极其美妙的事情。古城四季皆有花开花落,……武汉新增9家国家制造业单项冠军,数量实现突破性增长鼎龙CMP评价实验室。记者陈亮摄长江日报大武汉客户端12月3日讯光缆构筑网络强国重要基石,新型显示打造数字中国的信息显示重要载体,高端装备制造事关国之重器其背后都有着武汉……你绝对想不到,共享茶室开在旅游城市还有这些优势有很多旅游城市,经济发展比较快,而且人口流量大,游客也多,这种城市拥有天时、地利、人和的优点,开店做生意能够赚很多钱,那么共享茶室若是开在旅游城市有什么优势呢?旅游城市看……励志语录要安静的优秀,悄无声息的坚强,成为更好的自己晚安语录Jun24(1)疲惫的生活中总要守住一些温暖安抚夜晚的落寞一起奔赴明日的期待晚安(2)GOODNIGHT要安静的优……旅游业不能靠忽悠活着疫情不走,旅游不存。假如疫情管控真的放松,市场反弹肯定是有的,但反弹的只是数量,至于高质量发展,2022年没戏;如果旅游业者不从根本上转变旅游思维,革故鼎新,今后几年也不……
太懂事的人,恰恰最乏味超十万人预约,数百款爆品轮番上线,泡泡玛特的潮玩展也进入元宇京东方入列!将为苹果生产未来15寸OLEDiPad屏幕欧洲24强已定十九,法国爆大冷,美洲12强剩一席,男篮世预赛湖人官宣交易达成!防守詹姆斯受伤,赛季报销第一人诞生IP68防水2K曲面屏鸿蒙OS,从5399元跌至1640元,CCTV5直播世界杯樊振东第一轮轮空赢大礼,世界第一剑指冠军美的一级静音燃气热水器QT6缔造品质沐浴美好生活初春养阳,揉腹提肛找寻祖辈的印记陶器传承世家葛鲍聚居地民营经济大市福建泉州开门红签约总额1782亿元四川盘点全国第6,成都强,凉山猛,攀枝花有钱,绵阳房价猛涨
违章建筑被邻居举报会被拆吗日照海滩旅游记女生怎么锻炼胸型好看完美胸型的锻炼方法严控境外诈骗短信!江西电信移动联通用户3月28日起国际及港澳迅雷宣布董事变动小米副总裁王川就任董事长家长不要过分注意孩子的缺点精华教师节的作文200字10篇2005年神舟哪个号载人飞船发射成功(2005年神舟什么号载 人教版五年级上册慈母情深的教学设计奔驰好还是宝马好,为什么?如何判断新生儿的呕吐症状有关童年的馒头的阅读答案

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找菏泽德阳山西湖州宝鸡上海茂名内江三亚信阳长春北海西安安徽黄石烟台沧州湛江肇庆鹤壁六安韶关成都钦州