今天把整个游戏初步做完了, 添加了随机生成"诱饵", 吃一格长一截 :) 还有"重新开始游戏"功能. 添加了分数, 等级, 及根据等级递增速度.
诱饵随机的生成很简单, 就是随即产生一个X,Y, 然后看看是不是和身体有重复, 有重复的话, 重新生成一个. 这里我用了RECURSIVE FUNCTION, 可能不是很高效, 但思路应该是正确滴!
private Point generateBait() {
int bx, by;
Random r = new Random();
bx = Math.abs(r.nextInt()) % half_w;
by = Math.abs(r.nextInt()) % half_h;
int size = snake.size();
for (int i = 0; i < size; i++) {
if ( ((Point)snake.elementAt(i)).x == bx && ((Point)snake.elementAt(i)).y == by ) {
return generateBait();
}
}
return new Point(bx*2 + 4, by*2 + 4);
}
注意Random.nextInt()可能返回负数, 所以需要ABS来取正值.
下载地址: