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

📄 testcanvas.java

📁 j2me的框架~~本人在学习中总结出来的
💻 JAVA
字号:
import java.io.InputStream;

import javax.microedition.lcdui.*;



public class TestCanvas extends Canvas implements Runnable{
	
	private int width;
	private int height;
	static final int ERASE_COLOUR=0x00ffffff;
	private Image[] imgs;
	private int drawX,drawY;
	private int tilesWide,tilesHigh,tilesLength;
	private int[]Map;
	private int index=0;
	
	public TestCanvas(){
		
		width=getWidth();
		height=getHeight();
		tilesWide=10;
		tilesHigh=10;
		tilesLength=32;
		Map=new int[tilesWide*tilesHigh];
		imgs=new Image[13];
		
		for(int i=1;i<imgs.length;i++){
			
			try{
				
				imgs[i]=Image.createImage("/"+i+".PNG");
				
			}catch(Exception ex){}
		}
		
		try{
			
			InputStream is=null;
			is=this.getClass().getResourceAsStream("/map.TXT");
			int b;
			int[] data=new int[10];
			int idx=0;
			while((b=is.read())!=-1){
				
				if(b==44||b==13||b==10){
					
					for(int i=0;i<idx;i++){
						
						Map[index]=Map[index]*10+data[i];
					}
					
					if(idx>0){
						
						index++;
					}
					idx=0;
				}
				
				else{
					
					
					data[idx++]=b-'0';
				}
				
			}
		}catch(Exception ex){}
	}

	protected void paint(Graphics g) {
		// TODO 自动生成方法存根
		
		g.setColor(ERASE_COLOUR);
		g.fillRect(0,0, width, height);
		g.translate(drawX,drawY);
		
		for(int j=0;j<tilesHigh;j++){
			
			for(int i=0;i<tilesWide;i++){
				
				if(Map[tilesWide*j+i]!=0){
				
					g.drawImage(imgs[Map[tilesWide*j+i]], i*tilesLength, j*tilesLength, Graphics.TOP|Graphics.LEFT);
				}
			}
		}
		
	}

	public void run() {
		// TODO 自动生成方法存根
		
		while(true){
			
			try{
				
				repaint();
				Thread.sleep(100);
				
			}catch(Exception ex){}
		}
	}
	
	public void keyPressed(int keyCode){
		
		switch(getGameAction(keyCode)){
		
		case Canvas.UP:{
			
			if(drawY+10<=0){
				
				drawY=drawY+10;
			}
			else{
				
				drawY=0;
			}
		}break;
		
        case Canvas.DOWN:{
			
			if(drawY-10>=-tilesHigh*tilesLength+height){
				
				drawY=drawY-10;
			}
			else{
				
				drawY=-tilesHigh*tilesLength+height;
			}
		}break;
		
        case Canvas.LEFT:{
	
	        if(drawX+10<=0){
		
		         drawX=drawX+10;
	        }
	        else{
		
		         drawX=0;
	             }
        }break;

        case Canvas.RIGHT:{
	
	        if(drawX-10>=-tilesWide*tilesLength+width){
		
		          drawX=drawX-10;
	     }
	     else{
		
		      drawX=-tilesWide*tilesLength+width;
	          }
         }break;
		 }
		
	}

}

⌨️ 快捷键说明

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