multiline dialogs in comic like baloons (SOLVED)

Started by gambet, Mon 08/03/2010 11:58:02

Previous topic - Next topic

gambet

Hello

We are trying to make a comic like conversations (dialogs) in our game.
So we need to put dialog text into (comic book) baloon wich is over the characters head.
???
We have no idea how to make this

RickJ

Make your own GUIs.  Use a background image to make the bubble and labels to display the text.  have fun scripting.

Apocalyptic

#2
Create a new gui for the speech bubble. you could change the height of the bubble with a different sprite dependant on how much text there is to display. You could change the text of a label to get different text onto the screen.

The following won't work but will give you the right idea:
Code: ags

function cEgo_Interact() {
  Label.Text = "don't push me!";
  DynamicSprite* DynamicSprite.CreateFromExistingSprite(1); //The bubble with a height for one line of code
}


Alternatively you could use a new text widow gui
Edit: RickJ beat me to it but anyway
"Imagination is more important than knowledge." Albert Einstein

gambet

We made our baloon gui with a label, but how to put the dialogs into label

Crimson Wizard

Quote from: gambet on Mon 08/03/2010 17:51:17
We made our baloon gui with a label, but how to put the dialogs into label
For example, make an extension function:

Code: ags

function SayBalloon(this Character*, String text, int delay)
{
    gBalloonGui.Visible = true;
    gBalloonLabel.Text = text;
    WaitMouseKey(delay);
    gBalloonGui.Visible = false;
}


Then you can use this like:
Code: ags

cRoger.SayBalloon ("bla bla bla", 100);
cSomeGuy.SayBalloon ("meh", 50);

gambet

#5
Quote from: Crimson Wizard on Mon 08/03/2010 18:25:58
Quote from: gambet on Mon 08/03/2010 17:51:17
We made our baloon gui with a label, but how to put the dialogs into label
For example, make an extension function:

Code: ags

function SayBalloon(this Character*, String text, int delay)
{
    gBalloonGui.Visible = true;
    gBalloonLabel.Text = text;
    WaitMouseKey(delay);
    gBalloonGui.Visible = false;
}


Then you can use this like:
Code: ags

cRoger.SayBalloon ("bla bla bla", 100);
cSomeGuy.SayBalloon ("meh", 50);


So you are saying that we can't implement the existing dialog system (e.g. dDialog0)?

Crimson Wizard

Standart dialog speech method cannot be overriden, all you can do is create background GUI for text output (like seen in some Sierra games - KQ and Quest for Glory for instance). If you can make balloon-like gui with a text window and bind it to use as "speech gui", that will solve your problem much easier.

If that does not work for some reason(s), you will have to use method mentioned above. In such case you still can use Dialogs, but instead of writing plain sayings, you'll have to write in script lines (cRoger.SayBalloon etc) preceded by space (this is how scripts work in Dialogs).

gambet

#7
OK, we will try this and post results.




EDIT:

Hello again.

We did exactly what you said (created new gui-s which are baloons for various situations).

SMF spam blocked by CleanTalk