mirror of
https://github.com/Sheldan/canvas.git
synced 2026-04-18 04:50:33 +00:00
survivors: maybe made the behaviour better when projectiles flew through the target and then had to continue moving
This commit is contained in:
@@ -40,6 +40,16 @@ export function linePointCollision(point: Vector, lineStart: Vector, lineEnd: Ve
|
||||
return false;
|
||||
}
|
||||
|
||||
export function pointOnLineWithinLine(circleCenter: Vector, lineStart: Vector, lineEnd: Vector) {
|
||||
let lineVector = Vector.createVector(lineEnd, lineStart)
|
||||
let vectorCenterLine = Vector.createVector(circleCenter, lineStart)
|
||||
let dot = vectorCenterLine.dotProduct(lineVector)
|
||||
let closestX = lineStart.x + (dot * (lineVector.x))
|
||||
let closestY = lineStart.y + (dot * (lineVector.y))
|
||||
let closestPoint = new Vector(closestX, closestY);
|
||||
return linePointCollision(closestPoint, lineStart, lineEnd);
|
||||
}
|
||||
|
||||
export function circleLineCollision(circleCenter: Vector, radius: number, lineStart: Vector, lineEnd: Vector) {
|
||||
if(pointInsideCircle(circleCenter, radius, lineStart) || pointInsideCircle(circleCenter, radius, lineEnd)) {
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user