I want to make a dialouge function that prints the message one character at a time. I know how to make a function that displays an array of chars one a t a time, that's just a simple for loop, but I can't figure out how to assign a string to that array. Is it even possible to assign a literal string to an array of chars? If not, is there a way I can display a literal string one character at a time, with a slight delay between each character? I really need some help on this one.
Anyone?
]]>It's the same thing, to display a string one character at a time as displaying one character at a time from char*.
std::string message = "Hello world!"; int x = 0, y = 0; for (int i = 0; i < message.size(); i++) { textprintf_ex(buffer,font,x,y,makecol(255,255,255),-1,"%c",message<i>); x += WIDTH_OF_FONT_CHARACTER; // whatever your font may be // whatever else you need to do, ie- blit buffer to screen rest(SOME_AMOUNT_OF_TIME); }
As for assigning a string to a char*, you'll want a function like:
usprintf
Okay, how do I use usprintf to display a string one character at a time, with a delay between them, or to assign a literat string to a char array?
]]>PossumDude0, you seem to confuse the 2 answers to the 2 questions...
In the above code, message<i>is the i-th character of the std::string message.
Unrelatedly, usprintf() is one way to convert (make of copy) a std::string into a C-style, null-terminated array of characters. See some libc documentation of sprintf() for reference about the usage.
]]>Ok, I just didn't look at the code closely enough. Sorry.
Thanks, by the way, for helping me.
]]>