《游戏脚本的设计与开发》-(RPG部分)3.5 游戏背包和任务系统


注意:本系列教程为长篇连载无底洞,半路杀进来的朋友,如果看不懂的话,请从第一章开始看起,文章目录请点击下面链接。

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


本节重点来讲一下背包系统,以及简单的先来认识一下任务系统。

先看一下背包系统的效果预览:


背包系统在游戏中是必不可少的,在游戏中,所有获得的物品都会储存在背包里面。背包的种类,我一般将它分成两大类,一种是类似于《吞食天地》的“个人背包”,在游戏中每个人物都有一个背包,每个人的背包都互不影响,并且每个人只能使用自己背包中的物品。另一种是“集体背包”,游戏中所有己方的人物都共用一个背包,大多数游戏都采用这种形势。下面我们就来实现一下“集体背包”。

我们先来做一个按钮,用来打开游戏菜单,按钮的添加很简单,界面如下。


根据我制作《三国记》的经验,游戏菜单的UI需要注意的是,按钮要尽量大一些,否则在手机上就很难被点到。先来创建游戏菜单的相关文件。

控制器MenuController,模型MenuModel和视图MenuView。

https://github.com/lufylegend/lsharp/blob/3.5/Controllers/MenuController.js

https://github.com/lufylegend/lsharp/blob/3.5/Models/MenuModel.js

https://github.com/lufylegend/lsharp/blob/3.5/Views/MenuView.js

关于菜单,我们需要有一个下面这样的背景框


并且这个背景框在其他许多地方也都会被用到,所以我们把它做成一个共同的外部类,如下。

https://github.com/lufylegend/lsharp/blob/3.5/Libraries/window/WindowBackground.js

这个类的实现原理如下,将一个只有左上角的图片,通过分割,旋转,拉伸等操作,组合成一个背景框


也就是说,我们只需要多准备几张类似于如下的图片,就可以实现不同的背景框了。


游戏菜单中的按钮,由图标和文字两部分组成,为了方便,我们也封装一个外部类。

https://github.com/lufylegend/lsharp/blob/3.5/Libraries/button/ButtonText.js

接下来准备好相应的菜单按钮图标,在菜单的视图中添加如下一系列代码。

......
var backpack = new ButtonText("backpack","背包",true);
	backpack.x = startX + xindex*step;
	backpack.y = startY + yindex*step;
	self.menuLayer.addChild(backpack);
	backpack.addEventListener(LMouseEvent.MOUSE_UP, function(event){
		LTweenLite.to(self.menuLayer,0.3,{x:LGlobal.width,onComplete:function(){
			self.controller.showBackpack();
		}});
	});
......
最后,给画面中的菜单按钮添加打开菜单的点击事件,打开菜单的代码如下。
MapController.prototype.openmenuClick = function(){
	var self = this;
	self.loadMvc("Menu",self.openmenuComplete);	
};
MapController.prototype.openmenuComplete = function(){
	var self = this;
	var menu = new MenuController();
	menu.baseView = self.view;
	self.view.parent.addChild(menu.view);
	//移动端的时候,为了提高效率,将地图隐藏
	if(LGlobal.canTouch){
		self.view.visible = false;
	}
};
下面是菜单效果。
阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 37
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 29
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lufy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值