summaryrefslogtreecommitdiff
path: root/assets/javascripts/rectangles/engine/mover.js
diff options
context:
space:
mode:
Diffstat (limited to 'assets/javascripts/rectangles/engine/mover.js')
-rw-r--r--assets/javascripts/rectangles/engine/mover.js17
1 files changed, 10 insertions, 7 deletions
diff --git a/assets/javascripts/rectangles/engine/mover.js b/assets/javascripts/rectangles/engine/mover.js
index 311ed83..66c1813 100644
--- a/assets/javascripts/rectangles/engine/mover.js
+++ b/assets/javascripts/rectangles/engine/mover.js
@@ -13,26 +13,29 @@ var mover = new function(){
}
base.update = function(pos){
+ var radius = scene.camera.radius
+
cam.y = pos.y
// if we were in a room already..
if (base.room) {
// check if we're still in the room
- if (base.room.rect.contains(pos.x, pos.z)) {
+ if (base.room.rect.containsDisc(pos.x, pos.z, radius)) {
cam.x = pos.x
cam.z = pos.z
return
}
-
+
// check if we've breached one of the walls.. clamp position if so
- var collision = base.room.collides(pos.x, pos.z)
+ var collision = base.room.collides(pos.x, pos.z, radius)
+
if (collision) {
- if (! (collision & LEFT || collision & RIGHT)) {
- cam.x = pos.x
+ if (! (collision & LEFT_RIGHT)) {
+ cam.x = base.room.rect.x.clampDisc(pos.x, radius)
}
- if (! (collision & FRONT || collision & BACK)) {
- cam.z = pos.z
+ if (! (collision & FRONT_BACK)) {
+ cam.z = base.room.rect.y.clampDisc(pos.z, radius)
}
return
}