v3.1.0: added sync checks to camera class
This commit is contained in:
@@ -136,13 +136,13 @@ public class Camera extends Gizmo {
|
|||||||
panIntensity = 0f;
|
panIntensity = 0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void zoom( float value ) {
|
public synchronized void zoom( float value ) {
|
||||||
zoom( value,
|
zoom( value,
|
||||||
scroll.x + width / 2f,
|
scroll.x + width / 2f,
|
||||||
scroll.y + height / 2f );
|
scroll.y + height / 2f );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void zoom( float value, float fx, float fy ) {
|
public synchronized void zoom( float value, float fx, float fy ) {
|
||||||
|
|
||||||
PointF offsetAdjust = centerOffset.clone();
|
PointF offsetAdjust = centerOffset.clone();
|
||||||
centerOffset.scale(zoom).invScale(value);
|
centerOffset.scale(zoom).invScale(value);
|
||||||
@@ -154,7 +154,7 @@ public class Camera extends Gizmo {
|
|||||||
snapTo( fx - offsetAdjust.x, fy - offsetAdjust.y );
|
snapTo( fx - offsetAdjust.x, fy - offsetAdjust.y );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resize( int width, int height ) {
|
public synchronized void resize( int width, int height ) {
|
||||||
this.width = width;
|
this.width = width;
|
||||||
this.height = height;
|
this.height = height;
|
||||||
screenWidth = (int)(width * zoom);
|
screenWidth = (int)(width * zoom);
|
||||||
@@ -172,7 +172,7 @@ public class Camera extends Gizmo {
|
|||||||
float followDeadzone = 0f;
|
float followDeadzone = 0f;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update() {
|
public synchronized void update() {
|
||||||
super.update();
|
super.update();
|
||||||
|
|
||||||
float deadX = 0;
|
float deadX = 0;
|
||||||
@@ -233,12 +233,12 @@ public class Camera extends Gizmo {
|
|||||||
return x >= this.x && y >= this.y && x < this.x + screenWidth && y < this.y + screenHeight;
|
return x >= this.x && y >= this.y && x < this.x + screenWidth && y < this.y + screenHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void shift( PointF point ){
|
public synchronized void shift( PointF point ){
|
||||||
scroll.offset(point);
|
scroll.offset(point);
|
||||||
panIntensity = 0f;
|
panIntensity = 0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCenterOffset( float x, float y ){
|
public synchronized void setCenterOffset( float x, float y ){
|
||||||
scroll.x += x - centerOffset.x;
|
scroll.x += x - centerOffset.x;
|
||||||
scroll.y += y - centerOffset.y;
|
scroll.y += y - centerOffset.y;
|
||||||
if (panTarget != null) {
|
if (panTarget != null) {
|
||||||
@@ -248,7 +248,7 @@ public class Camera extends Gizmo {
|
|||||||
centerOffset.set(x, y);
|
centerOffset.set(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void snapTo(float x, float y ) {
|
public synchronized void snapTo(float x, float y ) {
|
||||||
scroll.set( x - width / 2f, y - height / 2f ).offset(centerOffset);
|
scroll.set( x - width / 2f, y - height / 2f ).offset(centerOffset);
|
||||||
panIntensity = 0f;
|
panIntensity = 0f;
|
||||||
followTarget = null;
|
followTarget = null;
|
||||||
@@ -258,18 +258,18 @@ public class Camera extends Gizmo {
|
|||||||
snapTo( point.x, point.y );
|
snapTo( point.x, point.y );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void panTo( PointF dst, float intensity ){
|
public synchronized void panTo( PointF dst, float intensity ){
|
||||||
panTarget = dst.offset(centerOffset);
|
panTarget = dst.offset(centerOffset);
|
||||||
panIntensity = intensity;
|
panIntensity = intensity;
|
||||||
followTarget = null;
|
followTarget = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void panFollow(Visual target, float intensity ){
|
public synchronized void panFollow(Visual target, float intensity ){
|
||||||
followTarget = target;
|
followTarget = target;
|
||||||
panIntensity = intensity;
|
panIntensity = intensity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFollowDeadzone( float deadzone ){
|
public synchronized void setFollowDeadzone( float deadzone ){
|
||||||
followDeadzone = deadzone;
|
followDeadzone = deadzone;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -310,7 +310,7 @@ public class Camera extends Gizmo {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void shake( float magnitude, float duration ) {
|
public synchronized void shake( float magnitude, float duration ) {
|
||||||
shakeMagX = shakeMagY = magnitude;
|
shakeMagX = shakeMagY = magnitude;
|
||||||
shakeTime = shakeDuration = duration;
|
shakeTime = shakeDuration = duration;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user