召唤神龙~让我们来看看源码及简单的修改分析,讲的很清楚哦

最近召唤神龙好火哈哈哈哈哈哈哈在这里插入图片描述

先给大家一个官方正版链接:【召唤神龙】
在给大家一套源码,这个源码不能本地运行,可以简单搭个服务器环境就可以啦:https://gitee.com/bendantada/long

这套源码里,最核心的逻辑在assets/main的index.js里
原来是压缩的,我已经对源码进行格式化啦
那么!在这里列几个点,总结一下简单的修改源码逻辑的方法(行数是文件里格式化后的):
也希望大家多多挖掘新的玩法哈哈哈哈

1.修改初始等级

557行有一个onLoad方法,其中624行

this.maxTypeID = 1,

1对应蝌蚪,最多到8
如果改成8后不会改变初始的样子,还是个蝌蚪,但是谁都可以吃,可以用蝌蚪吃蛟龙
当然也可以用锦鲤吃鲨鱼!在这里插入图片描述
(图源微博)

2.修改速度

啊我们知道,鱼越大游的越快,就越容易死了
我们可以在583行

this.speedNum = 400/ this.carmeraNode.getChildByName("MoveCamera").getComponent(cc.Camera).zoomRatio

修改前面那个400,或者整个改成一个定值

3.修改生成的鱼

在884行的getEnemyID方法,用于生成敌人鱼(暂且这么叫吧)
通过904行的updateCreate方法调用的CreateSingleEnemy方法将你的当前等级传给了getEnemyID方法可以看出来,当你每升级一次,就会根据你当前的等级生成敌人鱼
那么咱们可以直接重写getEnemyID方法,我们先看看getEnemyID

	getEnemyID: function(e) {
				var t = s.getRandomNum(0, 100, !1),
				a = 0;
				return 1 == e ? a = t < 50 ? 0 : t > 50 && t < 75 ? 1 : 2 : 2 == e ? a = t < 20 ? 0 : t > 25 && t < 50 ? 1 : t > 50 && t < 70 ? 2 : 3 : 3 == e ? a = t < 20 ? 0 : t < 35 ? 1 : t < 40 ? 2 : t < 70 ? 3 : 4 : 4 == e ? a = t < 20 ? 1 : t < 35 ? 2 : t < 40 ? 3 : t > 40 && t < 70 ? 4 : 5 : 5 == e ? t <= 15 ? a = 2 : t <= 30 ? a = 3 : t <= 35 ? a = 4 : t <= 60 ? a = 5 : t <= 90 ? a = 6 : this.jingyuNum < 1 && (a = 7, this.jingyuNum++) : 6 == e ? t <= 15 ? a = 3 : t <= 30 ? a = 4 : t <= 35 ? a = 5 : t <= 65 ? a = 6 : t <= 90 ? this.jingyuNum < 3 ? (a = 7, this.jingyuNum++) : a = 6 : this.jiaoNum < 2 ? (a = 8, this.jiaoNum++) : a = this.jingyuNum < 3 ? 7 : 6 : 7 == e ? t <= 20 ? a = 3 : t <= 25 ? a = 4 : t <= 30 ? a = 5 : t <= 35 ? a = 6 : this.jingyuNum < 5 ? (a = 7, this.jingyuNum++) : this.jiaoNum < 5 ? (a = 8, this.jiaoNum++) : a = s.getRandomNum(3, 4, !0) : 8 == e ? t < 40 ? a = 3 : t < 45 ? a = 4 : t <= 50 ? a = 5 : t <= 55 ? a = 6 : random <= 60 ? this.jingyuNum < 3 && (a = 7, this.jingyuNum++) : this.jiaoNum < 3 ? (a = 8, this.jiaoNum++) : a = s.getRandomNum(4, 5, !0) : a = s.getRandomNum(3, 5, !0),
				e >= 4 && a == e - 1 ? this.getEnemyID(e) : a
			},

不用完全看明白,只用看懂这是基于你当前的等级再随机随机返回一个int类型的敌人等级就好了,并且和最开始一样,1是蝌蚪,那么咱们可以直接改成

getEnemyID: function(e) {
return 1
}

就只生成蝌蚪啦
不过这样玩很无趣,升级太慢了

其他的一些修改

在908行CreateSingleEnemy方法里,912–918行可以修改敌人鱼的密度

					i = this.playerNode.typeID;
					if (i <= 3) {
						if (a > 60) return
					} else if (i >= 4 && i <= 5) {
						if (a > 50) return
					} else if (i > 5 && i <= 7) {
						if (a > 40) return
					} else if (i > 7 && a > 20) return;

可以看出,敌人鱼的数量和玩家等级是有关的,a是敌人鱼的数量
我们可以修改a>60 a>50 a>40那部分,来修改敌人鱼的密度

这个方法是用来生成敌人鱼的,比如玩家等级是≤3,也就是乌龟及以下的等级,敌人鱼的密度是60以内,大于60就return,不再生成,以此类推
所以可以修改那个数,从而修改敌人鱼密度

此外,923行的

s.typeID = n + 1;

可以改成n-1,这样你吃进去的鱼会自动降低一个等级,比如你吃的是乌龟,进你旁边的会是一只青蛙,算是让游戏多了一些挑战

好啦,因为时间关系,后面的源码没有怎么看,也希望更多hxd多开发一些新玩法

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
### 回答1: 召唤神龙是一款经典的小游戏,可以使用JavaScript来实现。以下是一种简单的实现方式。 首先,我们需要在HTML文件中创建一个画布(canvas)用来显示游戏界面。这可以通过在body元素中添加一个canvas标签来实现。 ```html <canvas id="gameCanvas" width="800" height="600"></canvas> ``` 接下来,在JavaScript文件中,我们需要获取这个canvas元素并保存到一个变量中。 ```javascript var canvas = document.getElementById("gameCanvas"); var ctx = canvas.getContext("2d"); ``` 然后,我们可以定义一些游戏所需的变量,比如神龙的位置、大小、速度等。 ```javascript var dragonX = canvas.width / 2; var dragonY = canvas.height - 100; var dragonSize = 80; var dragonSpeed = 5; ``` 接着,我们需要编写一些函数来处理游戏的逻辑。比如,我们可以编写一个函数来绘制神龙。 ```javascript function drawDragon() { ctx.beginPath(); ctx.arc(dragonX, dragonY, dragonSize, 0, Math.PI * 2); ctx.fillStyle = "green"; ctx.fill(); ctx.closePath(); } ``` 还可以编写一个函数来更新神龙的位置。 ```javascript function updateDragon() { if (ArrowLeft键按下) { dragonX -= dragonSpeed; } if (ArrowRight键按下) { dragonX += dragonSpeed; } if (ArrowUp键按下) { dragonY -= dragonSpeed; } if (ArrowDown键按下) { dragonY += dragonSpeed; } } ``` 最后,在主循环中调用这些函数。 ```javascript function main() { ctx.clearRect(0, 0, canvas.width, canvas.height); drawDragon(); updateDragon(); requestAnimationFrame(main); } main(); ``` 这只是一个简单召唤神龙小游戏的实现方式。你可以根据自己的需求添加更多的功能,比如添加障碍物、得分系统等。 ### 回答2: 召唤神龙小游戏是一款基于JavaScript开发的互动游戏,它依据热门日本动画《龙珠》中的情节设计而成。以下是一个使用JavaScript实现召唤神龙小游戏的简单示例: ```javascript <!DOCTYPE html> <html> <body> <button onclick="summonDragon()">召唤神龙</button> <script> function summonDragon() { var randomNum = Math.floor(Math.random() * 7) + 1; // 生成一个1-7之间的随机数 var dragon = ""; switch(randomNum) { case 1: dragon = "神龙:满足你一个愿望"; break; case 2: dragon = "神龙:给你1000年寿命"; break; case 3: dragon = "神龙:让你变成超级赛亚人"; break; case 4: dragon = "神龙:帮你找到七龙珠"; break; case 5: dragon = "神龙:让你获得无限力量"; break; case 6: dragon = "神龙:解散你的死党"; break; case 7: dragon = "神龙:让你在下次召唤时无法实现愿望"; break; default: dragon = "神龙:满足你一个愿望"; break; } alert(dragon); } </script> </body> </html> ``` 在这个小游戏中,当用户点击"召唤神龙"按钮时,利用JavaScript的Math.random()函数生成一个1到7之间的随机数,并用switch语句根据不同的随机数生成不同的神龙愿望。最后,通过alert()弹窗将神龙的愿望展示给用户。用户每次点击按钮,都会获得不同的神龙愿望,增加了游戏的趣味性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

笨笨2019

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

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

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

打赏作者

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

抵扣说明:

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

余额充值