sli*_*fty 13 collision-detection
方形瓷砖与另一个方形瓷砖碰撞.酒保说......
我有:
我需要知道发生碰撞的情况(例如,顶部,底部,左侧,右侧),以便适当地重置位置.
我会给那些能回答这个问题的人一个精神上的好奇心,因为我已经尝试了太多时间,这似乎是根本的.
Pho*_*nic 18
float player_bottom = player.get_y() + player.get_height();
float tiles_bottom = tiles.get_y() + tiles.get_height();
float player_right = player.get_x() + player.get_width();
float tiles_right = tiles.get_x() + tiles.get_width();
float b_collision = tiles_bottom - player.get_y();
float t_collision = player_bottom - tiles.get_y();
float l_collision = player_right - tiles.get_x();
float r_collision = tiles_right - player.get_x();
if (t_collision < b_collision && t_collision < l_collision && t_collision < r_collision )
{
//Top collision
}
if (b_collision < t_collision && b_collision < l_collision && b_collision < r_collision)
{
//bottom collision
}
if (l_collision < r_collision && l_collision < t_collision && l_collision < b_collision)
{
//Left collision
}
if (r_collision < l_collision && r_collision < t_collision && r_collision < b_collision )
{
//Right collision
}
Run Code Online (Sandbox Code Playgroud)
当对象在另一个内部时,这不能解决.但它确实与重叠有关
| 归档时间: |
|
| 查看次数: |
10114 次 |
| 最近记录: |