8.2 绘制静态小蛇
8.2.1 定义蛇的数据结构
程序肯定是要存储数据的,而不是直接上来 就显示图片,即使上来就显示图片,也很难显示。。你都不知道往哪里显示。怎么显示。。
850 x 600 / 25 = 816 个单元格(也就是说只能存储 816 个 提供的关于蛇的图片素材。)
那我们要存储 多少个 坐标呢?肯定 最大是 816 个,所以 我们 要 新建 两个数组,定义大小 都为 900 就行了。用来 存储 每一个 蛇身的 坐标,当然包括蛇头的坐标。还得存储 蛇的长度,还有蛇头的方向。这都是必要的 数据存储。
//蛇的长度public int length;//蛇头的 X坐标 和 Y坐标int[] snakeX = new int[900];int[] snakeY = new int[900];//蛇头方向String snakeDirection = null;
- 编写 init() 初始化 方法 进行数据的初始化
//初始化public void init() {
//初始化蛇的长度length = 3;//初始化蛇头 坐标snakeX[0] = 125;snakeY[0] = 100;//初始化蛇身 坐标snakeX[1] = 100;snakeY[1] = 100;snakeX[2] = 75;snakeY[2] = 100;//蛇头方向snakeDirection = "right";}
- 先绘制静态小蛇
//画静态小蛇switch(snakeDirection){
case "right":Data.right.paintIcon(this, g, snakeX[0], snakeY[0]);break;case "left":Data.left.paintIcon(this, g, snakeX[0], snakeY[0]);break;case "up":Data.up.paintIcon(this, g, snakeX[0], snakeY[0]);break;case "down":Data.down.paintIcon(this, g, snakeX[0], snakeY[0]);break;default:break;}System.out.println(length);for(int i = 1;i<length;++i){
Data.body.paintIcon(this, g, snakeX[i], snakeY[i]);}
首先 判断蛇头当前的方向是什么,然后来画响应的 图片上去!再遍历 所有蛇身的坐标,进行 蛇身的绘画!
- 设定游戏当前状态:开始、停止
//蛇头方向snakeDirection = "right";//游戏状态if(!isStart){
g.setColor(Color.white);//设置字体Font 微软雅黑 = new Font("微软雅黑", Font.BOLD, 40);g.setFont(微软雅黑);g.drawString("按下空格开始游戏",300,300);}
如果我们 的游戏状态是 false 的话,那我们就提示 它 一个 字符串。也就是 画上去 一个字符串。