今天只有研究一些相关的文章与做法,并没进行实作,所以单纯的纪录一下
虽说是今天是订这个目标,但是这个问题在每个游戏都很常见,例如: 好好地走在地图上,但是突然就被拉入虚空。这个就是碰撞解析(处理)的问题。今天则是把问题缩得更小,只用在2D平面,而且仅限矩形上。
回顾一下之前利用SAT做出来的碰撞,目的是要让角色站在地上,但是他却陷下去了!这个就可以带到上面说的走一走就掉入虚空的例子,後来参考Learn OpenGL - Collision Resolutiuon那一章节,这样的情况是来源於
假设角色每一帧都会往前一个单位,而这个单位很大会受
delta time
影响,那就有可能在这一帧算到的时候,就已经陷入其他物体内了,而且这件事低FPS会比高FPS的影响来的更大。
Learn OpenGL的解决作法是,碰撞时,算出陷进去多少向量,在把这个距离回减到碰撞物体上,这样在视觉上就可以是两个物体最终是互相卡住的状态。
然後,我在想,有没其他的作法,而且应该还是会有一些没考虑到的问题,毕竟Learn OpenGL里的范例,每个物体都是等大小的,我的2D Platfomer之後有许多不同大小的贴图话,可能就不是这麽简单了。
於是我在YT上找的这个教学影片,我认为是非常好教材
这部影片不只提到了上面说的帧数的问题,补充说道,如果是低FPS的设备,那就有可能当下这帧的时候,角色已经穿过并离开这个物体了,如果在进行校正,就会把原本的角色拉回到之前还没触碰到的位置。
重点是,这篇有一点一滴地从点>线>面开始解说并实作,但很不幸是英文的 ~o~
网站必备!连结动态 连结的Hover动态算是网页动态最基本款, 一个好的动态绝对可以帮网页 点击率(...
前言 今日的程序码 => GIHUB 这篇,我要请求 https://jsonplacehol...
var item = $('input:radio[name="radio_name&qu...
人的科技文明发展始终来自於人性 伴随着整体世界的技术进步与科技的发展,人们的生活越来越便利且越来越舒...
延续昨日 我们今天先把 登出的功能给搞定 不然每次都要清除session不然就是要重开== 由於我们...