我试图使用PIXIJs创建一个移动的圆,它会在鼠标单击事件下移动。虽然它能够工作,但问题是它要么先到达x位置,要么先到达y位置。
问题在于它到达离圆更近的x或y位置,但我需要将圆沿着同一直线向目标(鼠标单击区域)移动...
我进行了一些计算,但并没有起作用...有什么关于将圆移动到直线上的想法吗?
这是我的fiddle链接:moving Circle
问题在于它到达离圆更近的x或y位置,但我需要将圆沿着同一直线向目标(鼠标单击区域)移动...
我进行了一些计算,但并没有起作用...有什么关于将圆移动到直线上的想法吗?
这是我的fiddle链接:moving Circle
let xDestination = 100;
let yDestination = 100;
let app = new PIXI.Application(window.width,window.height);
document.body.appendChild(app.view);
let Graphics = new PIXI.Graphics();
Graphics.beginFill(0x00FFFF);
let rect = Graphics.drawCircle(20, 20, 20, 20);
let NewStage = new PIXI.Graphics();
NewStage.beginFill(0xFC7F5F);
let bodyy = NewStage.drawRect(0, 0, 500, 500);
bodyy.interactive = true;
rect.interactive = true;
app.stage.addChild(bodyy);
app.stage.addChild(rect);
let isMovingForward = true;
app.ticker.add(function(){
if(rect.pivot.x !== xDestination && rect.pivot.y !== yDestination){
if(rect.x > xDestination) {
rect.x -= 5;
} else {
rect.x += 5;
}
if(rect.y > yDestination) {
rect.y -= 5;
} else {
rect.y += 5;
}
}
})
bodyy.click = function(mouseData){
xDestination = Math.round(mouseData.data.global.x -20);
yDestination = Math.round(mouseData.data.global.y -20);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/pixi.js/4.5.1/pixi.min.js"></script>
这里是我的JSfiddle