summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/rectangles
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/javascripts/rectangles')
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/mover.js11
-rw-r--r--public/assets/javascripts/rectangles/models/room.js10
-rw-r--r--public/assets/javascripts/rectangles/models/vec2.js2
3 files changed, 10 insertions, 13 deletions
diff --git a/public/assets/javascripts/rectangles/engine/rooms/mover.js b/public/assets/javascripts/rectangles/engine/rooms/mover.js
index e67d9bc..7195fcc 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/mover.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/mover.js
@@ -43,15 +43,8 @@ Rooms.mover = new function(){
var collision = base.room.collidesDisc(pos.x, pos.z, radius)
if (collision) {
- if (! (collision & LEFT_RIGHT)) {
- cam.x = base.room.rect.x.clampDisc(pos.x, radius)
- }
- else {
- // cam.x = base.room.rect.x.clampDisc(pos.x, radius)
- }
- if (! (collision & FRONT_BACK)) {
- cam.z = base.room.rect.y.clampDisc(pos.z, radius)
- }
+ cam.x = (collision & LEFT_RIGHT) ? base.room.rect.x.clampDisc(pos.x, radius) : pos.x
+ cam.z = (collision & FRONT_BACK) ? base.room.rect.y.clampDisc(pos.z, radius) : pos.z
return
}
diff --git a/public/assets/javascripts/rectangles/models/room.js b/public/assets/javascripts/rectangles/models/room.js
index e5f42fe..32549e9 100644
--- a/public/assets/javascripts/rectangles/models/room.js
+++ b/public/assets/javascripts/rectangles/models/room.js
@@ -14,6 +14,8 @@
sort = require('../util/sort')
FRONT = 0x1, BACK = 0x2, LEFT = 0x4, RIGHT = 0x8, FLOOR = 0x10, CEILING = 0x20
TOP = CEILING, BOTTOM = FLOOR
+ FRONT_BACK = FRONT | BACK
+ LEFT_RIGHT = LEFT | RIGHT
function sidesToString(sides){
var s = ""
if (sides & FRONT) s += "front "
@@ -238,12 +240,12 @@
if (contains_x) {
collision |= wall_collision & FRONT_BACK
}
- else if (contains_y) {
+ if (contains_y) {
collision |= wall_collision & LEFT_RIGHT
}
- else if (bitcount(wall_collision) > 1) {
- collision |= wall_collision
- }
+// if (bitcount(wall_collision) > 1) {
+// collision |= wall_collision
+// }
})
return collision
}
diff --git a/public/assets/javascripts/rectangles/models/vec2.js b/public/assets/javascripts/rectangles/models/vec2.js
index ee02088..2bf286b 100644
--- a/public/assets/javascripts/rectangles/models/vec2.js
+++ b/public/assets/javascripts/rectangles/models/vec2.js
@@ -1,4 +1,6 @@
(function(){
+ function clamp(n,a,b){ return n<a?a:n<b?n:b }
+
var vec2 = function (a,b){
this.a = a
this.b = b