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

📄 sprite4_movespritecanvas.java

📁 一个基于MIDP1.0的精灵移动的源代码
💻 JAVA
字号:
import java.io.IOException;

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

public class Sprite4_MoveSpriteCanvas extends GameCanvas implements Runnable{
	private int drawX, drawY;
	private Sprite spr, spl, spu, spd;
	private Image pic;
	private int[] right = {9, 10, 11};//向右走的图片数组
	private int[] left = {3, 4, 5};//向左走的图片数组
	private int[] up = {6, 7, 8};//向上走的图片数组
	private int[] down = {0, 1, 2};//向下走的图片数组
	private Graphics g;
	private int act = 3;//判断行动方向

	public Sprite4_MoveSpriteCanvas() {
		super(true);
//		X,Y初值
		drawX = this.getWidth()/2 - 32;
		drawY = this.getHeight()/2;
		try {
			pic = Image.createImage("/man.png");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
//		分配精灵图片
		spr = new Sprite(pic, 32, 48);
		spr.setFrameSequence(right);
		spl = new Sprite(pic, 32, 48);
		spl.setFrameSequence(left);
		spu = new Sprite(pic, 32, 48);
		spu.setFrameSequence(up);
		spd = new Sprite(pic, 32, 48);
		spd.setFrameSequence(down);
		g = this.getGraphics();
		Thread t = new Thread(this);
		t.start();
		
		// TODO Auto-generated constructor stub
	}

	public void run() {
		while(true)
		{
			try {
				Thread.sleep(200);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			move();//行动判定方法
			draw(g);//图象判定方法
			
		}
		// TODO Auto-generated method stub
		
	}
	

	private void draw(Graphics g2) {
//		清屏
		g.setColor(255, 255, 255);
		g.fillRect(0, 0, this.getWidth(), this.getHeight());
//		向上走
		if(act == 0)
		{
			spd.setFrame(0);
			spd.setPosition(drawX, drawY);
			spd.paint(g);
			flushGraphics();
		}
		if(act == 1)
		{
			spu.nextFrame();
			spu.setPosition(drawX, drawY);
			spu.paint(g);
			flushGraphics();
		}
//		向下走
		if(act == 2)
		{
			spd.nextFrame();
			spd.setPosition(drawX, drawY);
			spd.paint(g);
			flushGraphics();
		}
//		向右走
		if(act == 3)
		{
			spr.nextFrame();
			spr.setPosition(drawX, drawY);
			spr.paint(g);
			flushGraphics();
		}
//		向左走
		if(act == 4)
		{
			spl.nextFrame();
			spl.setPosition(drawX, drawY);
			spl.paint(g);
			flushGraphics();
		}
		// TODO Auto-generated method stub
		
	}

	private void move() {
		int code = this.getKeyStates();
		if((code & UP_PRESSED) != 0)
		{
			act = 1;
			if(drawY <= 0)
			{
				drawY = 0;
			}
			else
			{
				drawY = drawY - 5;
			}
			
		}
		else if((code & DOWN_PRESSED) != 0)
		{
			act = 2;
			if(drawY + 48 >= this.getHeight())
			{
				drawY = this.getHeight() - 48;
			}
			else
			{
				drawY = drawY + 5;
			}
		}
		else if((code & RIGHT_PRESSED) != 0)
		{
			act = 3;
			if(drawX + 32 >= this.getWidth())
			{
				drawX = this.getWidth() - 32;
			}
			else
			{
				drawX = drawX + 5;
			}
		}
		else if((code & LEFT_PRESSED) != 0)
		{
			act = 4;
			if(drawX <= 0)
			{
				drawX = 0;
			}
			else
			{
				drawX = drawX - 5;
			}
		}else{
			act=0;
		}
		
		// TODO Auto-generated method stub
		
	}

}

⌨️ 快捷键说明

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