summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/assets/javascripts/app.js5
-rw-r--r--public/assets/javascripts/mx/extensions/mx.movements.js27
-rw-r--r--public/assets/javascripts/rectangles/models/floor.js5
-rw-r--r--public/assets/javascripts/rectangles/models/wall.js7
-rw-r--r--public/assets/javascripts/ui/editor/Presets.js9
-rw-r--r--public/assets/javascripts/ui/editor/WallpaperPicker.js15
-rwxr-xr-xpublic/assets/stylesheets/app.css4
-rw-r--r--views/controls/editor/wallpaper.ejs2
8 files changed, 48 insertions, 26 deletions
diff --git a/public/assets/javascripts/app.js b/public/assets/javascripts/app.js
index f8372cd..cfbe4bf 100644
--- a/public/assets/javascripts/app.js
+++ b/public/assets/javascripts/app.js
@@ -57,11 +57,14 @@ app.launch = function () {
}
app.movements.init()
+ var last_t = 0
function animate (t) {
+ var dt = t - last_t
+ last_t = t
requestAnimationFrame(animate)
environment.update(t)
window.path && path.update(t)
- app.movements.update()
+ app.movements.update(dt || 0)
scene.update()
}
diff --git a/public/assets/javascripts/mx/extensions/mx.movements.js b/public/assets/javascripts/mx/extensions/mx.movements.js
index 5b1e2de..2993fb6 100644
--- a/public/assets/javascripts/mx/extensions/mx.movements.js
+++ b/public/assets/javascripts/mx/extensions/mx.movements.js
@@ -254,7 +254,7 @@ MX.Movements = function (cam) {
}
},
- update: function () {
+ update: function (dt) {
if (locked) { return }
@@ -263,6 +263,11 @@ MX.Movements = function (cam) {
var vrrrr = creeping ? vr * creepFactor * 5 : vr * 0.5
var moving = moveForward || moveBackward || moveRight || moveLeft || moveUp || moveDown || turnLeft || turnRight || turnUp || turnDown
vx = vz = 0
+
+ var vv = v
+// vv *= dt / 100 * 8
+// s *= dt / 100 * 8
+// console.log(dt / 100 * 8)
pos.x = cam.x
pos.z = cam.z
@@ -270,26 +275,26 @@ MX.Movements = function (cam) {
if (moving) {
if (moveForward) {
- vx += v * Math.cos(ry + Math.PI / 2) * s
- vz += v * Math.sin(ry + Math.PI / 2) * s
+ vx += vv * Math.cos(ry + Math.PI / 2) * s
+ vz += vv * Math.sin(ry + Math.PI / 2) * s
}
if (moveBackward) {
- vx -= v * Math.cos(ry + Math.PI / 2) * s
- vz -= v * Math.sin(ry + Math.PI / 2) * s
+ vx -= vv * Math.cos(ry + Math.PI / 2) * s
+ vz -= vv * Math.sin(ry + Math.PI / 2) * s
}
if (moveLeft) {
- vx -= v * Math.cos(ry) * s
- vz -= v * Math.sin(ry) * s
+ vx -= vv * Math.cos(ry) * s
+ vz -= vv * Math.sin(ry) * s
}
if (moveRight) {
- vx += v * Math.cos(ry) * s
- vz += v * Math.sin(ry) * s
+ vx += vv * Math.cos(ry) * s
+ vz += vv * Math.sin(ry) * s
}
if (moveUp) {
- pos.y += v * scale
+ pos.y += vv * scale
}
if (moveDown) {
- pos.y -= v * scale
+ pos.y -= vv * scale
}
if (turnUp) {
diff --git a/public/assets/javascripts/rectangles/models/floor.js b/public/assets/javascripts/rectangles/models/floor.js
index 2fb870f..ac1f8c9 100644
--- a/public/assets/javascripts/rectangles/models/floor.js
+++ b/public/assets/javascripts/rectangles/models/floor.js
@@ -146,8 +146,9 @@
Floor.prototype.wallpaperPosition = function(background){
if (this.background.src == "none") { return }
- this.background.x = background.x || this.background.x
- this.background.y = background.y || this.background.y
+
+ this.background.x = background.x || this.background.x || 0
+ this.background.y = background.y || this.background.y || 0
this.background.scale = background.scale || this.background.scale || 1
var mx, dx, dy
diff --git a/public/assets/javascripts/rectangles/models/wall.js b/public/assets/javascripts/rectangles/models/wall.js
index 75814dc..8590de7 100644
--- a/public/assets/javascripts/rectangles/models/wall.js
+++ b/public/assets/javascripts/rectangles/models/wall.js
@@ -288,10 +288,11 @@
Wall.prototype.wallpaperPosition = function(background){
if (this.background.src == "none") { return }
- this.background.x = background.x || this.background.x
- this.background.y = background.y || this.background.y
+
+ this.background.x = background.x || this.background.x || 0
+ this.background.y = background.y || this.background.y || 0
this.background.scale = background.scale || this.background.scale || 1
-
+
var mx, dx, dy
var w = Math.round( this.backgroundImage.naturalWidth * this.background.scale )
var h = Math.round( this.backgroundImage.naturalHeight * this.background.scale )
diff --git a/public/assets/javascripts/ui/editor/Presets.js b/public/assets/javascripts/ui/editor/Presets.js
index ab311ef..d233144 100644
--- a/public/assets/javascripts/ui/editor/Presets.js
+++ b/public/assets/javascripts/ui/editor/Presets.js
@@ -82,14 +82,17 @@ var Presets = View.extend({
lastPreset: {wall:[1],outline:[1],floor:[1],ceiling:[1]},
load: function(preset){
this.parent.colorControl.modes.forEach(function(mode){
+ var color
if (! preset[mode].length) {
Walls.setWallpaper[mode](preset[mode])
+ color = preset[mode].color
}
else {
Walls.clearWallpaper[mode]()
- }
- Walls.setColor[mode](preset[mode])
- this.parent.colorControl.$swatch[ mode ].css("background-color", rgb_string(preset[mode]))
+ color = preset[mode]
+ }
+ Walls.setColor[mode](color)
+ this.parent.colorControl.$swatch[ mode ].css("background-color", rgb_string(color))
}.bind(this))
this.parent.colorControl.setMode(preset.wall.color ? "wall" : "floor")
Walls.setBodyColor()
diff --git a/public/assets/javascripts/ui/editor/WallpaperPicker.js b/public/assets/javascripts/ui/editor/WallpaperPicker.js
index b26a5dc..994fe74 100644
--- a/public/assets/javascripts/ui/editor/WallpaperPicker.js
+++ b/public/assets/javascripts/ui/editor/WallpaperPicker.js
@@ -27,6 +27,9 @@ var WallpaperPicker = UploadView.extend({
this.$position = this.$("[data-role='wallpaper-position']")
this.$scale = this.$("[data-role='wallpaper-scale']")
+ this.$wallpaperResizeControls = this.$(".wallpaperResizeControls")
+ this.$wallpaperResizeControls.addClass('disabled')
+
this.initializePositionCursor()
},
@@ -154,16 +157,18 @@ var WallpaperPicker = UploadView.extend({
wall: null,
pickWall: function(wall){
if (! wall.background || wall.background.src == "none") {
+ this.$wallpaperResizeControls.addClass('disabled')
return;
}
+ this.$wallpaperResizeControls.removeClass('disabled')
this.wall = wall
- this.$scale.val( this.wall.background.scale )
+ this.$scale.val( Math.log( this.wall.background.scale ) )
},
updateScale: function(){
if (! this.wall) return;
- s = parseFloat(this.$scale.val())
- this.wall.wallpaperPosition({ scale: s })
+ var scale = Math.exp( parseFloat(this.$scale.val()) )
+ this.wall.wallpaperPosition({ scale: scale })
},
tileWalls: function(){
@@ -192,7 +197,7 @@ var WallpaperPicker = UploadView.extend({
down: function(e, cursor){
if (! base.wall) return
dragging = true
- s = parseFloat( base.$scale.val() )
+ // s = parseFloat( base.$scale.val() )
x = base.wall.background.x
y = base.wall.background.y
},
@@ -203,7 +208,7 @@ var WallpaperPicker = UploadView.extend({
dx = delta.a*s
dy = delta.b*s
base.wall.wallpaperPosition({
- scale: s,
+ // scale: s,
x: x+dx,
y: y+dy,
})
diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css
index 226fe98..641fa75 100755
--- a/public/assets/stylesheets/app.css
+++ b/public/assets/stylesheets/app.css
@@ -1630,6 +1630,10 @@ input[type="range"]::-webkit-slider-thumb {
border:3px solid #000;
}
+.wallpaperResizeControls.disabled {
+ pointer-events: none;
+ opacity: 0.3;
+}
.wallpaperResizeControls input[type=range] {
width: 130px;
position: relative;
diff --git a/views/controls/editor/wallpaper.ejs b/views/controls/editor/wallpaper.ejs
index 69a60ec..d2559cc 100644
--- a/views/controls/editor/wallpaper.ejs
+++ b/views/controls/editor/wallpaper.ejs
@@ -25,7 +25,7 @@
<div class="wallpaperResizeControls">
<span data-role="wallpaper-position" class="ion-arrow-expand"></span>
- <input data-role="wallpaper-scale" type="range" min="0.01" max="8.0" step="0.1" value="1.0">
+ <input data-role="wallpaper-scale" type="range" min="-4" max="4" step="0.01" value="0.0">
</div>
</div>