问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

传声筒的制作方法以及原理

发布网友 发布时间:2022-04-23 15:03

我来回答

9个回答

懂视网 时间:2022-04-20 07:32

前天公司聚会,在一起玩游戏,游戏虽然及其简单,但是却很适合在活动中玩,因为公司参加聚会的人比较多,所以只有一部分人玩到了。晚上回家后我试着将其中一款游戏用html5还原了一下,第二天给大家玩儿,在公司的人气爆火,尤其女生,边玩边叫,“おもしろい!!”,“難しい!!”...。

一般大家看到女生喜欢,肯定急切想知道是什么游戏吧?游戏界面如下。


看到游戏界面后,估计有几个人已经摔倒在地了吧,就是一个及其简单的物理游戏,游戏开始后,按住鼠标左右划动屏幕,主人公就好像荡秋千一样,越荡越高,等适当的时候松开鼠标,将主人公荡出去,谁飞出去的最远,谁就获胜。

其实,越是这样简单短小的游戏,越是适合聚会这样的活动中玩,尤其加上排名系统后,大家也会想要排名靠前一些,而争着去玩儿。

游戏测试连接:

http://lufylegend.com/demo/box2dJump

注意:本游戏纯粹是抽了一个小时左右时间随便给公司同事娱乐一下而做的,画面和效率等都没经过优化,请用PC打开,移动端运行起来估计会卡死

制作开始

一,准备

游戏中用到了两个引擎

一个是HTML5开源引擎lufylegend.js,下面是我在博客的lufylegend-1.7.0发布帖,里面有简单的介绍

http://blog.csdn.net/lufy_legend/article/details/8719768

另一个是Box2dWeb,下载地址如下

http://code.google.com/p/box2dweb/downloads/list

二,游戏开发

从游戏界面中可以看到,游戏开发的重点就是一条绳子,在HTML5中如何来实现绳子呢?

在box2d中是没有绳子的,但是熟悉box2d的朋友们,应该对旋转关节setRevoluteJoint不陌生,实现绳子的话,我们可以把一连串的刚体用旋转关节连接在一起,这样这些刚体摆动起来的话,就跟绳子差不多了。

看下面的代码,我把1个静态的刚体和20个动态的刚体用旋转关节连接到了一起。

代码清单1

var bx = 250,by=40;
 var box01,box02;
	box01 = new LSprite();
	box01.x = bx;
	box01.y = 30;
	backLayer.addChild(box01);
	box01.addBodyCircle(10,0,0,0,1,10,0.2);
	linelist = [box01];
 for(var i=0;i<20;i++){
	 box02 = new LSprite();
	 box02.x = bx;
	 box02.y = by+i*10;
	 backLayer.addChild(box02);
	 box02.addBodyCircle(10,0,0,1,1,10,0.2);
	 LGlobal.box2d.setRevoluteJoint(box02.box2dBody, box01.box2dBody );
	 linelist.push(box02);
 	box01 = box02;
 }

最后,在加上一个稍微大一点的刚体,来作为游戏中的主人公,并且也用旋转关节跟前面的刚体连接起来。

代码清单2

hero = new LSprite();
	var bit = new LBitmap(new LBitmapData(imglist["chara03"]));
	bit.x = -25;
	bit.y = -20;
	hero.addChild(bit);
	hero.bitmap = bit;
	hero.x = bx;
	hero.y = by+i*10;
	backLayer.addChild(hero);
	hero.addBodyPolygon(30,50,1,2,10,.2);
	joinline = LGlobal.box2d.setRevoluteJoint(hero.box2dBody, box01.box2dBody );

这样就差不多了,剩下的就是如何来控制主人公的摇摆和飞出去,这时候需要三个事件。

代码清单3

backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
	backLayer.addEventListener(LMouseEvent.MOUSE_DOWN,ondown);
	backLayer.addEventListener(LMouseEvent.MOUSE_UP,onup);

上面代码中onframe函数是时间轴,ondown和onup分别是鼠标按下和弹起时调用的事件,鼠标按下和弹起比较简单,代码如下。

代码清单4

function ondown(event){	
	if(out)return;
	monseIsDown = true;	
	mouseObject.x = event.offsetX;
}
function onup(event){	
	if(out)return;
	monseIsDown = false;
	LGlobal.box2d.world.DestroyJoint(joinline);
	hero.bitmap.bitmapData = new LBitmapData(imglist["chara04"])
	hero.bitmap.x = 0;
	hero.bitmap.y = 0;
	out = true;
}

onframe函数里基本上包含了游戏的所有逻辑部分。

首先,前面制作的“绳子”是没有皮肤的,也就是说除非debug模式,否则是不显示的,那么就要在绳子摆动的时候,顺着这些刚体绘制出一条曲线,就变成了绳子了,代码如下。

代码清单5

backLayer.graphics.clear();
	backLayer.graphics.drawRect(1,"#000000",[0,0,LGlobal.width,LGlobal.height]);
	for(var i=0;i<linelist.length - 1;i++){
		backLayer.graphics.drawLine(2,"#000000",[linelist[i].x,linelist[i].y,linelist[i+1].x,linelist[i+1].y]);
	}

接着,是让绳子摆动,判断鼠标是否左右晃动,分别向左或者向右给刚体加上一个力,来让刚体动起来,代码如下

代码清单6

if(monseIsDown && !out){	
		if(checkIndex++ > 10){
			checkIndex = 0;
			if(LGlobal.offsetX - mouseObject.x > 50){
				var force = 50;
				var vec = new LGlobal.box2d.b2Vec2(force,0);
				hero.box2dBody.ApplyForce(vec, hero.box2dBody.GetWorldCenter());
			}else if(LGlobal.offsetX - mouseObject.x < -50){
				var force = 50;
				var vec = new LGlobal.box2d.b2Vec2(-force,0);
				hero.box2dBody.ApplyForce(vec, hero.box2dBody.GetWorldCenter());
			}
			mouseObject.x = LGlobal.offsetX;
		}	
	}	

最后,在鼠标弹起的时候,由于主人公被弹飞了出去,所以让游戏窗口跟着他一起动起来就可以了。


代码清单7

if(!out)return;
	backLayer.x = LGlobal.width*0.5 - hero.x;
	if(backLayer.x > 0){
		backLayer.x=0;
	}
	LGlobal.box2d.synchronous();
	if(!hero.box2dBody.IsAwake() && out){
		backLayer.removeEventListener(LEvent.ENTER_FRAME,onframe);
		point = Math.floor((hero.x - 250)*0.1);

		var rank = new GameRanking();
		backLayer.addChild(rank);
	}

整个游戏就这样制作完成了,先在debug模式下预览一下,可以看到我们制作的“绳子”其实就是一串刚体


而非debug模式下,就成了下面的界面了。

三,源码

最后给出本次游戏的源代码

http://lufylegend.com/lufylegend_download/box2dJump.rar

注:只含游戏源码,lufylegend.js引擎和box2dweb引擎请看准备部分自己下载

热心网友 时间:2022-04-20 04:40

工具/原料

尽量使用更长的棉线。 棉线越长,声音才能传得越远。棉线拉得越直,声音才能听得越清晰。当声音受到阻碍时,就不能继续传播。

物理原理:

传声筒是利用固体声波振动传递原理,当声源在传声筒的一端发生震荡时,纸杯的物理结构能有效地将声音聚集并且减少声音的扩散,经过中间的绳子最后传进另一端的纸杯中。

拓展资料:

传声筒亦称"传话筒",是一种古老的具有实用性和娱乐性的工具,由中国人最先发明,是电话机最初的原型。《清稗类钞》中详细记载了传声筒制造方法。而其制造原理可能是受到了“听瓮”的影响。

听瓮:《墨子·备穴》中对听瓮的制造和使用方法有详细的说明。也就是最迟发明于中国战国时期,距今2500年。在后来的使用过程中,听瓮得到了不断的改进,成为现代*出现前最有效的窃听工具。沈括《梦溪笔谈·器用》中记载了这种*

传声筒亦称"传话筒",是一种古老的具有实用性和娱乐性的工具,由中国人最先发明,是电话机最初的原型。《清稗类钞》中详细记载了传声筒制造方法。而其制造原理可能是受到了“听瓮”的影响。

听瓮:《墨子·备穴》中对听瓮的制造和使用方法有详细的说明。也就是最迟发明于中国战国时期,距今2500年。在后来的使用过程中,听瓮得到了不断的改进,成为现代*出现前最有效的窃听工具。沈括《梦溪笔谈·器用》中记载了这种*。

参考链接:百度百科-传声筒

热心网友 时间:2022-04-20 05:58

制作方法:

1、取两个完好的纸杯,再取一根适当长度的棉线,一把小刀。

2、将木棍切成适当长度,用于放入杯中,所以木棍长度要比杯底宽度小一点就可以了。然后,将纸杯底部戳开一个小孔,不要太大。将棉线一段塞入,并从杯口取出,再将棉线拴在木棍上。同样,将棉线的另一端也同样操作,一个简单的传声筒就做好了。

传声筒是利用固体声波振动传递原理,当声源在传声筒的一端发生震荡时,纸杯的物理结构能有效地将声音聚集并且减少声音的扩散,经过中间的绳子最后传进另一端的纸杯中。

拓展资料

传声筒亦称"传话筒",是一种古老的具有实用性和娱乐性的工具,由中国人最先发明,是电话机最初的原型。《清稗类钞》中详细记载了传声筒制造方法。而其制造原理可能是受到了“听瓮”的影响。

听瓮:《墨子·备穴》中对听瓮的制造和使用方法有详细的说明。也就是最迟发明于中国战国时期,距今2500年。在后来的使用过程中,听瓮得到了不断的改进,成为现代*出现前最有效的窃听工具。沈括《梦溪笔谈·器用》中记载了这种*

参考资料来源:百度百科-传声筒

热心网友 时间:2022-04-20 07:33

制作方法:

准备小刀、纸杯、一团棉线、小木棍或火柴棍;准备好两个完好的纸杯,再准备好一根适当长度的棉线,一把小刀。

将木棍切成适当长度,放入杯中,木棍长度要比杯底宽度小一点就可以了。然后,将纸杯底部戳开一个小孔,不要太大。

将棉线一段塞入,并从杯口取出,再将棉线拴在木棍上。同样,将棉线的另一端也同样操作,一个简单的传声筒就做好了。

传声筒原理:传声筒利用物体的传送波德原理,把声波通过绳子之类的东西传输出去,如果其中有物体阻断,声波会沿着物体改变方向,无法正常到达目的地。

拓展资料:

地方习俗

用“传声筒”对话(亦称“打土电话”),是云南省保山市潞江坝傣家少男少女特有的一种“爱情游戏”。

春节期间,天真烂漫的小卜冒、小卜哨们总爱把自己收拾得花骨朵似的,来到一些约定俗成的“老地方”聚合。

参考资料:传声筒 百度百科

热心网友 时间:2022-04-20 09:24

制作方法:

1、取两个一次性纸杯,再取一根适当长度的细线,一把小刀,一根小木棍。

2、将木棍切成适当长度,用于放入杯中,所以木棍长度要比杯底宽度小一点就可以了。然后,将纸杯底部戳开一个小孔,不要太大。将细线一段穿入,并从杯口取出,再将细线拴在木棍上。同样,将细线的另一端也重复上述步骤,将两个杯子用细线连起来,一个简单的传声筒就做好了。

物理原理:

传声筒是利用固体声波振动传递原理,当声源在传声筒的一端发生震荡时,纸杯的物理结构能有效地将声音聚集并且减少声音的扩散,经过中间的绳子最后传进另一端的纸杯中。

拓展资料:

使用方法:

1、两个人各拿一个话筒,拉直棉线,就可以通话了。

2、一人在话筒开口说,另一人在话筒开口边用耳听。声音就可以通过棉线振动远距离传过来。(距离在一百米范围内皆可有效。)

参考资料:

百度百科:传话筒

热心网友 时间:2022-04-20 11:32

准备2个纸杯,1根长棉线,火柴棒若干。将2个杯子底用针打个小孔,保证棉线能穿过去,不能太大,面线的两端分别从杯底穿到杯子内部,然后打结,也可以将在杯子内线打在一段火柴棒上以防止线脱落。

棉线越长,声音才能传得越远。棉线拉得越直,声音才能听得越清晰。当声音受到阻碍时,就不能继续传播。比如用一块纸团把纸杯完全堵住时,就不能听见别人说话的声音了。


拓展资料:传声筒是根据声音能传播的原理制成的。当声源在传声筒的一端发生震荡时,纸杯的物理结构能有效地将声音聚集并且减少声音的扩散,经过中间的绳子最后传进另一端的纸杯中,所以打电话的两个人才能听见对方的声音。

热心网友 时间:2022-04-20 13:57

  材料:准备两个一次性塑料杯或者纸杯,还有一条长的棉线。
做法:1.首先在两个杯子的底下各打上一个小小的孔,然后把线穿进两个杯子内,将延伸进杯子内的线头打上结(最好在同一个位置多打上几个结),止要确保它不会从孔中掉落出来就可以了。传声筒的线尽量拉直些才能听到。
  传声筒利用物体的传送波德原理,把声波通过绳子之类的东西传输出去,如果其中有物体阻断,声波会沿着物体改变方向,无法正常到达目的地。

热心网友 时间:2022-04-20 16:38

找两个纸杯,一根适当长的线,每个纸杯的底部钻一个小孔,然后将线的两端分别穿过两个小孔打个结,就成了。两个人,每人手持一个纸杯,一个将纸杯放在耳部,一个对着纸杯说话,传声功能算是实现了。
原理:声音在固体的传播速度要比在空气中传播速度快。

热心网友 时间:2022-04-20 20:10

h jws jus j s j s死死生生,我们的生活方式是什么时候回来呢。我是什么时候回家呀?我们的人生轨迹就是这样吧……你就不要把门开完后才回来、的歌曲很好用又来了没有时间了?我们的人生就是说自己喜欢💕?我在外面玩手机📱?我在这里的生活状态就是我现在的生活状态就是我们生活
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...多少公斤的东西。托运多少?托运能拿剪刀,洗发水这些吗? 打鼾是由于空气通过口咽部使哪个部分振动引起的 ...身高153厘米,体重57.5公斤,要减多少斤才正常,还有怎样下定决心减肥... 男人经常睡一个女人就是爱她吗? 一个男人和一个女人没认识几天就提出性要求,这男人爱女人吗?还是只是性... 小米随身wifi连上电脑后能拿着到处走不? ...买门票共用去142.5元,已知1张成人票与2张�� ...已知|张成人票与2张儿童票相等。1张成人票多少元 ...买门票共用去142.5元,已知1张成人票与2张儿童票的票价相等。1... 工业燃气烤箱价格多少钱一台 纸杯传话筒怎么做? 纸杯传话筒 就是两个纸杯 中间一根线 不知到线是啥线,完了一头说话,另... 清偿权优先顺序? 企业破产清算的清偿顺序是什么 企业破产清算的清偿顺序 当企业破产清优先顺序为 想同时保存网页上的多张图片,怎样做? 怎样才能在保存网页时连网页上的图片也一起保存了? 很久没喝酒了,昨晚做梦,梦见自己喝了好多酒 梦到自己喝了很多酒!而且没醉!我是女的不喝酒的 请问我没有喝酒,突然梦见自己醉了,是好事吗? 梦见准备和战友找饭店要喝酒还没喝呢,就醒了? 佳能3180打印机如何打印手机QQ上的文件 佳能打印机如何连接手机 佳能打印机怎么法连接手机打印?操作步骤 佳能6018l打印机能否通过数据线直接打印手机文件? 佳能打印如何打印微信文件 佳能打印机手机文件怎么打印 佳能打印机g2800如何连接手机打印文件? 科大讯飞手写如何转文本 怎样做传声筒? 纸杯传话筒怎么听不到 传声筒能用一次性塑料杯子吗 想自制小手工,自制手工听筒应该用什么线连接最好? 电脑管家怎样恢复出厂设置? 怎么制作 传声筒 华为电脑怎么恢复出厂设置会影响已经激活的word 用纸杯做土电话,用金属丝和棉线,那种声音大?为什么? 纸杯做电话中间的线可以用什么线 纸杯传音需要绷直中间的线吗? 电脑太卡,如何恢复出厂设置 纸杯传话筒的原理 用纸杯做土电话,用金属丝和棉线连接纸杯,为什么用金属丝听到的声音大? QQ电脑管家怎么恢复默认设置 用纸杯做电话隔很远听得见吗 做传话筒要用什么绳子? 电脑的一些设置改了,怎么恢复默认设置 为什么用纸杯和毛线就能做土电话 电脑怎么恢复原厂设置 用纸杯连一根线到另一个纸杯是怎样传声的?