所有分类
  • 所有分类
  • 后端开发
玩转物理世界!Lufylegend-1.4.0和Box2dweb带你探索新境界

玩转物理世界!Lufylegend-1.4.0和Box2dweb带你探索新境界

本篇开始,会介绍lufylegend-1.4.0的新功能,怎样结合box2dweb创建一个物理世界以及这个物理世界里的各种刚体

别忘了下载Lufylegend-1.4.0和Box2dweb~

想在网上搞点物理玩具玩耍?那就赶紧下小程序「Lufylegend-1.4.0」和「Box2dweb」!先说「Lufylegend-1.4.0」这个神奇的HTML5做游戏小程序,功能强大到爆表。再来说说「Box2dweb」,这东西可是让你的虚拟世界变身为现实的关键~用好这两大法宝,你就能轻松踏出探索物理世界的第一步了哟~

2.准备图片素材

要让电脑帮咱们造实物,得找做三张图:一个圆、一个长方块和一个三角形。这几个简单图形会在游戏中变成各种玩意儿,让你看清它们在现实世界中的特点!

3.利用LLoadManage类读取图片

开始搭建物理世界了吗?别急,让我们先用Lufylegend.js中的LLoadManage类读取之前已经准备好的图片。这玩意儿能帮咱们快速加载游戏所需内容,确保一打开就让玩家看到各种各样的元素!

init(10,"mylegend",800,400,main);
var backLayer,cLayer,wallLayer,bitmap,loadingLayer;
var imglist = {};
var imgData = new Array(
		{name:"bird1",path:"./images/bird1.png"},
		{name:"bird2",path:"./images/bird2.png"},
		{name:"stage01",path:"./images/stage01.png"}
		);
function main(){	
	LGlobal.setDebug(true);	
	backLayer = new LSprite();	
	addChild(backLayer);	
	
	
	loadingLayer = new LoadingSample3();
	backLayer.addChild(loadingLayer);	
	LLoadManage.load(
		imgData,
		function(progress){
			loadingLayer.setProgress(progress);
		},
		function(result){
			imglist = result;
			backLayer.removeChild(loadingLayer);
			loadingLayer = null;
			gameInit();
		}
	);
}

4.创建四堵控制墙

首先,我们要为硬固体建个家,用静态矩形限制它们的活动范围。这样在游戏中,我就可以安心地玩耍了,不用担心它们跑出来捣乱!而在现实世界里,一切还是那么正常,依然跑跳自如!

5.添加圆形刚体

搞定基础架构之后,就开始给我们的游戏加点料!让我们先来试下加个圆圆的小球,只需要用addBodyCircle这个方法,立马就能在你选中的地方搞出个毛茸茸的东西,趁热乎儿去看看它在现实中是啥样子。

wallLayer = new LSprite();
	wallLayer.x = 400;
	wallLayer.y = 0;
	backLayer.addChild(wallLayer);
	wallLayer.addBodyPolygon(800,10,0);
	wallLayer = new LSprite();
	wallLayer.x = 0;
	wallLayer.y = 200;
	backLayer.addChild(wallLayer);
	wallLayer.addBodyPolygon(10,400,0);
	wallLayer = new LSprite();
	wallLayer.x = 400;
	wallLayer.y = 400;
	backLayer.addChild(wallLayer);
	wallLayer.addBodyPolygon(800,10,0);
	wallLayer = new LSprite();
	wallLayer.x = 800;
	wallLayer.y = 200;
	backLayer.addChild(wallLayer);
	wallLayer.addBodyPolygon(10,400,0);

6.添加矩形刚体

赶紧试试!不只是圆形,我们还可以做方形。此时可以通过addBodyPolygon方法把方形加上去,再设置好像素等参数,你们就可以欣赏到方形和其他物体碰撞的效果~

7.添加三角形刚体

backLayer.addEventListener(LMouseEvent.MOUSE_UP,add);

试完圆的、方的之后,咱还能试试加点三角或是更复杂点儿的多边形!在LSprite里用addBodyVertices这招儿就搞定了。记得别忘了解决那些小破事儿,然后就可以随心所欲地给那些多边形身体添进物理世界!

8.调试与优化

	cLayer = new LSprite();
	cLayer.x = 50 + Math.random()*700;
	cLayer.y = 50;
	backLayer.addChild(cLayer);
	bitmap = new LBitmap(new LBitmapData(imglist["bird1"]));
	cLayer.addChild(bitmap);
	cLayer.addBodyCircle(bitmap.getWidth()*0.5,bitmap.getHeight()*0.5,bitmap.getWidth()*0.5,1,.5,.4,.5);

搞定刚体形状之后,咱们得把整个物理世界弄得更好,把调试模式关了,排查一下问题,再修复修正。至于各个刚体属性,稍微调节一下,让游戏运行更流畅、更真实

9.游戏测试与发布

玩转物理世界!Lufylegend-1.4.0和Box2dweb带你探索新境界

搞定搞定了真实世界的事儿,看过无误后,终于能让你们试试玩我们的游戏。把精心设计的世界分享出去,听听大家意见,这样才能做得更好。

	var rand = Math.random();
	if(rand < 0.5){
		cLayer = new LSprite();
		cLayer.x = 50 + Math.random()*700;
		cLayer.y = 50;
		backLayer.addChild(cLayer);
		bitmap = new LBitmap(new LBitmapData(imglist["bird1"]));
		cLayer.addChild(bitmap);
		cLayer.addBodyCircle(bitmap.getWidth()*0.5,bitmap.getHeight()*0.5,bitmap.getWidth()*0.5,1,.5,.4,.5);
	}else{
		cLayer = new LSprite();
		cLayer.x = 50 + Math.random()*700;
		cLayer.y = 50;
		backLayer.addChild(cLayer);
		bitmap = new LBitmap(new LBitmapData(imglist["stage01"]));
		cLayer.addChild(bitmap);
		cLayer.addBodyPolygon(bitmap.getWidth(),bitmap.getHeight(),1,5,.4,.2);
	}

原文链接:https://www.icz.com/technicalinformation/web/vue2/2024/04/14773.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?