为了账号安全,请及时绑定邮箱和手机立即绑定
真的不错 哈哈 这课挺好的 逻辑挺清除的
原版的2048,是每两个随机数字不可能一致的,用if判断了每两次生成的数字不一致,且通过改变生成的数字为2,4,8增加了简单,一般,困难的游戏程度,原理大致如下,简单难度每次只可生成一个随机数,并且数值为2,4,8,,8的比例较大,一般难度可生成2个随机数,且只能生成2,4,困难每次都能生成3个数字,且每次生成的数字都不重复,大大增加了游戏的难度和随机性
当越多空白格子时就越少循环,那么也有个别次数会循环16次还是没找到,那么就需要if(tim == 0){}
关于随机取位置的,有优化了下,基本上循环的很快
var tim = 17 - linshi.length;
while(tim > 0){
if(board[randx][randy] == 0){break;}
randx = parseInt( Math.floor( Math.random() * 4) );//[0-3]
randy = parseInt( Math.floor( Math.random() * 4) );//[0-3]
tim--;
console.log("循环次数为","此次linshi的长度为:",linshi.length);
}
老师的这个章节还是有个小bug
if(moveLeft()){//判断是否可以向左移动
setTimeout("generateOneNumber()" , 400) ;//调用随机生成两个数字
isgameover();
}
就是for循环非常快,还动画要200毫秒,所以不但要给绘制格子的函数加个延迟器也要给随机生成的函数加个延迟器
感觉自己逻辑弱爆了
想错了,原版游戏也没有新数字产生。。做的不错
BUG:如果格子再无法产生移动,新数字也停止产生了
那个检测碰撞,我认为在写move的时候,按照最长匹配原则写,就用不着碰撞检测,每个方向都从可以变化的第一个块开始遍历,从他能到的最远的位置开始进行匹配,我这样写出来不加碰撞检测也没有发现bug。也可能只是没有发现而已hhh
并没有阻止键盘的默认事件
老师很棒,谢谢老师的精彩讲解。
初始化的时候也要调用updateScore(score);
也是够了,还有要求老师有激情的?你当是传销啊,自己没耐心怪老师讲得乏味
妙!!!!!!!!!!!
给老师点100个赞,辛苦啦!
课程须知
具备HTML、CSS及JavaScript基本知识,掌握jQuery基本用法。
老师告诉你能学到什么?
游戏结构的开发、移动端的适配以及IOS、安卓端的开发过程。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消