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

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

难度中级
时长 2小时34分
学习人数
综合评分9.50
139人评价 查看评价
9.6 内容实用
9.5 简洁易懂
9.4 逻辑清晰

已采纳回答 / 月下风物语
是ctx2=can2.getContext("2d");不是con2.getContext("2d");你写错了

已采纳回答 / 子木李
下载老师的代码对比下吧,或者在关键的函数的位置用log看看函数是否执行,或者在浏览器里设置断点调试下吧,因为楼主没贴代码,也不知道你错在哪儿了,所以只能提供些调试js的方法

已采纳回答 / 慕用7077196
    ctx2.strokeStyle = "#3b154e"; 你写的strokeStyle 多了一个a

已采纳回答 / 蛋加树
之前也遇到这个问题,后来重复看了看,对比代码,发现是在mom.js中的momObj.prototype.draw函数中,写大鱼身体翻转时写错了。应该是var deltaY = my - this.y; var deltaX = mx - this.x; var beta = Math.atan2(deltaY, deltaX) + Math.PI;不知道你的问题是不是这个原因导致。

已采纳回答 / 狐狸丢丢
var beta = Math.atan2(deltaY,deltaX) + Math.PI;后面的+Math.PI 你是不是没有加啊,我之前也是这样的 后来发现忘记加入+ Math.PI  你试试

已采纳回答 / echo_kinchao
这种东西克服下就好了~

已采纳回答 / skylinety
视频里面beta最后突然就冒出来一个Math.PI,老师也没有讲解,没注意的话会出现尾部跟着鼠标移动的问题。原因应该是一开始鱼头就在180度位置,不知道对不,不对的话,有高手知道麻烦说一声

已采纳回答 / n4ocMa
因为 if(this.alive[i]) 为 false 的时候不会执行绘制,会跳过当前循环,导致失帧, 所以会闪一下

最赞回答 / 默小柒
deltaTime应该在前面定义function game(){ init(); lastTime = Date.now(); deltaTime = 0; gameloop(); }如果在这里没有定义,那么lastTime就是undefined,那么下面的deltaTime = now -lastTime;就会是时间戳减去undefined,所以就是NAN,就会一直NANfunction gameloop(){ window.requestAnimationFrame(gameloop);     //...
首页上一页678910下一页尾页
课程须知
1、对html、css基础知识已经掌握。 2、对JavaScript的基础知识掌握,如数组、类、对象。
老师告诉你能学到什么?
1、html5 canvas制作游戏理念 2、html5 canvas 绘图API 3、游戏中的碰撞检测 4、认识几个数学函数 5、物体池概念 6、序列帧动画的控制

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消