赞 | 663 |
VIP | 62 |
好人卡 | 144 |
积分 | 334 |
经验 | 110435 |
最后登录 | 2024-11-1 |
在线时间 | 5108 小时 |
Lv5.捕梦者
- 梦石
- 0
- 星屑
- 33414
- 在线时间
- 5108 小时
- 注册时间
- 2012-11-19
- 帖子
- 4878
|
最简单的,需要三个参数:A坐标(x,y);B坐标(x,y); 最大可移动的像素距离;
比如 A 向 B 移动,每次的最大移动像素距离是 10
rx = A.x - B.x # X方向距离差
ry = A.y - B.y # Y方向距离差
distance = (rx.abs + ry.abs).to_f #总距离
tx = rx.abs / distance # X方向占总距离的比率。
speed = [distance, 10.0].min # 限制最大移动距离
mx = speed * tx #根据X方向比率换算实际移动量
my = speed - mx #最大移动距离减去X方向移动量,得到Y方向移动量
mx = rx > 0 ? -mx : mx #根据差值计算X移动方向
my = ry > 0 ? -my : my #根据差值计算Y移动方向
开始移动
A.x += mx
A.y += my |
评分
-
查看全部评分
|