Typing Effect
BlitzMax Forums/BlitzMax Beginners Area/Typing Effect
| ||
Is there a way to implement a "typing" effect when displaying text? Maybe like the lyrics to "Still Alive" that are shown when you beat Portal? Thanks! |
| ||
You mean the visual end? I think for that, even a code archives entry exists. |
| ||
I converted the BB version of TypeRiter Text from the code archives to BMX and it doesn't work correctly. I would also like to give the x and y location of the text to be "typed." |
| ||
Converted means that you took the code and rewrote it? Import BB is pointless in that case if you wanted to really use the code. And giving an X, Y location should be a simple change, shouldn't it? you can post the code here if you want and I take a look |
| ||
I converted the BB version of TypeRiter Text from the code archives to BMX Sorry, I meant I imported it. I would try and make my own but I am unsure on how to do it. With Blitz3D, since there wasn't any console windows, I used: Function Rite(a$) num=Len(a$) For i=1 To num Write Mid$(a$,i,1) Delay 100 Next Print End Functionbut I don't have Blitz3D anymore. That code also doesn't support x,y. |
| ||
Well you can not write into the console if you want to have a position. In BM you use the Text Command which has X, Y if you want a position. This needs graphics window. |
| ||
Well you can not write into the console if you want to have a position. Yes, I know. I used that code with Blitz3D because a console window didn't come up when you used Print because Blitz3D doesn't support console windows. In BM you use the Text Command which has X, Y if you want a position. This needs graphics window. Yes, I know. But I need a way to achieve the "typing" effect. I have a feeling I'm not making myself clear? :/ |
| ||
All you've done to explain the effect you want is to put it in quotes, so no you aren't being very clear. |
| ||
Alright then. I want a typing effect that supports x,y position. I want it in BlitzMax. I want it to resemble this: YOUTUBE VIDEO |
| ||
And where is the problem? Thats just the text command but with an alternating char at the end, known as "_" :-) The alternation is handled by measuring time differences. If you want multiple lines, use an array of string to store them and apply the _ to the line with the highest index at the end when printing. |
| ||
And where is the problem? I don't know how to do it. ...with an alternating char at the end, known as "_" :-) Thanks for clearing that up. I do not want the underscore. I just want the text to be typed on to the screen given the x and y location. |
| ||
Is this what you wanted?Graphics(640,480) Function TeleType(text:String,x:Int,y:Int) For Local i:Int=1 To Len(text) DrawText(Left(text,i),x,y) Delay(60) Flip Next EndFunction TeleType("This is a test",0,0) Teletype("Please press Any Key to Exit.",0,12) Teletype("Oh, by the way, the cake is a lie :)",0,48) WaitKey() End |
| ||
Yes! Thanks Big&. |
| ||
Oh my god! I'm not going to bother playing all the way through Portal now. This guy has given away what happens at the end :-) |
| ||
@Big&: Thanks for this text processing function. Problem: Last character of each line blinks until all lines are done. Solution: End all lines with a "space". Problem: When routine is done, the last character in line one dissappears. Solution: End all lines with a "space". Question: Is the following syntax just an alternate method? Graphics(640,480) and Delay(60) I've never used parantheses around these numbers before. |
| ||
Answer: I don't think it matters if you do use or don't use parentheses. |