贪吃蛇项目总结
功能实现一般都要经过三个过程:定义数据,静态实现,动态实现
- 编程应是一种思想.写代码的时间是很少的,大部分时间是用于思考和解决bug上了.
- 贪吃蛇的整个开发过程总结下来就是:一个主界面上放了一个面板.这个面板画了一些东西和监听事件.
- 很多功能的实现其实来源于一个想法.如(1)贪吃蛇吃食物,本质就是判断蛇头和食物是否重合.(2)贪吃蛇死亡是遍历所有贪吃蛇的所有身体,当头和身体座标相同时,就是死了.
- 逆向思维很重要:不允许贪吃蛇倒着走,就只是判断"按键方向不是蛇头相反的方向",只需要一行代码就可以实现一个功能.
- ""debug"可以解决大部分想不懂的问题:学会利用工具
- 在初始化方法中为值赋初始化值,这样就不用总是想着属性什么时候是什么状态–>万物终究归一
- 先实现基本功能再优化,重要的是先要从0到1:道生一,一生二,二生三,三生万物.
- 写代码应是一种享受的事情,特别是实现一个功能,解决一个bug时的那种成就感.
- 道阻且长,行则将至.
主界面
package com.li.changGe.snake;
import javax.swing.*;
public class Index extends JFrame{
public static void main(String[] args) {
new Index().init();
}
public void init(){
setBounds(100,100,900,720);
setResizable(false);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
add(new GamePanel());
}
}
数据层
package com.li.changGe.snake;
import javax.swing.*;
import java.net.URL;
public class Data {
private static URL bodyURL = Data.class.getResource("statics/body.png");
public static ImageIcon body = new ImageIcon(bodyURL);
private static URL downURL = Data.class.getResource("statics/down.png");
public static ImageIcon down = new ImageIcon(downURL);
private static URL foodURL = Data.class.getResource("statics/food.png");
public static ImageIcon food = new ImageIcon(foodURL);
private static URL headerURL = Data.class.getResource("statics/header.png");
public static ImageIcon header = new ImageIcon(headerURL);
private static URL leftURL = Data.class.getResource("statics/left.png");
public static ImageIcon left = new ImageIcon(leftURL);
private static URL rightURL = Data.class.getResource("statics/right.png");
public static ImageIcon right = new ImageIcon