小游戏小技巧教学8-5(大富翁结合RPG-角色遇到的突发状况)

大富翁结合RPG是从什么时候开始我没研究过,但是小时候就用纸当卡片画游戏卡,并且在纸上画不同的地图,并用骰子当移动方式,开始一场怪物道馆挑战与搜集(对战是用剪刀石头布来判断攻击成功与否)!是当时我跟我朋友们的回忆~而那时的我还没接触电脑游戏呢。

当我看到我以前自制的桌游搬到了手机或电脑线上游戏中,感觉很微妙呢~(虽然这灵感并不是那么稀奇)

用大富翁结合RPG的游戏已经不新鲜了,但是移动的方式、地图每格的突发状况却可以一而再再而三的引起玩家每一格都有不同的乐趣。

现在,就用一个传统的大富翁结合RPG游戏来学习并延伸设计吧!

继续上网址做参考:http://shuinvy.pancakeapps.com/MonoRPG/

接续上一篇,

我们设计一个可以用来显示角色资讯的部分:



金钱: 0
好感度: 0
HP: 500

接着要来探讨Options的部分:

function Options(place,p,l){
	switch(place[p][l]){
		case 1:
			//金币
			//将来可以去商店买道具,目前暂时是怪物的买路财Orz
			var incre=(monmin + parseInt(Math.random()*(parseInt(monmax-monmin)+1)));//一次增加10~30
			coin+=incre;
			$("#"+lbCoin).html(coin); //将结果显示在画面
			//console.log(place[p][l]+",money+"+incre);
			//显示纪录
			showLog(1,incre);
			break;
		case 2:
			//好感度
			//好感度到一定程度就会进化,但目前还没有这个功能
			var nice=(lovemin + parseInt(Math.random()*(parseInt(lovemax-lovemin)+1)));//一次增加1~6
			fav+=nice
			$("#"+lbLove).html(fav); //将结果显示在画面
			//console.log(place[p][l]+",love+"+nice);
			//显示纪录
			showLog(2,nice);
			break;
		case 3:
			//遇到怪物
			//假设是偷金币的怪物。若没金币则扣命(对,这角色很弱还打不赢怪物XDDD)
			var theaf=(theafmin + parseInt(Math.random()*(parseInt(theafmax-theafmin)+1)));//一次减少100~300
			if(coin>theaf){				  //要钱够才能扣钱
				coin-=theaf;
				$("#"+lbCoin).html(coin); //将结果显示在画面
				//console.log(place[p][l]+",money-"+theaf);
				//显示纪录
				showLog(3,theaf);
			}else{						  //没钱只好被怪打了Orz
				var attacked=(attackmin + parseInt(Math.random()*(parseInt(attackmax-attackmin)+1)));//一次减少200~500hp
				if(health>attacked){	  //命够多才能扣
					health-=attacked;
					$("#"+lbHP).html(health);
					//console.log(place[p][l]+",health-"+attacked);
					//显示纪录
					showLog(4,attacked);
				}else{					  //命太低游戏结束
					health=0;
					$("#"+lbHP).html(health);
					GameOver();
				}
			}
			break;
		case 4:
			//遇到陷阱
			var attacked=(trapmin + parseInt(Math.random()*(parseInt(trapmax-trapmin)+1)));//一次减少200~400hp
			if(health>attacked){	  //命够多才能扣
				health-=attacked;
				$("#"+lbHP).html(health);
				//console.log(place[p][l]+",health-"+attacked);
				//显示纪录
				showLog(5,attacked);
			}else{					  //命太低游戏结束
				health=0;
				$("#"+lbHP).html(health);
				GameOver();
			}
			break;
	}
	//dice=0代表角色走完格子了,使用者可以继续掷骰子了
	rollDice();
}

一样,直接看会吓死人,

所以我用最复杂的遇到怪物部分做说明。

用switch...case...判断遇到的是什么情况,

怪物的部分是case 3时:

//遇到怪物
//假设是偷金币的怪物。若没金币则扣命(对,这角色很弱还打不赢怪物XDDD)
var theaf=(theafmin + parseInt(Math.random()*(parseInt(theafmax-theafmin)+1)));//一次减少100~300
if(coin>theaf){				  //要钱够才能扣钱
	coin-=theaf;
	$("#"+lbCoin).html(coin); //将结果显示在画面
	//console.log(place[p][l]+",money-"+theaf);
	//显示纪录
	showLog(3,theaf);
}else{						  //没钱只好被怪打了Orz
	var attacked=(attackmin + parseInt(Math.random()*(parseInt(attackmax-attackmin)+1)));//一次减少200~500hp
	if(health>attacked){	  //命够多才能扣
		health-=attacked;
		$("#"+lbHP).html(health);
		//console.log(place[p][l]+",health-"+attacked);
		//显示纪录
		showLog(4,attacked);
	}else{					  //命太低游戏结束
		health=0;
		$("#"+lbHP).html(health);
		GameOver();
	}
}

其实步骤很简单,

判断需要扣掉的部分是什么,并且将结果显示在金钱和HP的文字上。

假如钱不够扣,怪物就伤害你,可是不会拿走你的钱(如果想要怪物拿走你剩余的钱和伤害你也可以喔)。

而你的HP变成0时(怪物攻击你如果超过你的HP,则你的HP直接为0,而不是负的),

游戏就结束了。

在switch...case下方还有一个让使用者能继续掷骰子的部分,也就是rollDice。

rollDice的部分:

function rollDice(){
	if(isGame) timerAnime=setTimeout(function(){ clearTimeout(timerAnime); dice=1; if(isGame) timerDice=setInterval(diceRound,speed); else clearInterval(timerDice); $("#btnDice").prop("disabled",false).css("cursor","default"); }, speed);	//让使用者可以掷骰子
}

虽然看起来很长,

其实就是先用isGame判断游戏是否无法继续进行,

否则将dice=1回到掷骰子动画的设定,并且继续跑timerDice=setInterval(diceRound,speed);的动画。

若不能继续掷骰子了,则将骰子动画隐藏(其实只是让数字变成空字符串),以及不让使用者继续按按钮。

到这边,完整的游戏就算完成了,

然而我追加了游戏纪录部分,一方面是给你做调试(看骰子结果跟你设定的一不一样),一方面是让使用者知道自己处于什么阶段,

否则突然命扣了,还不知道扣多少,玩起来会很疑惑。

下一篇则是比较简单的游戏纪录部分了。

原文:大专栏  小游戏小技巧教学8-5(大富翁结合RPG-角色遇到的突发状况)

原文地址:https://www.cnblogs.com/chinatrump/p/11491007.html

时间: 2024-10-11 17:05:16

小游戏小技巧教学8-5(大富翁结合RPG-角色遇到的突发状况)的相关文章

微信小游戏入门与实战 引爆朋友圈

第1章 准备工作(需要ES5,ES6基础)学员作品演示:https://pan.baidu.com/s/1gEMWzujg72soj0cEUOtJ2A 密码:uy2n,本章首先介绍课程目标,学习收获等,然后通过与APP.小程序的对比,让大家知道什么是微信小游戏以及微信小游戏前景如何,有哪些特点,然后带大家搭建微信小游戏的开发环境和调试环境,之后会对微信小游戏开发前注意事项与准备工作进行讲解,目...1-1 课程导学1-2 小游戏官方开发工具快速体验1-3 小游戏开发测试环境搭建和工具链使用1-4

Canvas小游戏里,删除过期或者死亡元素技巧

在许多canvas游戏,canvas效果中,经常会有过期的元素需要删除 例如现在需要制作一个笨鸟先飞(flappy bird)小游戏,游戏中障碍物(且称为柱子),此时会有一个全局变量保存所有柱子的实例,在逐帧播放的时候循环绘制. 当柱子移动到canvas的左边且消失的时候,这个柱子实例就可以删除了. var cnt = 0 for( var i = 0 ; i < zz.length ; i ++ ){ (zz[i].live) ? zz[cnt++] = zz[i] : 0; } while(

Python编写微信打飞机小游戏(一)

最近开始学习Python语言,发现Python有一个神奇的Pygame模块,在编写小游戏时显得非常方便,于是参照教学视频编写了一个微信打飞机的小游戏,网上有很多相关的博客,但都不是很详细,大都是直接贴代码,于是决定沉下心来把编写程序的过程记录下来,与大家分享. 首先声明一点,这篇博客完全参照了小甲鱼的<零基础入门学习Python>教学视频,为了尊重原创,特将原作者的视频地址公布如下:<零基础入门学习Python> Python编译器和Pygame模块的安装网上的教程很多,这里不再赘

HTML5版的String Avoider小游戏

HTML5版的String Avoider小游戏 http://www.newgrounds.com/portal/view/300760 蛮简单也蛮考验耐心,从游戏起始点移动鼠标到终点位置,鼠标移动过程绘制出移动轨迹的String平滑曲线,整个过程不能碰撞到边界,从技术角度来说其核心就是根据鼠标移动位置生成String线的算法,该游戏是ActionScript写的Flash版,这里将其改造成HTML5版的JavaScript实现,并增加可自定义关卡功能的一种设计思路. String连线我是缓存

IOS点灯小游戏

学习iOSUI阶段第三天掌握了一些视图相关的技巧,于是想到做个小app来巩固一下. 晚上没事就做了这个点灯的小游戏. 关于点灯游戏的相关信息参考百度百科. 一下是我的实现步骤: 第一步:素材准备 准备好两张图片作为游戏中灯的两种状态,一张名为red.jpg(代表灯灭),另一张为:blue.jpg(代表灯亮). 第二步:制作游戏布局 游戏布局是一个N*N的正方形,我使用了UIButton 作为灯来通过循环进行了一个N*N的游戏布局. 刚开始想到了用两层for循环来进行布局,但是仔细思考后发现用一层

JS打造的点灯小游戏

类似于模方游戏的网页小游戏代码,游戏玩法:在方格上点击,你可以将下面的方格全部填成蓝色吗?快开动你智慧脑筋,看看有什么技巧与规律. <HTML> <HEAD> <TITLE>接触角测定仪</TITLE> <META http-equiv=Content-Type content="text/html; charset=gb2312"> <style type="text/css"> <!-

java小游戏代码

一. 需求分析 曾几何时,游戏是海洛因的代名词,让人与玩物丧志联系在一起,一度遭到社会反感和家长抵制.但是,随着互联网的发展,和游戏潜在好处被发现,游戏的价值开始逐渐被社会认可,人们开始接受.认识和了解游戏带来的诸多好处. 现在学生的课业负担重,娱乐时间少,人际交往少,烦恼和压力也因此相应增加.其实玩游戏不仅帮助学生调节情绪,还可以锻炼与提高他们的反应能力和手脑的快速配合能力,同时帮助他们了解电脑和网络知识等,可谓是一举多得.据调查显示,经常玩游戏的学生思维活跃.善于表达.情绪乐观,解决问题时会

C语言实现简易2048小游戏

一直很喜欢玩这个小游戏,简单的游戏中包含运气与思考与策略,喜欢这种简约又不失内涵的游戏风格.于是萌生了用C语言实现一下的想法. 具体代码是模仿这个:https://www.cnblogs.com/judgeyoung/p/3760515.html 博主分析的都很到位,很多算法技巧都值得借鉴,C语言实现2048的主要思想已经在那个博客中详细的分析了,但是我觉得在博主的代码中还是有很多很好的思想是值得我借鉴学习的. 比如这个生成随机数,顺便规定随机数的概率: /* 生成随机数 函数定义 */ voi

小游戏专场:腾讯云Game-Tech技术沙龙上海站顺利落下帷幕

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯游戏云发表于云+社区专栏 9月14日腾讯云GAME-TECH技术沙龙小游戏专场在上海顺利举办,此次技术沙龙由腾讯云的资深专家,以及Layabox游戏引擎的大牛为游戏从业者带来了众多技术干货,例如腾讯游戏云小游戏解决方案.微信小游戏入门与常见问题解惑.H5游戏语音解决方案.腾讯云数据库小游戏应用实践经验.微信小游戏运营及技术优化等.针对这些技术主题,专家大牛们与现场的游戏同仁们进行了深入的经验分享和讨论,并为游戏从业者解答了疑惑