1.5 Feature Demo - Change Level question
by Andrea Farid Marsili · in iTorque 2D · 12/06/2011 (7:26 am) · 5 replies
I have take a look to levelSelectButton.cs and I have almost understand how to proper load and unload level. Now I have only a single problem.
I have two t2dSceneWindow, one called sceneWindow2D and one named hudWindow now I do not know how to adapt levelSelectButton to load two level.
Can you help me?
Thank you. Here the code form levelSelectButton.cs
I have two t2dSceneWindow, one called sceneWindow2D and one named hudWindow now I do not know how to adapt levelSelectButton to load two level.
Can you help me?
Thank you. Here the code form levelSelectButton.cs
//-----------------------------------------------------------------------------
// Torque
// Copyright GarageGames, LLC 2011
//-----------------------------------------------------------------------------
$levelLoading = false;
function LevelSelectButton::setLevel(%this)
{
%level = %this.level;
echo("Setting level to " @ %level);
$SelectedLevel = %level;
if(isObject(previewWindow))
{
%image = fileBase(%level);
previewWindow.setImageMap(%image @ "ImageMap");
}
}
function LevelSelectButton::startLevel(%this)
{
if(!$levelLoading)
{
$levelLoading = true;
schedule(100, 0, transitionLevel);
}
}
function LevelSelectButton::backToMenu(%this)
{
$SelectedLevel = "levelSelect.t2d";
schedule(100, 0, transitionLevel);
}
function transitionlevel()
{
sceneWindow2D.endLevel();
moveMap.pop();
schedule(100, 0, loadLevel);
}
function loadLevel()
{
// Load the .t2d file for this game
sceneWindow2D.loadLevel("data/levels/" @ $SelectedLevel);
$levelLoading = false;
$SelectedLevel = "multiTouch.t2d";
}
function backToMenu()
{
GuiButtonBack.Visible = 0;
$SelectedLevel = "levelSelect.t2d";
schedule(100, 0, transitionLevel);
}
#2
Thank you Mich
12/10/2011 (9:48 am)
Here's how I modify your script and it works on my iPad2 but on my iPod4G after a few time that I load levels my device crash, due to memory management problems I suppose. Can you give me some advices?Thank you Mich
$levelLoading = false;
function setLevel(%level, %gui){
echo("Setting level to " @ %level);
$currentLevelName = %level;
$currentGuiName = %gui;
previewWindow.setImageMap(%level @ "ImageMap");
}
function startLevel(){
if(!$levelLoading){
$levelLoading = true;
schedule(100, 0, transitionLevel);
}
echo("Called start level");
}
function transitionlevel(){
hudWindow.endLevel();
sceneWindow2D.endLevel();
moveMap.pop();
schedule(100, 0, loadLevel);
}
function loadLevel(){
// Load the .t2d file for this game
sceneWindow2D.loadLevel("data/levels/" @ $currentLevelName @ ".t2d");
hudWindow.loadLevel("data/levels/" @ $currentGuiName @ ".t2d");
$levelLoading = false;
}
#3
12/23/2011 (12:07 am)
No one?
#4
This is what I call in my game-over function if I want to load up another game level. If I want to go back to the menu, I just end the hudWindow2d level and don't load anything for it as my menu just uses one scenewindow.
12/23/2011 (3:37 am)
I think you're over-complicating things a little. This is how I do it in my game with 2 scenewindows:hudWindow2d.schedule(490, endLevel);
hudWindow2d.schedule(491, loadLevel, expandFilename ("data/levels/HUD_levelname.t2d"));
sceneWindow2D.schedule(500, endLevel);
sceneWindow2D.schedule(501, loadLevel, expandFileName ("data/levels/game_levelname.t2d"));This is what I call in my game-over function if I want to load up another game level. If I want to go back to the menu, I just end the hudWindow2d level and don't load anything for it as my menu just uses one scenewindow.
#5
12/25/2011 (10:01 pm)
Thank you. I'll try your metos
Community Manager Michael Perry
ZombieShortbus
In loadLevel, add the following after sceneWindow2D.loadLevel():
hudWindow.loadLevel("path to your level");