SnakeGame
所属分类:其他
开发工具:Java
文件大小:14KB
下载次数:1
上传日期:2018-04-29 15:44:01
上 传 者:
NULL立
说明: 可以实现蛇上下左右移动,吃食物,撞墙和撞自己死亡,计分
(Snake can be moved up and down, eating food, hitting a wall and hitting oneself dead, scoring.)
文件列表:
SnakeGame\.classpath (301, 2017-11-27)
SnakeGame\.project (385, 2017-11-27)
SnakeGame\.settings\org.eclipse.jdt.core.prefs (598, 2017-11-27)
SnakeGame\bin\control\Controller.class (1895, 2017-12-19)
SnakeGame\bin\listener\Snakelistener.class (154, 2017-12-19)
SnakeGame\bin\test\SnakeGameText.class (1426, 2017-12-19)
SnakeGame\bin\util\Global.class (360, 2017-12-19)
SnakeGame\bin\view\GamePanel.class (889, 2017-12-19)
SnakeGame\bin\wsl\Food.class (1046, 2017-12-19)
SnakeGame\bin\wsl\Ground.class (1520, 2017-12-19)
SnakeGame\bin\wsl\Snake$SnakeDriver.class (990, 2017-12-19)
SnakeGame\bin\wsl\Snake.class (3283, 2017-12-19)
SnakeGame\src\control\Controller.java (1854, 2017-11-28)
SnakeGame\src\listener\Snakelistener.java (253, 2017-11-27)
SnakeGame\src\test\SnakeGameText.java (895, 2017-11-28)
SnakeGame\src\util\Global.java (203, 2017-11-28)
SnakeGame\src\view\GamePanel.java (662, 2017-11-28)
SnakeGame\src\wsl\Food.java (637, 2017-11-28)
SnakeGame\src\wsl\Ground.java (1347, 2017-11-28)
SnakeGame\src\wsl\Snake.java (2747, 2017-11-28)
SnakeGame\bin\control (0, 2017-12-19)
SnakeGame\bin\listener (0, 2017-12-19)
SnakeGame\bin\test (0, 2017-12-19)
SnakeGame\bin\util (0, 2017-12-19)
SnakeGame\bin\view (0, 2017-12-19)
SnakeGame\bin\wsl (0, 2017-12-19)
SnakeGame\src\control (0, 2017-11-27)
SnakeGame\src\listener (0, 2017-11-27)
SnakeGame\src\test (0, 2017-11-27)
SnakeGame\src\util (0, 2017-11-28)
SnakeGame\src\view (0, 2017-11-27)
SnakeGame\src\wsl (0, 2017-11-27)
SnakeGame\.settings (0, 2017-11-27)
SnakeGame\bin (0, 2017-12-19)
SnakeGame\src (0, 2017-11-28)
SnakeGame (0, 2017-11-28)
贪吃蛇
通过按上下左右控制蛇的移动方向
当蛇吃到自己或者碰到四壁游戏结束
*******************************总体框架*************************************
Snake类
move() //移动
eatFood(Food food) //吃食物
changeDirection() //改变方向
drawMe() //画蛇身
Food类
isEatBySnake(Snake snake) //是否吃到自己
drawMe() //画出食物
Ground类
isEatBySnake(Snake snake) //是否撞到障碍物
drawMe() //画出障碍物
GamePannel类 //**************显示蛇身、食物、障碍物
display() //继承轻级容量器JPanel,重写paintComponent
//**面板画东西必须用画笔,paintComponent**
Control类(控制器)
1 构造函数初始化
四个对象作为成员并用构造函数初始化
2 移动控制(键盘事件控制,键盘监听器)
继承KeyAdapter重写keyPressed方法
3 每次移动都要判断是否碰到自己,障碍物,食物
写一个监听器,创建一个接口Snakelistener
4 控制器需要蛇的监听器,能够监听蛇是否撞到自己,食物,障碍物
Controller实现接口
主装游戏
1 创建所有类的对象
2 控制器控制游戏开始startGme(),让蛇开始移动start()
3 在Snake中添加start()启动蛇的移动
start实现-》启动一个线程让蛇移动
4 线程SnakeDirver()
5 给射添加监听器,面板加键盘监听器
创建窗体,添加面板,启动游戏,显示界面
***************************************************************************
**************************具体实现********************************************
Snake移动(去尾加头)
数据结构选LinkedList
LinkedList容纳点类型Point
(蛇头做过的位置,蛇身都会经过)
用Point,蛇身就是由几个方块组成,定义没个方块的宽度、高度,矩形左上角坐标
面板分成x*y个格子组成
定义辅助类Global
定义格子宽度、高度,格子数量
坐标系(x,y)
真正的坐标系(x*格子宽,y*格子高)
*****移动-》获得蛇头->键盘获取方向
*****食物(一个格子) 位置由左上角坐标决定
食物类继承点Point
*****控制器
游戏开始时决定a。蛇的移动 b。食物位置
*****吃掉食物,把去掉的尾巴加回来即可
当蛇头碰到食物时即为吃掉,并产生一个新的食物
*****碰到障碍物、自己
当蛇头碰到障碍物、自己 即游戏结束
近期下载者:
相关文件:
收藏者: