Start the same scene but from a different location?
-
Ok so im almost done with the main game mechanics but this one got me scratching my head. Is there a way to load the same scene but add the character at a different location on that same scene? Think of mario brothers. You know how you can go inside a tunnel and it will take you to a hidden room. Then you can take that same tunnel out the map and continue where you left of. Same concept. I want my character to go to another scene then come back out to the previous scene but where he left of. I know i can just duplicate the scene and manually position the character where i want. But for this game. I have many rooms. I dont want to have to create 10 different scenes of the same layout just to mimick him starting from where he left of.
-
@SplitMindGaming I would recommend moving your secret room actually to a place on your main scene that is off the screen, hidden, you can never see it until you go there. That way you don't have to load any scene and then have to make logic that causes the scene to know where to spawn your character.
If for some reason you don't want to do this, it is possible to do what you asked but it might need a few things to be changed (for example the starting screen of your main scene will be seen for a split second every time unless you hide it at the start)
-
@SplitMindGaming Checkpoints? You can make this with Save to Files and Load from Files.
For that I think I would save the position of the character when it trigger the event and after that it go to the next scene.
But don't forget to put a load from Files and move to behavior that will trigger before your scene is starting. Like that, when you go back to the scene, it will move to the position saved. Don't forget to put the default value of the load from file to the initial position of your character.
-
@Aidan-Oxley I have actually thought about this but would it be a performance issue for my game that is vertical and the rooms will be hidden off to the side that are 1000 of meters high in the air? Would it make it glitchy or does how high the game goes really dont matter in terms of performance issue.
-
@XxWhiteHearrxX this is actually something i have not thought about and is very smart. Im going to look into this. Thank you for that.
-
@SplitMindGaming I suppose it would depend on how many objects your rooms are made up of. If it's a lot of objects then yes maybe you might start getting performance issues. How far away you put them makes no difference though. What whitehearr said is actually one of the only few ways to do it I think.
-
@Aidan-Oxley thanks so I kind of have an idea how to achieve what whitehear Said but It might take me like 3 days honestly to figure out lol. But I will keep you guys posted. Also if maybe one of you guys could create a simple file checkpoint structure that moves between scenes and would love to share it. That would help me and any other members here trying to build a similar game alot. :)
-
@SplitMindGaming You can also set a hidden label/attribute on the Global Ui layer and it will not change as you move across scenes. So you could set an attribute to the position of the player on the ui (2, one for x one for y), and every time the main scene loads you run a block of logic that moves the player to this position.
-
@Aidan-Oxley thats smart. Question about global layers. Is it a bad idea to actually put all my characters and objects to the global layer. Is this considered bad coding or unethical you can say. The reason why I ask is because if I actually put everything to a global layer. I Can simply turn off certain behavior events when leaving the scene and easily turn them back on when returning to the current scene. It would be just as if i never left it. I just dont know the reprocussions of making everything a global layer. Also is there a way to move an object on the scene to a different layer? I dont see that option.
-
@SplitMindGaming i just noticed global layers dont have physics so please ignore that question.
-
@SplitMindGaming 1: the global layer does not change across scenes, so you will not be able to have multiple scenes.
2: I'm pretty sure physics are not allowed on ui layers
3: I don't think you can even move the screen on the ui layer (as in camera will not follow the player)The ui layers are meant for ui objects, they really don't work with much else.
-
@SplitMindGaming said in Start the same scene but from a different location?:
Also is there a way to move an object on the scene to a different layer? I dont see that option.
Yep, the behaviour is called Set Z Order (in the transforms/blue tab)
-
@Aidan-Oxley yes i just realized that as I was attempting to do some testing. But is there a way to easily move an object to a different layer? Lets say i accidently dragged a trashcan object the screen. Spent many hours adding the coding to it then realized its in the wrong layer this entire time. Is there a way to move it within the iU.i without puting the move layer code to it ?
-
@SplitMindGaming Oh you wanna do it without logic, as in in the editor. Press and hold that object, you'll get the option to copy it. You can then navigate to the layer you want and then paste it using the stamp tool.
-
@Aidan-Oxley perfect thank you so much. Lifesaver
-
@Aidan-Oxley so I got it to work and you are right about the start of the main scene shown for split second. Is there any way around that besides trying to hide the background? Why does it do that by the way?
-
The scene displays before any behaviours are executed.
I personally put an object over everything else. Like a black colour that fades out (which hides the initial scene)
You could also try enable preloading on that scene, but that probably won't help.
-
@SplitMindGaming Yeah do something like what kamdroid said. Now that you have logic that moves the player at the start of level loading, maybe you could put the player in a blank area to start with.
-
@Kamdroid Thanks i will try this out.
-
Also with the scene displaying first before any behaviors are executed. Is that just a hyperpad thing or can you somehow code this out yourself to have it look for any priority behaviors before the screen loads?