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

📄 firstcanvas.java

📁 j2me开发 简单示例 包括 游戏主菜单、rms功能模块
💻 JAVA
字号:
package com.gowin.firstgame;
import java.io.IOException;

import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import javax.microedition.media.Player;

public class FirstCanvas extends GameCanvas implements Runnable{

	private boolean isPlay;
	private long 	delay;
	private int		currentX;
	private int		currentY;
	private int 	width;
	private int 	height;
	
	//spriite
	private Sprite 	sprite;	
	
	//background
	private Sprite	backGroundSprite;
	private LayerManager layerManager;
	private TiledLayer	tiledBackGround;
	
	protected FirstCanvas() throws Exception {
		super(true);
		width = getWidth();
		height = getHeight();
		currentX = width/2;
		currentY = height/2;
		delay = 5;		
		
		//sprite
		Image imageTemp = null;		
		imageTemp = Image.createImage("/anim4.png");		
		sprite = new Sprite( imageTemp , 31 , 31 );
		
		//layermanage
		//Image backGroundImg = Image.createImage("/background.PNG");
		//backGroundSprite = new Sprite(backGroundImg,640,640);
		layerManager = new LayerManager();
		tiledBackGround = initBackGround();
		layerManager.append(sprite);
		layerManager.append(tiledBackGround);		
	}
	private TiledLayer initBackGround() throws Exception{
		// TODO Auto-generated method stub
		Image tiledImg = Image.createImage("/background.png");
		TiledLayer tempLayer = new TiledLayer( 5 , 5 , tiledImg , 640/5 , 640/5 ); 
		int[] map = {1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10};
		for( int i = 0 ; i < map.length ; i ++ )
		{
			int column = i%5;
			int row = (i-column)/5;
			tempLayer.setCell( column,row,map[i]);			
		}
		return tempLayer;
	}
	public void start()
	{
		isPlay = true;
		Thread t = new Thread(this);
		t.start();
	}
	public void stop()
	{
		isPlay = false;
	}
	
	public void run() {
		Graphics g = getGraphics();
		while( true == isPlay )
		{
			input();
			drawScreen(g);
			try{
				Thread.sleep(delay);
				
			}catch(InterruptedException ie)
			{
				//do nothing
			}
		}
		
	}
	private void drawScreen(Graphics g) {
		g.setColor(255, 255, 255);
		g.fillRect(0,0,width,height);
		//g.setColor(255, 0, 0);
		//g.drawString( "X" , currentX , currentY , Graphics.TOP|Graphics.LEFT );
		
		//sprite
		sprite.setPosition( currentX , currentY );
		layerManager.setViewWindow(currentX-width/2, currentY-height/2 , width - 40, height - 40);
		layerManager.paint(g, 20 , 20);
		flushGraphics();		
	}
	private void input() {
		int keyStates = getKeyStates();
		sprite.setFrame(0);
		if( ( keyStates & LEFT_PRESSED ) != 0)
		{
			currentX = Math.max(0 , currentX - 1);
			//sprite.setFrame(1);
		}
		else if( ( keyStates & RIGHT_PRESSED ) != 0)
		{
			if ( currentX + 31 < tiledBackGround.getWidth())
				currentX = Math.min(tiledBackGround.getWidth() , currentX + 1);
			//sprite.setFrame(3);
		}
		else if( ( keyStates & UP_PRESSED ) != 0)
		{
			currentY = Math.max(0 , currentY - 1);
			//sprite.setFrame(2);
		}
		else if( ( keyStates & DOWN_PRESSED ) != 0)
		{
			if( currentY + 31 < tiledBackGround.getHeight() ) 
				currentY = Math.min(tiledBackGround.getHeight() , currentY + 1);
			//sprite.setFrame(4);
		}
		
	}

}

⌨️ 快捷键说明

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