[javascript]贪吃蛇增加一节更随怎么跟随蛇头移动
[javascript]贪吃蛇增加一节更随如何跟随蛇头移动
我想让蛇移动的方式改变表格单元的背景颜色
刚开始游戏的时候,只有一个随机的蛇头,比如蛇头坐标刚好是row=0 col=0
开始游戏需要按任意四个方向键,比如按向右,这个时候,蛇头cells+1
row[0].cells[1].style.background="red" 将它移动一格的背景颜色改为red
再将它原来的坐标row[0].cells[0].style.background="";的背景色改为无色,就是表格默认的颜色。
然后,调用setTimeout函数,使蛇头不停的移动,除非你按方向键改变它的方向或是撞墙死亡或是吃到食物让食物重新随机一个坐标位置。
我只能做到这一部,当吃到食物后,想让它增加一节,增加到蛇头后面,可以通过按方向键得到蛇头的方向,然后加在蛇头后面,这个时候,该怎么做,让增加的一节更随蛇头移动。。。等等啊
------解决方案--------------------
方式一:setTimeout 里对每一节蛇身,以从后往前(蛇尾到蛇头)的顺序,设置第 n+1 节的位置等于 第 n 节的位置,直到蛇头的后一节,蛇头则按你的方向前移一位
方式二:比方式一稍不好理解,但更有效率,即在 setTimeout 函数里移动蛇头到下一个位置,然后把蛇尾消去,在刚才的蛇头位置补上一节蛇身即可
------解决方案--------------------
少消一次蛇尾就可以了
------解决方案--------------------
你需要给蛇定义好数据结构,最简单的就是:1个n,指示节数,其后2n个数据,指示n节的坐标(x1,y1)、(x2,y2)...
蛇吃到食物后在数据中n+1,坐标增加1个。然后刷新显示即可。
------解决方案--------------------
在定义的数据结构中保存当前蛇的运动方向,在没吃到食物的时候每走一步就把蛇尾做为蛇头继续前进,吃到食物就直接把新节点做为蛇头即可。
我想让蛇移动的方式改变表格单元的背景颜色
刚开始游戏的时候,只有一个随机的蛇头,比如蛇头坐标刚好是row=0 col=0
开始游戏需要按任意四个方向键,比如按向右,这个时候,蛇头cells+1
row[0].cells[1].style.background="red" 将它移动一格的背景颜色改为red
再将它原来的坐标row[0].cells[0].style.background="";的背景色改为无色,就是表格默认的颜色。
然后,调用setTimeout函数,使蛇头不停的移动,除非你按方向键改变它的方向或是撞墙死亡或是吃到食物让食物重新随机一个坐标位置。
我只能做到这一部,当吃到食物后,想让它增加一节,增加到蛇头后面,可以通过按方向键得到蛇头的方向,然后加在蛇头后面,这个时候,该怎么做,让增加的一节更随蛇头移动。。。等等啊
------解决方案--------------------
方式一:setTimeout 里对每一节蛇身,以从后往前(蛇尾到蛇头)的顺序,设置第 n+1 节的位置等于 第 n 节的位置,直到蛇头的后一节,蛇头则按你的方向前移一位
方式二:比方式一稍不好理解,但更有效率,即在 setTimeout 函数里移动蛇头到下一个位置,然后把蛇尾消去,在刚才的蛇头位置补上一节蛇身即可
------解决方案--------------------
少消一次蛇尾就可以了
------解决方案--------------------
你需要给蛇定义好数据结构,最简单的就是:1个n,指示节数,其后2n个数据,指示n节的坐标(x1,y1)、(x2,y2)...
蛇吃到食物后在数据中n+1,坐标增加1个。然后刷新显示即可。
------解决方案--------------------
在定义的数据结构中保存当前蛇的运动方向,在没吃到食物的时候每走一步就把蛇尾做为蛇头继续前进,吃到食物就直接把新节点做为蛇头即可。