Jump to content
A 2021 backup has been restored. Forums are closed and work in progress. Join our Discord server for more updates! ×
SoaH City Message Board

Sonic Dash engine help


GHFan

Recommended Posts

I am designing Sonic Blur with the Sonic Dash Engine for GM, which is pretty much as close to Sonic Worlds as GM can get. I am using the build that DarthCrap posted on the forum topic a long time ago. It has become a little annoying to work with because there are various issues I need to fix:

There is an extra character in the character select, a green Sonic named Ashura. How do I get him out of the title screen? simply deleting his line of code in objMenu just makes you be him when you select Sonic, Sonic when you select Tails, etc.

How do I get rid of the level select menu on the character select screen? I can't seem to make it go away and if I delete the code, I get an error. It's fine right now, but in later releases it may become annoying.

Either I fix these problems or I wait about a month until the new version of ProSonic comes out.

Link to comment
Share on other sites

If you don't even know how those things work, I really don't think ProSonic will be any easier to understand...

I'll help you out, anyways. Each character has a default value associated to it, and I'm assuming for that error to occur, Ashura's number representation would be 1.

Now, objController determines which character is actually created from these numbers, and they should be staticly defined in objController's create event. The strings on the menu are setup to match the number values from 0 to 4 in order ("NONE" is 0, "ASHURA" is 1, etc.). When you took "ASHURA" out of the menu, you only removed the string representation of what number "ASHURA" was in the game. The string "SONIC" became that representation. So now, "SONIC" translates to "1" on the menu, but objController still treats 1 as being Ashura... get it?

As for taking the level select out, just delete anything having to do with controlTestCounter, I suppose. Also, take menuTestSelect() out of the scripts for menuInterfaceNewGame.

  • Like 1
Link to comment
Share on other sites

I hate it when someone who posted a question replies simply to answer someone asking a tangential question or comment while ignoring a long, thought-out explanation of the solution to your problem. Besides, it confuses people who might want to help but don't know whether or not the problem has been solved when you reply after a potential solution but don't address it.

Link to comment
Share on other sites

  • 2 months later...

@Kain:

Sorry...

@AeroGP:

What exactly do I change in objController to make Sonic first, Tails second, etc.?

I can't find where it is in the create event (which is where you said to look in) Here's the code that's in it:

// ------ Initializate -----------------------------------------------

if (global.checkpoint)

{

global.game_start = 0;

}

else

{

global.game_start = global.checkpoint_time;

}

global.game_time = global.game_start;

global.level_time = global.game_time;

player1_keydata = 0;

player1_keydata_pressed = 0;

player1_keydata_list = ds_list_create();

player1_keydata_list_pressed = ds_list_create();

player1_keydata_list_delayed = ds_list_create();

player1_keydata_list_pressed_delayed = ds_list_create();

repeat(20)

{

ds_list_add(player1_keydata_list_delayed, 0);

ds_list_add(player1_keydata_list_pressed_delayed, 0);

}

player1_assigned_key_left = vk_left;

player1_assigned_key_right = vk_right;

player1_assigned_key_up = vk_up;

player1_assigned_key_down = vk_down;

player1_assigned_key_action = vk_space;

// ---------------------------------------------------------- //

// Create character instances

if (!instance_exists(objStartPlace)) show_error("Please place a start point object for the player.",1);

switch(global.character1)

{

case -1:

// Decide whether to start at the checkpoint

if (global.checkpoint == false)

global.player1 = instance_create(objStartPlace.x, objStartPlace.y-8, objPlayerAshura);

else

global.player1 = instance_create(global.checkpoint_x, global.checkpoint_y, objPlayerAshura);

break;

case 1:

// Decide whether to start at the checkpoint

if (global.checkpoint == false)

global.player1 = instance_create(objStartPlace.x, objStartPlace.y-8, objPlayerSonic);

else

global.player1 = instance_create(global.checkpoint_x, global.checkpoint_y, objPlayerSonic);

break;

case 2:

// Decide whether to start at the checkpoint

if (global.checkpoint == false)

global.player1 = instance_create(objStartPlace.x, objStartPlace.y-8, objPlayerTails);

else

global.player1 = instance_create(global.checkpoint_x, global.checkpoint_y, objPlayerTails);

break;

default:

global.player1 = noone;

show_error("You can't be no one!",1)

}

switch(global.character2)

{

case -1:

global.player2 = instance_create(global.player1.x-32, global.player1.y, objPlayerAshura);

break;

case 1:

global.player2 = instance_create(global.player1.x-32, global.player1.y, objPlayerSonic);

break;

case 2:

global.player2 = instance_create(global.player1.x-32, global.player1.y, objPlayerTails);

break;

default:

global.player2 = noone;

}

if (global.player2 != noone)

{

global.player2.depth = global.player1.depth + 1;

}

// Create camera object

if (global.checkpoint == false)

{

global.camera = instance_create(objStartPlace.x, objStartPlace.y-8, objCamera);

}

else

{

global.camera = instance_create(global.checkpoint_x, global.checkpoint_y, objCamera);

}

if (global.camera_bound_override == false)

{

global.camera_min_x = 0;

global.camera_max_x = room_width-1;

global.camera_min_y = 0;

global.camera_max_y = room_height-1;

}

init_view();

// Destroy starting position

with(objStartPlace) instance_destroy();

// Create pause object

instance_create(0,0,objPause);

From what I can see, none of this says how to change the character's number.

Thanks for any help.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...