文件名称:Snake
介绍说明--下载内容均来自于网络,请自行研究使用
贪吃蛇游戏
操作方法:
键盘方向键控制蛇的运动方向。
蛇吃到食物时,计分器会加10分,同时蛇身加长一截。
窗口左上角显示当前分数。
如果蛇碰撞到自身或窗口边界,报出分数,游戏结束。
编写思路:
容器对象actors:索引 对象 类名
0 分数 Score
1 食物 Food
2 蛇头 SnakeHead (Snake类的子类)
3 蛇身(蛇的第二截) Snake
4 蛇身(蛇的第三截) Snake
5 蛇身(蛇的第四截) Snake
6 蛇身(蛇的第五截) Snake
7 蛇身(蛇的第六截) Snake
... ... ...
键盘读入的方向存入大小为窗口中总格数的数组中(因蛇长不可能超过总格数的大小),
每一截蛇身对象按顺序读取,完成自身运动。
蛇身加长时使用链接构造函数,通过传递前一截的参数构造自身,达到后一截追随前一截运动的效果。
重新产生食物时并没有删除旧对象和新建对象,而是将现有食物移位,从视觉上达到产生新食物的效果。
蛇身和食物外圈运用了三角函数来产生周期渐变效果。
吃的动作和碰撞结束的动作都在主类中进行处理。
把游戏中可自定义的参数都放置到主类前,方便个性化修改。
Final即为工程文件的根目录,可直接导入eclipse运行。-SnakeGame
操作方法:
键盘方向键控制蛇的运动方向。
蛇吃到食物时,计分器会加10分,同时蛇身加长一截。
窗口左上角显示当前分数。
如果蛇碰撞到自身或窗口边界,报出分数,游戏结束。
编写思路:
容器对象actors:索引 对象 类名
0 分数 Score
1 食物 Food
2 蛇头 SnakeHead (Snake类的子类)
3 蛇身(蛇的第二截) Snake
4 蛇身(蛇的第三截) Snake
5 蛇身(蛇的第四截) Snake
6 蛇身(蛇的第五截) Snake
7 蛇身(蛇的第六截) Snake
... ... ...
键盘读入的方向存入大小为窗口中总格数的数组中(因蛇长不可能超过总格数的大小),
每一截蛇身对象按顺序读取,完成自身运动。
蛇身加长时使用链接构造函数,通过传递前一截的参数构造自身,达到后一截追随前一截运动的效果。
重新产生食物时并没有删除旧对象和新建对象,而是将现有食物移位,从视觉上达到产生新食物的效果。
蛇身和食物外圈运用了三角函数来产生周期渐变效果。
吃的动作和碰撞结束的动作都在主类中进行处理。
把游戏中可自定义的参数都放置到主类前,方便个性化修改。
Final即为工程文件的根目录,可直接导入eclipse运行。-SnakeGame
(系统自动生成,下载前可以参看下载内容)
下载文件列表
Final
.....\.classpath
.....\.project
.....\bin
.....\...\FinalGame.class
.....\...\Food.class
.....\...\Score.class
.....\...\Snake.class
.....\...\SnakeHead.class
.....\...\Spirit.class
.....\src
.....\...\FinalGame.java
.....\...\Food.java
.....\...\Score.java
.....\...\Snake.java
.....\...\SnakeHead.java
.....\...\Spirit.java
.....\.classpath
.....\.project
.....\bin
.....\...\FinalGame.class
.....\...\Food.class
.....\...\Score.class
.....\...\Snake.class
.....\...\SnakeHead.class
.....\...\Spirit.class
.....\src
.....\...\FinalGame.java
.....\...\Food.java
.....\...\Score.java
.....\...\Snake.java
.....\...\SnakeHead.java
.....\...\Spirit.java