基础对象移动新增是否可行区域判断
This commit is contained in:
parent
651902908c
commit
db1fd3dfd4
|
|
@ -6,6 +6,9 @@
|
|||
*/
|
||||
class BaseObject extends Actor {
|
||||
|
||||
//所在地图
|
||||
MySelfMap = null;
|
||||
|
||||
//方向
|
||||
Direction = 1;
|
||||
|
||||
|
|
@ -73,24 +76,41 @@ class BaseObject extends Actor {
|
|||
Z = vargv[1];
|
||||
base.MoveTo(Value, vargv[0] - vargv[1]);
|
||||
}
|
||||
|
||||
|
||||
SetZOrder(Y);
|
||||
}
|
||||
|
||||
//传入坐标 xyz 的table 或者 单独传 xyz
|
||||
function MoveBy(Value, ...) {
|
||||
if (vargv.len() == 0) {
|
||||
X += Value.x;
|
||||
Y += Value.y;
|
||||
//如果在地图中 判断是否可行
|
||||
if (MySelfMap) {
|
||||
local pos = MySelfMap.CheckMovableArea(X, Value.x, Y, Value.y);
|
||||
X += pos.x;
|
||||
Y += pos.y;
|
||||
base.MoveBy(pos.x, pos.y - Value.z);
|
||||
} else {
|
||||
X += Value.x;
|
||||
Y += Value.y;
|
||||
Value.y = Value.y - Value.z;
|
||||
base.MoveBy(Value);
|
||||
}
|
||||
Z += Value.z;
|
||||
Value.y = Value.y - Value.z;
|
||||
base.MoveBy(Value);
|
||||
} else if (vargv.len() == 2) {
|
||||
X += Value;
|
||||
Y += vargv[0];
|
||||
//如果在地图中 判断是否可行
|
||||
if (MySelfMap) {
|
||||
local pos = MySelfMap.CheckMovableArea(X, Value, Y, vargv[0]);
|
||||
X += pos.x;
|
||||
Y += pos.y;
|
||||
base.MoveBy(pos.x, pos.y - vargv[1]);
|
||||
} else {
|
||||
X += Value;
|
||||
Y += vargv[0];
|
||||
base.MoveBy(Value, vargv[0] - vargv[1]);
|
||||
}
|
||||
Z += vargv[1];
|
||||
base.MoveBy(Value, vargv[0] - vargv[1]);
|
||||
}
|
||||
SetZOrder(Y);
|
||||
MySelfMap.CheckMovableAreaTransmit(this, X, Y);
|
||||
}
|
||||
|
||||
//设置方向
|
||||
|
|
|
|||
Loading…
Reference in New Issue