贪吃蛇代码
package com.game;
import java.util.Vector;
import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Graphics; public class SnakeMap_Canvas extends Canvas {
private Vector Snake_List=new Vector() ;//用来储存蛇的单元容器
private int Canvas_Width=0;//画板的宽度
private int Canvas_Height=0;//画板的高度
static Snake_Element element;
static Snake_Element element1;
static Snake_Element element2;
static Snake_Element headSanke;
int i=0;
int j =0;
public SnakeMap_Canvas()
{
Canvas_Width=getWidth();
Canvas_Height=getHeight();
for(int i=0;i<8;i++)//初始化开始蛇身共有八段
{
Snake_List.addElement(new Snake_Element(40-i*Snake_Direction.SNAKE_SIZE,50));
}
new SnakeMoveThread().start();
}
protected void paint(Graphics g)
{
/*****************
* 清屏相当于重画
* ***************/
g.setColor(255, 255, 255);
g.fillRect(0, 0, Canvas_Width, Canvas_Height);
g.setColor(0,0,0);
for(i=0;i0;j--){
element1=(Snake_Element)Snake_List.elementAt(j);
element2=(Snake_Element)Snake_List.elementAt(j-1);
element1.setDirection(element2.getDirection());
element1.setPoint_x(element2.getPoint_x());
element1.setPoint_Y(element2.getPoint_Y());
}
headSanke =(Snake_Element)Snake_List.elementAt(0);
//headSanke.setPoint_x(headSanke.getPoint_x()+Snake_Direction.SNAKE_SIZE); 按
键游戏
// System.out.println("x: "+headSanke.getPoint_x()+" / y:"+headSanke.getPoint_Y());
// System.out.println("width: "+Canvas_Width);
if(headSanke.getDirection()==Snake_Direction.RIGHT||headSanke.getDirection()==Snake_Direc
tion.RIGHT_x){
if(headSanke.getPoint_x()+Snake_Direction.SNAKE_SIZE>Canvas_Width-30)
{
if(headSanke.getPoint_Y()+Snake_Direction.SNAKE_SIZECanvas_Height-20)
{
if(headSanke.getPoint_x()-Snake_Direction.SNAKE_SIZE<1)
{
headSanke.setDirection(Snake_Direction.RIGHT) ;
headSanke.setPoint_x(headSanke.getPoint_x()+Snake_Direction.SNAKE_SIZE);
}
else
{
headSanke.setDirection(Snake_Direction.LEFT) ;
headSanke.setPoint_x(headSanke.getPoint_x()-Snake_Direction.SNAKE_SIZE);
}
}
else
headSanke.setPoint_Y(headSanke.getPoint_Y()+Snake_Direction.SNAKE_SIZE) ;
}
}
private boolean gameIsOver()
{
Snake_Element
headSanke=(Snake_Element)Snake_List.elementAt(Snake_List.size()-1);
if(headSanke.getPoint_x()+Snake_Direction.SNAKE_SIZE>Canvas_Width||headSanke.getPoint_x()<0)
return true;
if(headSanke.getPoint_Y()+Snake_Direction.SNAKE_SIZE>Canvas_Height||headSanke.getPoint_Y()<0)
return true;
return false;
}
}
}