为了账号安全,请及时绑定邮箱和手机立即绑定

HTML5小游戏---爱心鱼(下)

难度中级
时长 3小时27分
学习人数
综合评分9.80
87人评价 查看评价
9.9 内容实用
9.9 简洁易懂
9.6 逻辑清晰

最新回答 / 丢lld
这段代码,没有问题,但是不能解决问题,你回头再跟老师的仔细比对一下

最新回答 / 前秦
这是用了面向对象的思想。把要用到的相应的数据封装起来,用到的时候再调用,是整个开发过程条理清晰,知道哪一部分干什么工作,调试起来也容易,降低开发的难度。
0_秋意_03367333 Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The HTMLImageElement provided is in the 'broken' state."
出错的地方是定义刷新小鱼图片的模块
要注意babyTail[i].src = "./src/babyTail" + i + ".png"; 最后 “.png”是有 “.”的

最新回答 / qq_cool鼠_0
综合评分下面有,资料下载,点击 绿色 “下载”就可以了。
对于一些新手很有开拓思维的作用,特别是后面的。最好自己亲手敲一次,经验都是敲出来的。如果有Bug实在找不到,源码git地址 : https://github.com/XhhDream/Try/tree/master/Feed 希望本课程80%后再看我的代码。以及多拜雍正,少八阿哥。
谢谢老师的陪伴
类似halo和wave这样基本相同的代码可以运用面向对象实现将共同部分抽象出来
大鱼吃到蓝色果实就一直是蓝色,吃红色果实还是蓝色,知道碰撞小鱼才会变白色

已采纳回答 / NoLimits
还有第39行,alive后面少写了 [i] , 把我说的这几处都改一下就可以了、、、
不能产生第二个的,,born里面加一个return就行了
if (mom.momBodyCount > 0) { var l = calLength2(mom.x, mom.y, baby.x, baby.y);if (l < 900)
{ //baby recover baby.babyBodyCount = 0; mom.momBodyCount = 0;//score updatedata.addScore(); }}
实际上的判断语句这样也是可以的,当大鱼的身体处于第0张图片的状态时,碰撞小鱼也是没有反应的,
只是这样会牺牲类的独立性。
同时刚才的数值判断应该是在main.js中没有加入data.addScore();
AI真是不合理。、。
不过应该设计就是这样哈哈哈哈哈哈。。。
大鱼吃到不同果实后身体颜色发生变化,,老师这里有个错误,如果吃了蓝色以后,再吃橙色,而身体颜色就不变化了。
应该在momFruitsCollision函数里判断颜色那里加一个else语句。
if(fruit.fruitType[i]=="blue") {
data.double=2; //吃到蓝色果实
} else {
data.double=1; //吃到橙色果实
}

一个小细节,,,
我直接把babyTile = []定义在了babyObject的属性里了,它是属于babyObj的属性,定义在main.js不太合适,这样没有体现模块化的思想
小鱼尾巴资源文件少了~只有0,缺少1-7
课程须知
1、对html、css基础知识已经掌握。 2、对JavaScript的基础知识掌握,如数组、类、对象。 3、学习本课程之前您最好已经学习完成《HTML5小游戏---爱心鱼(上)》
老师告诉你能学到什么?
1、html5 canvas制作游戏理念 2、html5 canvas 绘图API 3、游戏中的碰撞检测 4、认识几个数学函数 5、物体池概念 6、序列帧动画的控制

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消