mirror of
https://github.com/logsol/chuck.js.git
synced 2026-05-11 10:37:34 +00:00
working paralax (not for zoom)
This commit is contained in:
parent
357ef181d9
commit
85867f92af
10 changed files with 117 additions and 15 deletions
|
|
@ -2,9 +2,10 @@ define([
|
|||
"Game/Client/View/Abstract/Layer",
|
||||
"Lib/Vendor/Pixi",
|
||||
"Game/Client/View/Pixi/ColorRangeReplaceFilter",
|
||||
"Game/Config/Settings",
|
||||
],
|
||||
|
||||
function (Parent, PIXI, ColorRangeReplaceFilter) {
|
||||
function (Parent, PIXI, ColorRangeReplaceFilter, Settings) {
|
||||
|
||||
var AVAILABLE_MESH_FILTERS = {
|
||||
"blur": PIXI.BlurFilter,
|
||||
|
|
@ -151,7 +152,35 @@ function (Parent, PIXI, ColorRangeReplaceFilter) {
|
|||
mesh.filters = filter;
|
||||
};
|
||||
|
||||
Layer.prototype.render = function(centerPosition, zoom) {
|
||||
this.setPosition(centerPosition);
|
||||
this.setZoom(zoom);
|
||||
|
||||
// Zoom
|
||||
var zoomStep = (this.zoom.target - this.zoom.current) * Settings.CAMERA_GLIDE / 100;
|
||||
this.zoom.current += zoomStep;
|
||||
this.container.scale.x = this.zoom.current;
|
||||
this.container.scale.y = this.container.scale.x;
|
||||
|
||||
// Position
|
||||
var posXStep = (this.position.target.x - this.position.current.x) * Settings.CAMERA_GLIDE / 100;
|
||||
this.position.current.x += posXStep;
|
||||
this.container.x = this.position.current.x + (this.position.current.x * this.parallaxSpeed);
|
||||
|
||||
var posYStep = (this.position.target.y - this.position.current.y) * Settings.CAMERA_GLIDE / 100;
|
||||
this.position.current.y += posYStep;
|
||||
this.container.y = this.position.current.y + (this.position.current.y * this.parallaxSpeed);
|
||||
};
|
||||
|
||||
return Layer;
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
|
||||
1 = this.zoom.current ? -1
|
||||
|
||||
1 = this.zoom.current * (-1) * (-1)
|
||||
|
||||
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ function (Parent, DomController, PIXI, Settings, Nc, Exception, GameStats, Layer
|
|||
|
||||
this.initCamera();
|
||||
|
||||
this.layerManager = new LayerManager(this.container);
|
||||
this.layerManager = new LayerManager(this.container, this.me);
|
||||
|
||||
this.initLoader();
|
||||
|
||||
|
|
@ -61,21 +61,35 @@ function (Parent, DomController, PIXI, Settings, Nc, Exception, GameStats, Layer
|
|||
}
|
||||
|
||||
PixiView.prototype.render = function () {
|
||||
if(this.me) {
|
||||
var pos = this.calculateCameraPosition();
|
||||
this.setCameraPosition(pos.x, pos.y);
|
||||
if (this.me) {
|
||||
this.layerManager.render(this.calculateCenterPosition(), this.currentZoom);
|
||||
}
|
||||
|
||||
this.renderer.render(this.stage);
|
||||
}
|
||||
|
||||
// Camera
|
||||
|
||||
PixiView.prototype.initCamera = function () {
|
||||
this.container = new PIXI.DisplayObjectContainer();
|
||||
this.stage.addChild(this.container);
|
||||
}
|
||||
|
||||
PixiView.prototype.calculateCenterPosition = function() {
|
||||
var target = this.me.getHeadPosition();
|
||||
var centerPosition = {x: target.x, y: target.y};
|
||||
centerPosition.x *= -Settings.RATIO * this.currentZoom;
|
||||
centerPosition.y *= -Settings.RATIO * this.currentZoom;
|
||||
|
||||
centerPosition.x += Settings.STAGE_WIDTH / 2;
|
||||
centerPosition.y += Settings.STAGE_HEIGHT / 2;
|
||||
|
||||
centerPosition.x -= this.me.playerController.xyInput.x * Settings.STAGE_WIDTH / 4;
|
||||
centerPosition.y += this.me.playerController.xyInput.y * Settings.STAGE_HEIGHT / 4;
|
||||
|
||||
return centerPosition;
|
||||
};
|
||||
|
||||
/*
|
||||
PixiView.prototype.calculateCameraPosition = function() {
|
||||
var targetZoom = this.currentZoom;
|
||||
|
||||
|
|
@ -115,7 +129,7 @@ function (Parent, DomController, PIXI, Settings, Nc, Exception, GameStats, Layer
|
|||
|
||||
return pos;
|
||||
};
|
||||
|
||||
*/
|
||||
PixiView.prototype.setCameraZoom = function (zoom) {
|
||||
/*
|
||||
var oldZoom = this.container.scale.x;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue