v0.4.3: added the ability to vertically offset windows
This commit is contained in:
parent
d0b0f42f94
commit
9c87d9d47d
|
@ -37,6 +37,8 @@ public class Window extends Group implements Signal.Listener<Key> {
|
||||||
|
|
||||||
protected int width;
|
protected int width;
|
||||||
protected int height;
|
protected int height;
|
||||||
|
|
||||||
|
protected int yOffset;
|
||||||
|
|
||||||
protected TouchArea blocker;
|
protected TouchArea blocker;
|
||||||
protected ShadowBox shadow;
|
protected ShadowBox shadow;
|
||||||
|
@ -46,15 +48,21 @@ public class Window extends Group implements Signal.Listener<Key> {
|
||||||
public static final int SHPX_COLOR = 0x33BB33;
|
public static final int SHPX_COLOR = 0x33BB33;
|
||||||
|
|
||||||
public Window() {
|
public Window() {
|
||||||
this( 0, 0, Chrome.get( Chrome.Type.WINDOW ) );
|
this( 0, 0, 0, Chrome.get( Chrome.Type.WINDOW ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public Window( int width, int height ) {
|
public Window( int width, int height ) {
|
||||||
this( width, height, Chrome.get( Chrome.Type.WINDOW ) );
|
this( width, height, 0, Chrome.get( Chrome.Type.WINDOW ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
public Window( int width, int height, NinePatch chrome ) {
|
||||||
|
this(width, height, 0, chrome);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Window( int width, int height, NinePatch chrome ) {
|
public Window( int width, int height, int yOffset, NinePatch chrome ) {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
|
this.yOffset = yOffset;
|
||||||
|
|
||||||
blocker = new TouchArea( 0, 0, PixelScene.uiCamera.width, PixelScene.uiCamera.height ) {
|
blocker = new TouchArea( 0, 0, PixelScene.uiCamera.width, PixelScene.uiCamera.height ) {
|
||||||
@Override
|
@Override
|
||||||
|
@ -94,6 +102,7 @@ public class Window extends Group implements Signal.Listener<Key> {
|
||||||
PixelScene.defaultZoom );
|
PixelScene.defaultZoom );
|
||||||
camera.x = (int)(Game.width - camera.width * camera.zoom) / 2;
|
camera.x = (int)(Game.width - camera.width * camera.zoom) / 2;
|
||||||
camera.y = (int)(Game.height - camera.height * camera.zoom) / 2;
|
camera.y = (int)(Game.height - camera.height * camera.zoom) / 2;
|
||||||
|
camera.y -= yOffset * camera.zoom;
|
||||||
camera.scroll.set( chrome.x, chrome.y );
|
camera.scroll.set( chrome.x, chrome.y );
|
||||||
Camera.add( camera );
|
Camera.add( camera );
|
||||||
|
|
||||||
|
@ -116,6 +125,15 @@ public class Window extends Group implements Signal.Listener<Key> {
|
||||||
camera.resize( (int)chrome.width, (int)chrome.height );
|
camera.resize( (int)chrome.width, (int)chrome.height );
|
||||||
camera.x = (int)(Game.width - camera.screenWidth()) / 2;
|
camera.x = (int)(Game.width - camera.screenWidth()) / 2;
|
||||||
camera.y = (int)(Game.height - camera.screenHeight()) / 2;
|
camera.y = (int)(Game.height - camera.screenHeight()) / 2;
|
||||||
|
camera.y += yOffset * camera.zoom;
|
||||||
|
|
||||||
|
shadow.boxRect( camera.x / camera.zoom, camera.y / camera.zoom, chrome.width(), chrome.height );
|
||||||
|
}
|
||||||
|
|
||||||
|
public void offset( int yOffset ){
|
||||||
|
camera.y -= this.yOffset * camera.zoom;
|
||||||
|
this.yOffset = yOffset;
|
||||||
|
camera.y += yOffset * camera.zoom;
|
||||||
|
|
||||||
shadow.boxRect( camera.x / camera.zoom, camera.y / camera.zoom, chrome.width(), chrome.height );
|
shadow.boxRect( camera.x / camera.zoom, camera.y / camera.zoom, chrome.width(), chrome.height );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user