Home  >  Article  >  Web Front-end  >  Javascript game development: "Three Kingdoms Cao Cao Biography" component development (3) imitating typewriter output text in situational dialogue_javascript skills

Javascript game development: "Three Kingdoms Cao Cao Biography" component development (3) imitating typewriter output text in situational dialogue_javascript skills

WBOY
WBOYOriginal
2016-05-16 17:42:561443browse

In the first two lectures, I told you how to make characters move, so today we will take a look at how to implement dialogues imitating the characters in "The Legend of Cao Cao" in "Three Kingdoms". I've written the specific link below.

1. Foreword

I believe everyone still remembers that in some news, there will be some terrible results, using a typewriter-like method to produce text. So the main purpose of today is to do this.

On September 5th, I came up with the idea of ​​doing this kind of procedure in the office and had some ideas. First of all, I wanted to use the method of adjusting margin. It is reasonable to say that it was done, but it was very unsatisfactory. After all, it was very troublesome and the technology was poor. So I'm going to use arrays and loops. I took the time to write it on September 13th, but because I have been very busy these days, it is basically impossible to take care of my blog during working days, so I didn’t have time to share it with you. It is the weekend now, so I will share my experience with you. Hope we can make progress together.

2. Code explanation

First let’s look at the code:

Copy the code The code is as follows:

var contentout = [];
var content = "ducle, ducle, ducle, ducle...";
contentout = content.substring(0, content.length);
var sub = 0;

var time = 0;

function input(){
for(var i = 0; i < contentout.length; i ){
setTimeout("document.getElementById(' ID_P_CONTENT').innerHTML = contentout[sub], sub = 1", time);
time = 100;
}
}

I used this code produced unexpected results. Haha, although the description is a bit exaggerated, it really made me get what I wanted. Without further ado, let’s take a look at the analysis.

These codes complete typing, and only use arrays, loops and a few general variables. It can be seen that the difficulty is not too great.
Copy code The code is as follows:

var contentout = [];
var content = "ducle, ducle, ducle, ducle...";
contentout = content.substring(0, content.length);
var sub = 0;

var time = 0;

Here I define global variables. The first is to define the array. After all, arrays and loops are the core of this program. Then I defined the character string and set the content to: "ducle, ducle, ducle, ducle..." The next step is to make the characters run into the array one by one. Therefore, I used the function substring(), which is designed to cut the string into characters one by one.

Substring syntax: stringObject.substring(start,stop)
You can also check out w3cschool: http://www.jb51.net/w3school/js/jsref_substring .htm
After we cut the string one by one, we have to assign the cut values ​​to the array. At this time, the array can correctly place each word as a member one by one. Enter the subscript. Anyone can guess what I want to do next - that is to use a loop to express the contents of the array.

As for the remaining variable sub, it is the subscript variable used to output the array elements later. Time is the time to type in a loop later. Detailed analysis will be discussed below.
Look at the code again:
Copy the code The code is as follows:

function input(){
for(var i = 0; i < contentout.length; i ){
setTimeout("document.getElementById('ID_P_CONTENT').innerHTML = contentout[sub], sub = 1", time);
time = 100;
}
}

This is the core part that specifically uses a loop to output the elements in the array one by one. Everyone knows that the most annoying thing about JavaScript loops is that the variables are looped first. This means that if you type the variable i here with alert every time you loop, it will have the same value at all times, and it will be equal to the maximum value. So the sub variable I defined above comes into play.

Because the sub variable is processed after waiting, no matter how many times it is looped, it must wait until a certain amount of time =1. Then it is more appropriate to use it as the subscript when outputting.

Everyone also understands the setTimeout function: if there are two setTimeout time parameters with the same time, then the two codes will be executed at the same time, even if your code is not written on the same line. So we add 100 to it every time it loops, then one more text will appear after 100 milliseconds.

Also note that you need to use = to change the content of the object here, otherwise only one word will be displayed at a time.

Code download address
3. Demonstration effect

The first is:


Then:

Finally:


Demo address:
4. Postscript

Hard work pays off. I think game design is not difficult. As long as you work hard and work hard, you can succeed. If there are any good technologies in the future, I will share them with you immediately. Recently, I have sorted out the technologies I have talked about before and made a small demo. I hope you all like it. The download and trial play of the demo will be announced soon, and it is still under testing. In addition, game development and game engines are crucial. I plan to develop my own engine myself, which will make it easier to design games.
Thank you for your support!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn