Me下的贪吃蛇小游戏
原创
©著作权归作者所有:来自51CTO博客作者zhy000的原创作品,请联系作者获取转载授权,否则将追究法律责任
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;i<Snake_List.size();i++)
{
element =(Snake_Element)Snake_List.elementAt(i);
g.fillRect(element.getPoint_x(), element.getPoint_Y(), element.getSize(), element.getSize());
}
}
private class SnakeMoveThread extends Thread
{
public void run()
{
while(true)
{
sanke_Move();
repaint();
try
{
Thread.sleep(200);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
public void sanke_Move()
{
for(j=Snake_List.size()-1;j>0;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_Direction.RIGHT_x){
if(headSanke.getPoint_x()+Snake_Direction.SNAKE_SIZE>Canvas_Width-30)
{
if(headSanke.getPoint_Y()+Snake_Direction.SNAKE_SIZE<Canvas_Height-20)
{
headSanke.setPoint_Y(headSanke.getPoint_Y()+Snake_Direction.SNAKE_SIZE);
headSanke.setDirection(Snake_Direction.DOWN);
}
else {
headSanke.setPoint_Y(headSanke.getPoint_Y()-Snake_Direction.SNAKE_SIZE);
headSanke.setDirection(Snake_Direction.UP);
}
}
else
headSanke.setPoint_x(headSanke.getPoint_x()+Snake_Direction.SNAKE_SIZE);
}
else if(headSanke.getDirection()==Snake_Direction.UP||headSanke.getDirection()==Snake_Direction.UP_y)
{
if(headSanke.getPoint_Y()-Snake_Direction.SNAKE_SIZE<0)
{
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) ;
}
else if(headSanke.getDirection()==Snake_Direction.LEFT||headSanke.getDirection()==Snake_Direction.LEFT_x)
{
if(headSanke.getPoint_x()-Snake_Direction.SNAKE_SIZE<1)
{
if(headSanke.getPoint_Y()-Snake_Direction.SNAKE_SIZE<1)
{
headSanke.setPoint_Y(headSanke.getPoint_Y()+Snake_Direction.SNAKE_SIZE);
headSanke.setDirection(Snake_Direction.DOWN);
}
else
{
headSanke.setPoint_Y(headSanke.getPoint_Y()-Snake_Direction.SNAKE_SIZE);
headSanke.setDirection(Snake_Direction.UP);
}
}
else
headSanke.setPoint_x(headSanke.getPoint_x()-Snake_Direction.SNAKE_SIZE);
}
else if(headSanke.getDirection()==Snake_Direction.DOWN||headSanke.getDirection()==Snake_Direction.DOWN_y)
{
if(headSanke.getPoint_Y()+Snake_Direction.SNAKE_SIZE>Canvas_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;
}
}
}
下一篇:java贪吃蛇常量字段
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
HTML+CSS+JS纯手写贪吃蛇
纯手写的简单贪吃蛇小游戏
贪吃蛇 html贪吃蛇 js贪吃蛇 纯手写贪吃蛇 简单贪吃蛇 -
贪吃蛇小游戏
基本准备: 首先,我们需要安装pygame库,小编通过pip install pygame,很快就安装好
pygame python 贪吃蛇 初始化 小游戏 -
学习贪吃蛇小游戏
学习贪吃蛇小游戏
贪吃蛇小游戏 -
贪吃蛇小游戏(JAVA)
贪吃蛇小游戏及视频教程
贪吃蛇 java 小游戏 界面 -
Android贪吃蛇小游戏demo 游戏贪吃蛇小游戏
目录一、前言二、项目介绍三、游戏的实现一、 创建地图二、设置食物 三、创建蛇 四、蛇的操作 1、蛇的移动 2、游戏结束 3、吃到食物身体变长 五、设置定时器 六、蛇
Android贪吃蛇小游戏demo javascript 构造函数 数组 键位