gpt4 book ai didi

collision-detection - 检测碰撞方向

转载 作者:行者123 更新时间:2023-12-03 23:27:08 27 4
gpt4 key购买 nike

一个方形瓷砖与另一个方形瓷砖碰撞。酒保说...

我有:

  • 两个图块的高度、宽度、x 和 y。
  • 引起碰撞的运动的二维向量。

  • 我需要知道从哪个侧面发生了碰撞(例如顶部、底部、左侧、右侧),以便适本地重置位置。

    我会给能回答这个问题的人一个精神 cookies ,因为我已经尝试了太多小时,这似乎很重要。

    最佳答案

    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
    }

    当对象位于另一个内部时,这并不能解决。但它确实适用于重叠

    关于collision-detection - 检测碰撞方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5062833/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com