diff options
| author | Jules Laplace <jules@okfoc.us> | 2014-10-20 17:03:30 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2014-10-20 17:03:30 -0400 |
| commit | 3b0962d1d07ed4aa74536e3323feed1a2dbc5643 (patch) | |
| tree | 5c43ebd561c7b80830ffc25d55ab9492d1f6c0bf | |
| parent | d5902489a6454119330549e4c13f153acd776ef2 (diff) | |
| parent | 6dadb217e8253138936d4f5180f9cefa6e7caed9 (diff) | |
merge
| -rw-r--r-- | public/assets/javascripts/app.js | 5 | ||||
| -rw-r--r-- | public/assets/javascripts/mx/extensions/mx.movements.js | 27 | ||||
| -rw-r--r-- | public/assets/javascripts/rectangles/models/floor.js | 5 | ||||
| -rw-r--r-- | public/assets/javascripts/rectangles/models/wall.js | 7 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/editor/Presets.js | 9 | ||||
| -rw-r--r-- | public/assets/javascripts/ui/editor/WallpaperPicker.js | 15 | ||||
| -rwxr-xr-x | public/assets/stylesheets/app.css | 4 | ||||
| -rw-r--r-- | views/controls/editor/wallpaper.ejs | 2 |
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> |
