如何做出游戏里一个字一个字打出的效果

大概是这样的效果:

第一步,找一个输出的地方。

……/index.html

…….

<div id=”out” style=”……”><div>

…….

第二步,JS代码部分。

//找对象

out=document.querySelector(“#output”);

//创建一个输出的方法

function output(say){

out.innerHTML=””;     //清空对话框里的内容

says=say.split(””);    //say就是将要输出的字符串,处理成一个数组,方便一个个打出

count=say.length;

i=0;                        //用来计数

print=function(){

out.innerHTML+=says[i];    //每调用一次,就在当前的字符框内追加一个字符

i++;

if(i>=count) return;            //计数

setTimeout(print,100);   //延迟一段时间重新调用

}

print();

}

output(“隐约雷鸣,阴霾天空,但愿风雨来,能留你在此地”);      //调用函数输出值

最后的效果是这样的:

基本的功能完成了。但是,这个方法现在只能输出id为”out”的元素,如果换一个元素名称的话就得去修改函数里面的内容了。或许我们可以改进一下这个方法,让它可以对指定的元素输出值。

首先,创建两个输出框:

<div id=”out1” style=”……”><div>

<div id=”out2” style=”……”><div>

现在不仅要输出内容,还要输出到指定的地方,因此函数应该传递两个值:

function output(who,say){

out.innerHTML=””;     //将之前函数里面使用”out”的地方改为参数”who”

says=say.split(””);

count=say.length;

i=0;

print=function(){

who.innerHTML+=says[i];

i++;

if(i>=count) return;

setTimeout(print,100);

}

print();

}

output(out2,“隐约雷鸣,阴霾天空,但愿风雨来,能留你在此地”);

setTimeout(“output(out,’隐约雷鸣,阴霾天空,但愿风雨来,能留你在此地’)”,4000);

好了,这样就可以控制往哪个地方输出文字了。

为什么要给第二次打印设置一个延迟呢???

因为。。。当他们一起打印的时候是这样的:

调用代码:

output(out2,“隐约雷鸣,阴霾天空,但愿风雨来,能留你在此地”);

output(out,“隐约雷鸣,阴霾天空,但愿风雨来,能留你在此地”);

结果:

也就是说当我两个连续使用的时候,第二次使用的who和say会覆盖掉第一次使用的值,但此时第一次的setTimeout没有停止(打字的速度快了一倍,同时还出现了一个undefind,说明有两个setTimeout在进行)。为什么呢?可以把方法output想象成一个打字员,如果同时给他两个紧急工作去做,他肯定应付不过来。因此在这里我们需要多个打字员。

╯︿╰后面的我做不出来了。。。。QAQ

我的构想是定义一个typer(打字员),然后用new方法造出两个打字员。

function typer(){

//打字员的工作当然是打字啦~
         this.work=function(who,say){

who.innerHTML="";

says=say.split("");

count=say.length;

i=0;
            
             flag=0;

print=function(){

who.innerHTML+=says[i];

i++;

if(i>=count) return;
                     
                      setTimeout(print,100);

}
            
             window.onclick=function() {flag=1;};

print();

}

A=new typer();
     B=new typer();
     A.work(out,"隐约雷鸣,阴霾天空,但愿风雨来,能留你在此地");
     B.work(out2,"隐约雷鸣,阴霾天空,即使天无雨,我亦留此地。");

但是最后还是会出现和刚才一样的情况。。

算了,以后再更新吧。

原文地址:https://www.cnblogs.com/dfnonor/p/9749056.html

时间: 2024-10-17 17:58:36

如何做出游戏里一个字一个字打出的效果的相关文章

在游戏里,我是怎样做出分身效果?

<来自cnmm22:http://blog.csdn.net/cnmm22/article/details/44747783> 我是怎样完成了里世界,分身. 我之前已经完成了夜撩,大阳气炮,夜撩断魂,中华宝轮--后来证明,要实现是世界,分身是一件相当困难的事情,这几乎花了我两天的时间. 我前后想过很多办法,实现的结果不是很理想: 最开始,我想得很简单,就是记录一个时间差,比如只需要记住主角3秒钟前的坐标和攻击方位就行. 后来证明,这种想法太过幼稚. 不过是在实践中才得出这个结论,我这样做了,首

游戏里的三角形

你可能还没意识,其实游戏里是充满三角的.举个例子,想象你有一个飞船游戏,然会你要计算那些飞船之间的距离. 你有每艘飞船的X,Y坐标位置,但你怎么找到它们的距离呢? 很简单,你可以像这样从一艘飞船的中心画一条线到另一艘飞船,就像这样: 用勾股定理(原文对勾股定理的解释好长,我觉得没必要吧...) 总结来说,三角学就是你能够用来计算三角形的角度和边的长度的数学.人们常常会用到. 举个例子来说,在飞船游戏里你可能会要实现: 一艘飞船向另一艘飞船的方向发射激光 让一艘飞船向着另一艘飞船的方向移动 敌方飞

游戏里的编程游戏

我想写一本书,当然本身带有功利性,不必讳言,它并不是一本正儿八经的技术著作,它主要关于我人生里的游戏,游戏里的编程.最终未必能出书也并不特别重要,出不了无非是笔者水平不足或没有遇到自己的伯乐.同样重要的是,如果我能通过这个平台去分享我的游戏经历,我的人生,能得到诸位关注和共鸣,也是人生的一件快事!曾经我想写本自传,考虑到自己平淡无奇并且有些落魄的人生估计除了自己,谁有兴趣去回顾一下呢?每次同学会,我都以哥今时今日的身份和地位是不会去参加等理由推脱了.自古成王败寇,这是我们这个霸权乐土上至今未必的

动态文字提示一个字一个字蹦出来的 循环执行

<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script> <style> .main { width: 100%; heig

亿级粉丝的初音未来、洛天依,咋在游戏里,总扮路人甲?

洛天依一下子在近来变成了一个很火的存在.没别的,她上了央视,并且在大热的文化综艺节目<经典咏流传>上献唱了一曲. 或许很多人并不熟悉歌手洛天依. 毕竟,对于二次元(主要为游戏.动画.漫画.小说)以外的人来说,她就是一个无名的存在. 洛天依是谁? 简单来说就是通过音乐生成软件,配合上专门的音源库,在通过手绘的2D形象或者3D形象来演绎歌唱的虚拟偶像. 至于打破次元壁,则是通过3D全息投影之类的技术来实现. 一般来说,公认的全球虚拟偶像应该是2007年诞生于日本的初音未来. 或许有人会联想到前些年

如果你在一款游戏里被困七天,获得的所有东西都能带回现实,但是死亡也会真的死亡,你会选择哪款游戏?

首先七天按照我们的时间算 即玩一个游戏七天 会死,也会获得游戏里的东西 首先,RPG 然后,选三国群侠传 七天这个游戏,睡客栈很快恢复 那些物品都是古董,一大堆的古董 还有各种神奇物品 只要不是脸太黑,都不会死吧... 或者干脆一级就不走了,在出生点等回家,身上也有超多古董文物了 有仙术,古董,神物,爽,无敌了 原文地址:https://www.cnblogs.com/yangzihong/p/12585847.html

MVC4下如何实现模态弹出对话框效果--对话框里可以实现翻页效果(2)

其实上文只是对如何加代码的顺序方法的表述,这里面的代码每个函数是什么意思,要如何理解?需要我们深思. 我们先大框子去理解:我们上文在控制器里只是去HTTPGET了,HTTPget理解其实就是请求.那么我么要保存,要插入的时候要怎么做. 上文在控制器里增加了NEW的动作,当然我们要增加NEW的视图(New.cshtml),视图里面会有一个代码. using(Ajax.BeginForm("New","DataModule",new AjaxOptions{ Inser

转帖: 代理模式在游戏里的应用

原帖地址及作者的github: http://alloyteam.github.com/StreetFighter/ 代理模式的定义是把对一个对象的访问, 交给另一个代理对象来操作. 举一个例子, 我在追一个MM想给她送一束花,但是我因为我性格比较腼腆,所以我托付了MM的一个好朋友来送. 这个例子不是非常好, 至少我们没看出代理模式有什么大的用处,因为追MM更好的方式是送一台宝马. 再举个例子,假如我每天都得写工作日报( 其实没有这么惨 ). 我的日报最后会让总监审阅. 如果我们都直接把日报发给

Unity自发光材质制作——做游戏里的液晶显示屏,荧光对象可以用到

材质以及效果都是在Unity里实现的,纹理是在Photoshop里做的,所以也会说到Photoshop软件的操作方法,自发光或者是荧光效果还不错