浪子終回頭 2022-07-05 03:49 采纳率: 75%
浏览 52
已结题

游戏开发 玩家移动到怪物背后 如何获取背后坐标

img

看图 由右上图示例:

  1. 中心蓝色为玩家,怪物可以为360度任意方向
  2. 右上圆心的蓝色为怪物
  3. 玩家需要移动到怪物背后的红色区域的大圆位置,位置与圆相交,不在圆内或圆外
  4. 移动位置可以为 包含不限于 ABC 的任意角度

已知数据:

  1. 玩家坐标
  2. 怪物坐标

可变数据:

  1. 怪物外圆半径,此半径用于移动后距离怪物的距离
  2. 移动到怪物后方的角度,比如正后方B点(假设为0度), A点(假设为45度) C点(假设为-40度)

如何根据已知数据,获取ABC的坐标,

帮忙看下,给个思路,谢谢

  • 写回答

1条回答 默认 最新

  • 於黾 2022-07-05 08:13
    关注

    用怪物坐标减去玩家坐标,得到一个向量
    向量的y值比x值求反tan就是角度
    然后根据到底是A还是C,加上或减去一个角度,假设角度是a
    现在问题就是求从怪物坐标出发,角a的射线与怪物圆相交的交点
    圆方程是(x-x0)^2+(y-y0)^2=r^2
    射线方程是y-y0=k(x-x0),k=tan(a)
    其中x0,y0是怪物坐标
    联合一下,把2带入1,即可求得x,y

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月14日
  • 已采纳回答 7月6日
  • 创建了问题 7月5日

悬赏问题

  • ¥15 波形合成电路的设计学习
  • ¥15 unity脚本挂不上
  • ¥15 数学建模数学建模需要
  • ¥20 Java Sound Api 调用Mixer.getLine偶现Line unsupported错误。
  • ¥15 使用cuda加速opencv运算但是报错AttributeError: module 'cv2.cuda' has no attribute 'getCudaEnabledDeviceCount'
  • ¥15 java输入输出异常
  • ¥15 三子连珠对弈小游戏制作
  • ¥15 C++扑克牌游戏的编程
  • ¥15 有人能看一下我宿舍管理系统的报修功能该怎么改啊?链表那里总是越界
  • ¥15 cs loadimage运行不了,easyx也下了,没有用