⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmenucanvas.java

📁 j2me快乐蛇0.2版代码,内有经典版贪食蛇和新版
💻 JAVA
字号:
import javax.microedition.lcdui.Canvas;import javax.microedition.lcdui.Graphics;import javax.microedition.lcdui.Image;import java.io.IOException;import javax.microedition.midlet.MIDlet;import javax.microedition.lcdui.Display;import java.lang.Thread;public class mmenuCanvas extends Canvas {	private final static byte State_Menu=1;	private final static byte State_Score=2;	private final static byte State_Option=3;	private final static byte State_Choose=4;	private byte curState;	private Image menu;	private int csel,optsel,gamesel;	private Image selImg;	private MIDlet parent=null;	private GameOpt option=null;	private SnakeCanvas classic=null;	private NewSnakeCanvas newSnake=null;	private Thread theGame;	private boolean backwait=false;	public mmenuCanvas(MIDlet p) {		try{			menu=Image.createImage("/menu.png");		}catch(IOException ioe){System.out.println(ioe.getMessage());};		int[] selrgb=new int[1980];		for(int i=0;i<22;i++) 			for(int j=0;j<90;j++)				if((i+j)%2==0)selrgb[i*90+j]=0xff8040; 				else selrgb[i*90+j]=0xffff8040;		selImg=Image.createRGBImage(selrgb,90,22,true);		curState=State_Menu;		csel=0;		optsel=0;		gamesel=0;		option=new GameOpt();		parent=p;		setFullScreenMode(true);//		System.out.println("active thread: "+Thread.activeCount());	}	protected void paint(Graphics g) {//		System.out.println("active thread: "+Thread.activeCount());//		System.out.println("free memory: "+Runtime.getRuntime().freeMemory());		switch(curState){		case State_Menu:				g.setColor(0xff8040);			g.fillRect(0,0,128,160);			g.drawImage(menu,20,20,g.TOP|g.LEFT);			for(int i=0;i<4;i++)				g.drawImage(selImg,20,21+22*i,g.TOP|g.LEFT);			g.setClip(20,21+22*csel,90,22);			g.drawImage(menu,20,20,g.TOP|g.LEFT);			g.setClip(0,0,128,160);			break;		case State_Score:			g.setColor(0xffffff);			g.fillRect(0,0,128,160);			g.setColor(0);			g.drawString("SCORE",40,70,g.TOP|g.LEFT);			break;		case State_Option:			g.setColor(0xffffff);			g.fillRect(0,0,128,160);			if(optsel==0){				g.setColor(255,128,0);				g.drawString("Sound: "+ option.sound,20,50,g.TOP|g.LEFT);				g.setColor(0);				g.drawString("Vibrate: "+ option.vibrate,20,70,g.TOP|g.LEFT);			}else{				g.setColor(0);				g.drawString("Sound: "+ option.sound,20,50,g.TOP|g.LEFT);				g.setColor(255,128,0);				g.drawString("Vibrate: "+ option.vibrate,20,70,g.TOP|g.LEFT);			}			break;		case State_Choose:			g.setColor(255,128,64);			g.fillRect(0,0,128,160);			g.setColor(0,255,255);			g.drawString("CLASSIC",20,20,g.TOP|g.LEFT);			g.drawString("  NEW  ",20,40,g.TOP|g.LEFT);			g.drawString(" BACK  ",22,60,g.TOP|g.LEFT);			g.setColor(255,0,0);			if(gamesel==0) 		g.drawString("CLASSIC",20,20,g.TOP|g.LEFT);			else if(gamesel==1)	g.drawString("  NEW  ",20,40,g.TOP|g.LEFT);			else if(gamesel==2) g.drawString(" BACK  ",22,60,g.TOP|g.LEFT);			break;		}	}		public void keyReleased(int keyCode){		if(backwait){backwait=false;return;}		int gamekey=getGameAction(keyCode);		switch(curState){		case State_Menu:			if(gamekey==DOWN)	{csel+=1;if(csel==4) csel=0;repaint();}			else if(gamekey==UP)	{csel-=1; if(csel==-1) csel=3;repaint();}			else if(gamekey==FIRE){				if(csel==0){					curState=State_Choose;					gamesel=0;					repaint();				}else if(csel==1){					curState=State_Score;					repaint();					serviceRepaints();				}else if(csel==2){					optsel=0;					curState=State_Option;					repaint();					serviceRepaints();				}else if(csel==3){					parent.notifyDestroyed();				}			}			break;		case State_Score:			csel=0;			curState=State_Menu;			repaint();			serviceRepaints();			break;		case State_Option:			if(gamekey==UP||gamekey==DOWN){				optsel=1-optsel;				repaint();			}else if(gamekey==LEFT||gamekey==RIGHT){				if(optsel==1) option.vibrate=!option.vibrate;				else option.sound=!option.sound;				repaint();			}else if(gamekey==FIRE){				csel=0;				curState=State_Menu;				repaint();			}			break;		case State_Choose:			if(gamekey==UP){ gamesel-=1;if(gamesel==-1) gamesel=0;repaint();}			else if(gamekey==DOWN){ gamesel+=1; if(gamesel==3) gamesel=2;repaint();}			else if(gamekey==FIRE){				if(gamesel==0){						System.gc();					classic=new SnakeCanvas(this,option);					Display.getDisplay(parent).setCurrent(classic);					theGame=new Thread(classic);					theGame.start();				}else if(gamesel==1){					System.gc();					newSnake=new NewSnakeCanvas(this,option);					Display.getDisplay(parent).setCurrent(newSnake);					theGame=new Thread(newSnake);					theGame.start();				}else{					csel=0;					curState=State_Menu;					repaint();				}			}			break;			}	}	public void backToMenu(){		curState=State_Menu;		csel=0;		backwait=true;		Display.getDisplay(parent).setCurrent(this);		repaint();	}	}//		System.out.println("free memory: "+Runtime.getRuntime().freeMemory());

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -