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

愤怒的小鸟两周年纪念版金蛋

发布网友 发布时间:2022-04-20 03:04

我来回答

4个回答

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

上一讲中介绍了如何让小鸟旋转跳上弹弓,以及利用外部力使小鸟弹飞出去,但是如果不做任何处理的话,小鸟就这么直冲冲的飞出屏幕了,本次我们就要让镜头时刻跟随小鸟来移动。下面是上一讲的连接,没有看过上一讲的朋友们请先了解一下。

html5游戏开发-愤怒的小鸟-开源讲座(一)-跳入弹出的小鸟

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

关于如何让镜头跟随某一物体,我一开始的想法就是循环所有物理世界里的物体,以小鸟作为参照物,然后来计算其他物体的相对坐标,从而实现镜头跟随。但是觉得每次循环所有物体有些麻烦,于是我专门请教了box2djs的作者technohippy(因为box2dweb和box2djs的原理相同),得出的结论和我的想法一样,需要循环所有物体,technohippy表示坐标计算在游戏中很平常,不用太过在意。于是我将坐标计算封装为synchronous函数,加到了1.4.1的扩展js中,下面说一下这个函数的用法。

在上一讲中,当鼠标弹起的时候,在弹起事件的侦听函数downOver里给小鸟加了一个力,使得小鸟弹飞了出去。下面给downOver函数加一行代码

backLayer.addEventListener(LEvent.ENTER_FRAME,onframe);

然后,循环播放函数如下

function onframe(){
	backLayer.x = LGlobal.width*0.5 - (bird.x + bird.getWidth()*0.5);	
	if(backLayer.x > 0){
		backLayer.x=0;
	}else if(backLayer.x < LGlobal.width - 1600){
		backLayer.x = LGlobal.width - 1600;
	}
	LGlobal.box2d.synchronous();
	if(bird && bird.x > backLayer.getWidth()){
		backLayer.removeChild(bird);
		bird = null;
	}
}

解释一下代码,首先通过小鸟的坐标,来计算backLayer层的相对坐标,下面的if是为了不让backLayer的坐标移出游戏的屏幕。

然后关键就是下面一行代码

LGlobal.box2d.synchronous();

它实现了物理世界里所有物体的坐标的重新计算
最后,当小鸟移出屏幕之后,将小鸟消除。

上面的1600是为了看出效果所以将游戏世界设置的长了一点。

下面是效果图和测试连接,你可以将小鸟射出,看看镜头是不是跟着小鸟一起移动起来了?

http://lufy.netne.net/lufylegend-js/lufylegend-1.4/box2d/sample03/index.html

为了让效果更明显一些,下面来加入一个猪和几个物体

首先新建一个Pig类

function Pig(){
	base(this,LSprite,[]);
	var self = this;
	var bitmap = new LBitmap(new LBitmapData(imglist["pig1"]));
	self.addChild(bitmap);
	self.addBodyCircle(bitmap.getWidth()*0.5,bitmap.getHeight()*0.5,bitmap.getWidth()*0.5,1,.5,.4,.5);
}

再新建一个setStage函数,来创建物体

function setStage(img,x,y,rotate,m){
	var stageLayer = new LSprite();
	backLayer.addChild(stageLayer);
	var bitmap = new LBitmap(new LBitmapData(imglist[img]));
	stageLayer.addChild(bitmap);
	stageLayer.x = x;
	stageLayer.y = y;
	stageLayer.addBodyPolygon(bitmap.getWidth(),bitmap.getHeight(),1,m,.4,.2);
	if(rotate != 0)stageLayer.setRotate(rotate*Math.PI/180);
}

有了上面的准备,下面给游戏加入几个物体就很简单了,在游戏开始时的gameInit函数里加入下面代码

	setStage("stage03",1070,430,0,10);
	setStage("stage01",995,300,90,1);
	setStage("stage01",1140,300,90,1);
	setStage("stage02",1070,200,0,1.5);
	setStage("stage04",1090,200,0,2);
	var pig = new Pig();
	pig.x = 1150;
	pig.y = 400;
	backLayer.addChild(pig);

表示加入5个物体和一个猪,效果如图

但是,只是这样的话,上面这张图其实是看不到的,因为我把这些物体都加到了游戏屏幕的右边,而游戏开始时坐标是(0,0),我们看到的画面是游戏屏幕左边的部分,所以我一开始首先将镜头移动到游戏屏幕的右边。

backLayer.x = LGlobal.width - 1600;
LGlobal.box2d.synchronous();

改动backLayer的坐标就不用说了,调用synchronous函数的作用依然是将物理世界的坐标重新计算。

然后,当画面出现后,稍作停顿后,就将镜头拉回到小鸟坐在位置,实现方法如下

LTweenLite.to(backLayer,1,
		{ 
			x:0,
			delay:2,
			onUpdate:function(){
				LGlobal.box2d.synchronous();
			},
			onComplete:run,
			ease:Sine.easeIn
		}
	);

大家可以看到,我还是用了LTweenLite缓动,参数delay:2表示,缓动延时2秒后执行,然后通过缓动将backLayer的x坐标变回0,在缓动的过程中调用synchronous,计算物理世界的坐标,这样就实现了镜头一开始显示的是屏幕右边,然后再快速移动到左边,废话不多说,现在看看效果吧。

http://lufy.netne.net/lufylegend-js/lufylegend-1.4/box2d/sample03/index02.html



大家可以看到,用lufylegend库件结合box2dweb制作物理游戏竟然如此简单,还不快尝试一下大笑

下面给出本次教程的源码,老规矩,lufylegend库件和box2dweb需要自己下载配置一下,库件1.4.1的扩展部分请到第一讲中下载。

http://fsanguo.comoj.com/download.php?i=AngryBirds2.rar


本次就写到这里,碰撞检测还是留到下一讲吧,在第三讲中会让小鸟展示自己的威力,将屏幕上的猪猪撞得脑袋开花,敬请期待。

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

第1颗金蛋获取位置:帮助菜单
  游戏中暂停按问号,转到帮助页面,当你看到会下蛋的白色小鸟时,点下鸟蛋,就可以找到一个金蛋。(前面几关没有,到2-14关才有)
  第2颗金蛋获取位置:第二章节5-19关 
  在关卡5-19,将地图缩小,看全景,地图空中右上角有一个金蛋,用鸟打掉即可,可用下蛋鸟打掉从左往右第一个塔的右上角。
  第3颗金蛋获取位置:第一章节2-2关 
  在关卡2-2,打破玻璃堆里的沙滩球爆出一个金蛋。 
  第4颗金蛋获取位置:第一章节  
  第一章节 半熟的鸟蛋(Poached Eggs)所有关卡全部获得三颗星,可以得到一颗金蛋。 
  第5颗金蛋获取位置:制作人员名单
  (查看方法:点下齿轮再点 i 样的标志)查看游戏的制作人员,浏览到最后有个金蛋,点一下就可以获取一个金蛋
  第6颗金蛋获取位置:第一章节1-8关 
  在1-8关按住关卡中的宝箱输入OPEN(大小写都行) 就有一颗金蛋(iPad,iPhone,itouch和Android中只需点两下宝箱即可) 
  第7颗金蛋获取位置:第二章节  
  第二章节 阴险的*(Mighty Hoax)所有关卡全部获得三颗星,可以得到一颗金蛋。
  第8颗金蛋获取位置:主菜单 
  在选择章节的界面双击太阳,就会出现金蛋。 
  第9颗金蛋获取位置:第二章节4-7关  
  在关卡4-7,将地图缩小,看全景,最右上角有一个金蛋,用鸟击中在地图右上角的蛋可以获取一个金蛋。
  第10颗金蛋获取位置:第三章节第八大关(选关界面,不是进入游戏)
  在第8大关的选关界面最右面隐藏着一个金蛋,一直向左拉动屏幕就可以找到一个金蛋。 
  第11颗金蛋获取位置:第三章节6-14关  
  在关卡6-14,打破右下角的*气球可以获取一个金蛋,可用回旋镖小鸟。
  第12颗金蛋获取位置:第三章节8-15关  
在关卡8-15,打破最左下角的两个木框拿到一个金蛋。
  第13颗金蛋获取位置:第三章节
  第三章节 上方的危险(Danger Above)所有关卡全部获得三颗星,可以得一个金蛋。
  第14颗金蛋获取位置:第四章节9-14关  
在关卡9-14,用鸟击中最右边悬崖上的安全帽,会得到金蛋。
  第15颗金蛋获取位置:第四章节10-3关  
在关卡10-3,打破橡皮鸭子,可以找到一个金蛋。
  第16颗金蛋获取位置:第四章节11-15关  
在关卡11-15,缩小画面,左下角有一个金蛋。
  第17颗金蛋获取位置:第四章节  
第四章节 肥猪的计划(The Big Setup)所有关卡全部获得三颗星,就可以获取金蛋。
  第18颗金蛋获取位置:第五章节12-12关
  在关卡12-12,操纵小鸟,击破地窖中的金杯即可。
  第19颗金蛋获取位置:第五章节13-10关
  在关卡13-10,缩小画面,击打金蛋吧。
  第20颗金蛋获取位置:第五章节14-4关   
在关卡14-4,缩小画面,右上角三角形右侧有一黑点,用黄鸟向上加速打获得金蛋。
  第21颗金蛋获取位置:第五章节
  第五章节 拙劣的逃跑(Ham 'Em High)所有关卡全部三颗星,即可获取金蛋
  第22颗金蛋获取位置:第五章节13-12关  
在关卡13-12,下蛋鸡_返向射出_投蛋于发射台左侧斜坡突出三角处_获得金蛋。
  第23颗金蛋获取位置:第六章节15-12关  
缩小画面,金蛋在右上角,用*加速小鸟即可得到。
  第24颗金蛋获取位置:第六章节16-9关  
缩小画面,金蛋在右上角的巨石上,用*加速小鸟即可获得金蛋。
  第25颗金蛋获取位置:第六章节17-12关
  缩小画面,金蛋在右上方的箱子里,用*小鸟即可。
  第26颗金蛋获取位置:第六章节  
第六章节 矿山的佳肴(Mine and Dine)所有关卡全部三颗星,即可获取金蛋
  第27颗金蛋获取位置:第七章节18-6关
  缩小画面,金蛋在右上方的木框里,用*小鸟即可。追问那个两周年纪念版还有个BIRDDAY PARTY,是两周年特有的大关,好像有一个金蛋但忘了在哪,还有SURF AND TURF有没有金蛋?,如果回答,感激不尽

追答第27颗金蛋是BIRDDAY PARTY的金蛋,SURF AND TURF只有FACEBOOK有金蛋,金蛋位置:http://tieba.baidu.com/f?kz=1569039733

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

(⊙o⊙)… 原来有这个-0- 我也去玩 顺带帮你研究

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

asdf
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
土狗一般多大开始懂人性 如何训练 小土狗怎么训练才听话 新手训狗的好方法 跑跑卡丁车故事模式哪一关还海盗船长(人物)奖励的,骨灰玩家说下._百 ... 跑跑卡丁车手游被遗忘的炮塔的宝藏在哪_跑跑卡丁车手游被遗忘的炮塔的... 跑跑卡丁车手游在被遗忘的炮塔附近搜寻宝藏怎么做?遗忘炮塔宝藏攻略... 跑跑卡丁车手游被遗忘炮塔宝藏在哪 炮塔附近搜寻宝箱位置详解-新手攻略... 跑跑卡丁车被遗忘的炮塔附近宝藏在哪里_跑跑卡丁车被遗忘的炮塔附近宝藏... 跑跑卡丁车手游在遗忘的炮塔附近搜寻宝藏在哪 遗忘炮塔宝藏位置详解 迅捷路由器使用问题 ...MATLAB7.0的,程序总是在打开后一会,就自动关闭了。希望能帮忙哦,感... 物业管理招投标的图书信息2 中南林业科技大学助教有钱吗 验证新版一百元人民币的验钞机出来了没有 360手机开不了机一直就显示360? 360手机助手一直显示正在连接 让手机飞一会 以前好好的 现在进不去了 为什么用手机360卫士一键清理正在运行软件,过一会又会显示正在运行那些软件,怎么才不让手机软件自动运行 验钞机有什么作用 手机总弹出 360 浏览器 正在尝试 开启或关闭 wifi 装修用的地板砖,现在流行什么样的 为什么有些应用软件没有开过却在360安全卫士中显示正在运行?手机是华为C8812,而且好像找不到后台 现在流行什么样的地板?地板该如何排版? 手机360显示正在运行程序 无限恐怖有声小说何其 第8集背景音乐 360手机助手总显示有任务正在运行 怎么回事 急 无限恐怖有声小说下载,挺喜欢听的一个版本,但是在网上只能搜到128集,希望有全部的mp3,非常感谢! 有声版无限恐怖 哪位大大有无限恐怖的有声版啊(就是有人念的那种) 什么软件能听无限恐怖 求 无限恐怖有声小说 要全集MP3格式 免费收听下载地址 我想给我老公织毛线拖鞋,但是我不会,请问哪位美女能叫我,用棒针织毛线拖鞋,最好有详细视频,因为我这 大部分居民楼都由物业公司来管理,那么,如何向物业提意见才是最有效的呢? 给物业管理处的建议书 作文 如何提高物业管理水平与服务质量 陕西省考和哪几个省联考 四川和青海参加联考吗 云南和四川省考统考吗 四川省考和哪个省联考 参加联考的省份还有省考吗 北京音乐类有省统考吗 河南省省考联考和哪个省题目重合 福建省考招考范围本省 省考联考省份延期会影响其他省份 请高人指点,中介公司提供的《北京市存量房屋买卖合同》--经济成交版,如果没有合同编号是否有法律效益? 我二姐于今年5月20号,在我三姐不知情的情况下,在房屋中介处签署了《北京市存量房屋买卖合同》,将房屋 北京二手房买卖合同(北京存量房购买合同经纪成交版本)编号是否为E******?网签合同编号是否为C*****? 房屋出售违约金30%是否符合房屋出售有关规定? 外地人在北京买房签《北京市存量房屋买卖合同(经纪成交版)》还是《北京市存量房屋买卖合同(自行成交版)》 北京市存量房屋买卖合同和网签的合同是同一个合同吗 《愤怒的小鸟》是一款时下非常流行的游戏,故事也相当有趣,如图甲,为了报复偷走鸟蛋的肥猪们,鸟儿以自 我是做灯饰和光源的,想注册个品牌,现在在想品牌名字,两个字三个字都可以,名字大气好听最好有水偏旁