------
这个方法很好么,学习
------
我的意思是蛇的绘制只需要考虑两个变量,不好意思,没有考虑到游戏中的其他逻辑。
针对游戏,用一个一维数组记录从蛇尾到蛇头的逐个坐标,每个坐标用一个整数表示。
从蛇尾到蛇头来存,或者反过来,都可以。
如果从蛇尾到蛇头来存,蛇尾是arr[0],蛇头是arr[arr.length-1]
蛇每移动一步,则在数组arr.shift()一下,arr.push(iNew)一下即可。
如果从蛇头到蛇尾来存,蛇头是arr[0],蛇尾是arr[arr.length-1]
蛇每移动一步,则在数组arr.unshift(iNew)一下,arr.pop()一下即可。
------
真是超级棒的啊
------
嗯 好好学习一下..
------
这么经典的程序应该有吧
------
进来看看
------
学习!
------
学习一下先。。。。
------
学习学习啊。
------
标记,学习
------
关注一下!
------
学习
------
围观一下,一会拿电脑实现一下。
------
蛇身和食物用户不同颜色表示,蛇身是到食物后变自身颜射,颜色相同则表示碰撞,不同则是食物
------
UP
------
进来学习一下。
------
学习了
------
链表,初始化时要设定每一节身体的坐标
蛇移动仅仅是头指向尾,断开尾的链接,根据走向更新新头的坐标。
吃掉食物仅仅是把头指向食物,作为新的头。
------
单向链表为蛇,食物可以当成只有一个元素的单向链表来初始化
------
扩展的话可以把食物都做成单向链表,也就是食物也是多个组成,嘿嘿,实现的方式不会有任何变化。
------
我的贪吃蛇 (34 楼 为修改后的代码)
http://topic.csdn.net/u/20090729/09/32164988-96af-4c15-a9d4-b873764b0535.html------
小游戏实现起来真复杂啊~~
------
旁观
------
学习!
------
这个贪食蛇用ABAP这么写啊?????
------
这个有点意思。
------
.
------
我发现人才真多。。。。
------
原来js如此强大,游戏也可以做。依旧努力的学习中……
------
期待
------
“贪吃的蛇”是一个低分辨率点阵下实现的游戏。最初是在Apple II的40×40色块分辨率下实现的。
实现这个游戏最好的办法是创建一个模拟的点阵显示环境。
如果用什么链表之类的东西来描述,不仅麻烦,而且不够真实。
你要创建一个W×H的点阵显示空间。记录这个空间的是W×H个元素的一维数组(相当于显示缓冲区)。
一维数组的索引和二维坐标的转换公式是这样的:
I=Y×W+X (i是从0到N的一维数组索引)
Y=I\W (Y是从0开始计算的垂直坐标)
X=I Mod W (X是从0开始计算的水平坐标)
在点阵里画一个点,一般是使元素大于0。擦除一个点一般是使元素等于0。
(如果你吃饱了撑的,也可以规定擦除是某个特定值比如99,0是有效点)
每当完成一个“周期”之后,将这个一维数组在界面上成像(相当于RAMDAC将显示缓冲区输出为视频信号)。
成像的方法有许多方式。你可以用O和X在文本显示;也可以用漂亮的明暗图片在网页里显示。这个就属于细节问题了。
实现了“点阵显示环境”和“画点、擦点”的函数之后。就可以实现“贪吃的蛇”了。
实现贪吃的蛇简单说就是:画当前周期的最新点,擦L个周期前的旧点(L就是蛇的长度)。做个FIFO很好解决。你可能会习惯在FIFO里存储一个x,y坐标。但明智的办法是存储一维显示缓冲区数组的索引,因为它不需要坐标转换。
当前点和擦除点之间的点并不重画,因为它们已经存在于点阵显示上。但假如蛇的轨迹穿过这些点,会导致它们在L个周期后被擦掉。那个年代的电脑运算速度特别慢,如果要保证将L个点全部重画会消耗运算资源。画一点、擦一点的方式最节省运算资源。这就是为什么“贪吃的蛇”游戏规则里不允许吃到自己身体的原因。
------
支持,哈哈,这个不错
------
此贴不能倒,呵呵!
------
简单的贪食蛇,写起来非常简单,代码也很少。
给一个我周五写的简单贪食蛇(长按前进方向键可加速前进,代码简洁没OO)
【贪食蛇v1在线试玩点这里】截图:

但是如果要做到很好的视觉效果,就难了。比如,
如果想让蛇不再是方块的蛇,而是仿真的蛇,则蛇头、蛇尾各有4个方向的不同图片,蛇身每段都应该有水平和竖直两种状态,蛇体转弯拐角处用圆形连接又有很多种情形,复杂着呢。
------
http://blog.csdn.net/cuixiping/archive/2009/08/08/4425159.aspx
------
学习了,还是蛮有用的!
------
看了flash版的贪食蛇之后,相信没有人对玩js版的感兴趣。
------
用面向对象的方式封装,
封装一组节对象
------
苗苗
------
用面向对象的方式封装,
封装一组节对象
------
学习!
------
up
------
这也可以算的?
------
顶顶顶
------
谢谢 研究去
------
学习
------
有没有完整代码 ,借我玩哈 !
------
学习中
------
如何实现转弯?
------
Mark
------
Hoye不错噢,呵呵,这个贴挺起
------
真的有强人.

------
学习了
------
想法很不错~~~~~!
很期待,
看来要多学学JS方面技术了 这么强大~~~~~~
------
学。
------
------
------
------
好一個完整的~!~學習學習~!
------
学习。
------
学习中。。。。值得期待
------
学习中.............
桂ICP备07017180号