作者Cosmology (宇宙学型男)
看板GameDesign
标题[程式] 四面碰撞侦测的问题(SDL)
时间Thu Feb 14 01:10:02 2013
大家好
最近在设计类似洛克人的游戏
我现在遇到碰撞侦测的一些问题
主要是想设计一个类似跳台的地方
碰到跳台的左右两侧可以慢速滑下来
(有玩过洛克人应该都有印象)
碰到跳台的下面会反弹落下
(当然就跟超级马力去撞已经撞过得?号是一样的意思)
站到跳台上面就跟在地面行走一样
我不确定这样的要求是不是非常难的工作@@
翻了一些资料
但是我摸了好几天几乎一天快13个小时左右 一直没办法设计出成功的逻辑模组
可以请高手帮我看一下吗?
/*
http://ideone.com/Lhe3YO
这个是检测是否两物体碰撞成功的程式
参考:
http://lazyfoo.net/SDL_tutorials/lesson17/index.php
再加上自己的一些想法改编的
主要是加入四个数字来判断到底碰到哪一边
*/
/*这边是逻辑区*/
/*
http://ideone.com/HzjxoC
box就是我洛克人的一个方块 Wall就是我设定的墙壁(应该不是重点)
主要的想法是说
左右边碰撞的时候
洛克人朝原来移动的反方向动(跟边界碰撞一样)
但是另外有速度5向下
上面碰撞时就直接落下 且比攀爬墙壁快 速度10
站在平台上 这瞬间Y速度归0
*/
感觉想法都没错
可是执行的时候 会有穿墙的问题
一直看不透到底哪边有问题
我知道资讯可能比较片段 因为我也不知道问题出在哪边= =
如果有需要更多资讯请跟我说 我看到会尽快补足资料的
希望高手能给我一点想法
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.253.122.210
1F:→ azureblaze:不考虑用box2d之类现成的物理引擎吗? 02/14 01:19
2F:推 BSpowerx:你的check_collision在没碰撞的时候才会去设定Left/Right 02/14 01:19
3F:→ BSpowerx:/Top/Bottom_Collision 这不太对吧 02/14 01:20
4F:推 KanoLoa:x_rockman += x_velocity; 和y 的这两行要放最後才对 02/14 20:58
5F:推 juicefish:不能用else if 02/15 00:56
6F:推 juicefish:XY移动量不为1的时候很容易直接卡进角中 要同时判定 02/15 01:04
7F:推 juicefish:再来是有接触判定後 偏移量不一定是定值 02/15 02:11