mycanvas.java

来自「基于JAVA的手机程序入门」· Java 代码 · 共 115 行

JAVA
115
字号
package lyp.game;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;


class gameCanvas extends Canvas implements Runnable
{
	private Image copy;
	static int screnWidth,screnHight,top,currentHight;
	public static int brickLen;
	public static map mymap;
	public static Graphics graphics;
	public Thread thread;
	static block myblock;


	gameCanvas()
	{
		thread=new Thread(this);
		thread.start();
		screnWidth=this.getWidth();
		screnHight=this.getHeight();
		while(screnWidth%16!=0)
		{
			screnWidth--;
		}
		brickLen=screnWidth/16;
		copy=Image.createImage(screnWidth,screnHight);
		graphics=copy.getGraphics();
		top=screnHight-screnWidth;
		mymap=new map(brickLen);
		mymap.drawMap(graphics);
		myblock=new block();
		
	}
	
	protected void paint(Graphics g) 
	{
		g.drawImage(copy,0,0,Graphics.TOP|Graphics.LEFT);
	}

	public static void clear()
	{
		graphics.setColor(0,0,255);
		graphics.fillRect(0,0,screnWidth,screnHight);
	}
	
	public void run() 
	{
		while(true)
		{
			try {
				Thread.sleep(50);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			repaint();
		}
	}
	protected void keyPressed(int keyCode)
	{
		if(keyCode==Canvas.KEY_NUM4)
		{
			if(!myblock.isleft(mymap))
			{
				myblock.left();
				myblock.paint(graphics);
			}
		}
		else if(keyCode==Canvas.KEY_NUM6)
		{
			if(!myblock.isright(mymap))
			{
				myblock.right();
				myblock.paint(graphics);
			}
		}
		else if(keyCode==Canvas.KEY_NUM8)
		{
			while(!myblock.isdown(mymap))
			{
				myblock.down();
				myblock.paint(graphics);
			}
			myblock.setmap(mymap,graphics);
			if(block.over==false)
			{
				myblock.getthisblock();
			}
		}
		else if(keyCode==Canvas.KEY_NUM5)
		{
			if(!myblock.isrot(mymap))
			{
				myblock.rot();
				myblock.paintrot(graphics);
			}
		}
	}
	
}


class gameover extends Canvas
{
	protected void paint(Graphics g) {
		g.drawString("gameover",this.getWidth()/2,this.getHeight()/2,
				Graphics.HCENTER|Graphics.BOTTOM);
	}
	
}

⌨️ 快捷键说明

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