@AIMrOrange There is a trick. Try to get all the big numbers in a corner and don't move them out of this corner again.
@davmac Yes I mean lose. I know my spelling is terrible :)
When you use the application to rewrite a scenario into a fullscreen scenario the fullscreen window starts automaticly.
Maybe you have to click on the window in the taskbar to make it occour on your screen.
The scrolling system usually stays the same untill you change it.
In the demo I uploaded the scrolling system is changed by clicking on the worlds background.
If you delete the code that causes this (in the run method of the class ExampleWorld) the scrolling system will not change until you change it manually or by moving to the side of the world.
They are just used to visualize some things.
You can delete them in the act method of the class ExampleWorld.
If you delete the whole run method and change the super call in the constructor to this:
super(800, 450, 1, 2000, 2000, MultiScrollingWorld.CENTRAL_ACTOR_SCROLLING_SYSTEM, false);
it should work.
Ok it took a bit longer than I thought but I got it working now.
If you add the following code to your actor it should work:
if (((MultiScrollingWorld) getWorld()).getTotalXMovement() >= MultiScrollingWorld.WORLD_WIDTH/2 - 10) {
((MultiScrollingWorld) getWorld()).setScrollingSystem(MultiScrollingWorld.NO_SCROLLING_SYSTEM);
}
else if (((MultiScrollingWorld) getWorld()).getTotalXMovement() <= -MultiScrollingWorld.WORLD_WIDTH/2 + 10) {
((MultiScrollingWorld) getWorld()).setScrollingSystem(MultiScrollingWorld.NO_SCROLLING_SYSTEM);
}
else if (((MultiScrollingWorld) getWorld()).getTotalYMovement() >= MultiScrollingWorld.WORLD_HEIGHT/2 - 10) {
((MultiScrollingWorld) getWorld()).setScrollingSystem(MultiScrollingWorld.NO_SCROLLING_SYSTEM);
}
else if (((MultiScrollingWorld) getWorld()).getTotalYMovement() <= -MultiScrollingWorld.WORLD_HEIGHT/2 + 10) {
((MultiScrollingWorld) getWorld()).setScrollingSystem(MultiScrollingWorld.NO_SCROLLING_SYSTEM);
}
if (((MultiScrollingWorld) getWorld()).getTotalXMovement() < 0 && getX() < getWorld().getWidth()/2) {
((MultiScrollingWorld) getWorld()).setScrollingSystem(MultiScrollingWorld.CENTRAL_ACTOR_SCROLLING_SYSTEM);
}
else if (((MultiScrollingWorld) getWorld()).getTotalXMovement() > 0 && getX() > getWorld().getWidth()/2) {
((MultiScrollingWorld) getWorld()).setScrollingSystem(MultiScrollingWorld.CENTRAL_ACTOR_SCROLLING_SYSTEM);
}
if (((MultiScrollingWorld) getWorld()).getTotalYMovement() < 0 && getY() < getWorld().getHeight()/2) {
((MultiScrollingWorld) getWorld()).setScrollingSystem(MultiScrollingWorld.CENTRAL_ACTOR_SCROLLING_SYSTEM);
}
else if (((MultiScrollingWorld) getWorld()).getTotalYMovement() > 0 && getY() > getWorld().getHeight()/2) {
((MultiScrollingWorld) getWorld()).setScrollingSystem(MultiScrollingWorld.CENTRAL_ACTOR_SCROLLING_SYSTEM);
}
This will cause that there is no scrolling system used when the actor touches the edge of the world so he's able to move everywhere.
Therefore you need to change the scrolling system using the Multi Scrolling Engine.
I'm currently working on this engine and on exactly this problem.
If you give me a fiew minutes to add some funktions to the engine I can tell you how to do this.
You mean that the actor moves on so that he's not in the middle of the world anymore when he reaches the edge of the scrolling world?
Well this is not provided in this scrolling system.
But if you use my Multi Scrolling Engine (http://www.greenfoot.org/scenarios/10595) it should work.
Using the Multi Scrolling Engine you can change the scrolling system while playing. So you could change it so that the actor is no longer the center of the scrolling system.
2014/8/16
Greenfoot Full Screen Rewriter
2014/6/16
Greenfoot Acts to Seconds Converter
2014/5/6
2048
2014/1/15
Greenfoot Full Screen Rewriter
2014/1/11
Infinite Scrolling World
2014/1/11
Infinite Scrolling World
2014/1/11
Infinite Scrolling World
2014/1/11
Infinite Scrolling World
2014/1/11
Infinite Scrolling World