小游戏(贪食蛇)
线程
面向对象
文件操作
内部类
数据库
步骤:
1–了解swing相关知识和小游戏设计
通过main方法启动初始化界面
逐步添加界面元素
蛇的构成(多个关节组成)和运动方式(确认好方向,去尾加头)
食物的构成怎么出现(随机,位置与界面宽度和高度保持整除关系(余数为龙))
蛇如何吃豆子(头部元素与豆子元素坐标重合)
确定使用哪一种容器(LinkedList)
2--配置界面
宽度、高度
3--画出蛇
准备数据(一个关节就是一个对象 一条蛇是一个容器)
初始多个关节数据(关联着)
4--蛇运动(按照方向运动) 可以自定义线程、Timer
方向控制(键盘方向键控制方向 、 snake按照要求的方向继续运动)
360、撞墙、咬自己、调速、暂停
5--蛇吃豆子(不能出现在蛇身上 、 不能出界)
Bean
初始化豆子
画出豆子
吃豆子(循环)
身体长长
6--记录每次游戏的成绩
初始化数据通过配置文件配置(.properties、txt)
7 关卡设计
3关 (速度、分数、时间)
开始代码编程:
所需类: SnakeEle.java(蛇的类) , Bean.java(豆子类) , Constant(常量类) , Main(实现代码类) , config.properties配置文件
----------SnakeEle.java------------
package com.java20180917.snake;
import java.io.Serializable;
/*
-
蛇身体关节元素 实体类
-
*/
public class SnakeEle implements Serializable{private static final long serialVersionUID = -8508352375136668149L;
private int se_size;
private int se_x;
private int se_y;
public SnakeEle() {
super();
}
public SnakeEle(int se_size, int se_x, int se_y) {
super();
this.se_size = se_size;
this.se_x = se_x;
this.se_y = se_y;
}
public int getSe_size() {
return se_size;
}
public void setSe_size(int se_size) {
this.se_size = se_size;
}
public int getSe_x() {
return se_x;
}
public void setSe_x(int se_x) {
this.se_x = se_x;
}
public int getSe_y() {
return se_y;
}
public void setSe_y(int se_y) {
this.se_y = se_y;
}
@Override
public String toString() {
return “SnakeEle [se_size=” + se_size + “, se_x=” + se_x + “, se_y=” + se_y + “]”;
}
}
---------- Bean.java------------
package com.java20180917.snake;
import java.io.Serializable;
public class Bean implements Serializable{
private static final long serialVersionUID = 1894645424910104002L;
private int be_x;
private int be_y;
private int be_size;
public Bean() {
super();
// TODO Auto-generated constructor stub
}
public Bean(int be_x, int be_y, int be_size) {
super();
this.be_x = be_x;
this.be_y = be_y;
this.be_size = be_size;
}
public int getBe_x() {
return be_x;
}
public void setBe_x(int be_x) {
this.be_x = be_x;
}
public int getBe_y() {
return be_y;
}
public void setBe_y(int be_y) {
this.be_y = be_y;
}
public int getBe_size() {
return be_size;
}
public void setBe_size(int be_size) {
this.be_size = be_size;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
@Override
public String toString() {
return "Bean [be_x=" + be_x + ", be_y=" + be_y + ", be_size=" + be_size + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result =