fangsprite.java

来自「用J2ME实现的战棋类小游戏DEMO,寻路用A星算法,因为时间关系物品使用功能请」· Java 代码 · 共 227 行

JAVA
227
字号
package midp20;

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

public class FangSprite extends Layer {
	
	//小方块ID号
	public  int lFangIndex=0; 
	
   //Array
	public int[] up1 = { 0 };
	public int[] lup1 = { 0 };

	// 方块移动频率
	private int bb = 0;
	private int cc=0;

	// 当前的帧序列
	private int[] currentFrames;

	private int currentFrame = 0;

	public void setCurrentFrames(int[] current) {
		currentFrames = current;
		currentFrame = 0;
	}

	public FangSprite(Image img, int width, int height) {
		super(img, width, height);

	}
	
	public void fangMoveToPlayer(int playerX,int playerY){
		setPosition(playerX,playerY);
	}
	public void fangMoveToEnemyA(int enemyX,int enemyY){
		setPosition(enemyX,enemyY);
	}
	

	public void moveSprite(int keycode) {

		bb += 1;
		if (bb == 1) {
			switch (keycode) {
			case -1:
				keycode=0;
				if(y==0){}else{
				setPosition(x, y -= 24);

				}
				
				break;
			case -2:
				keycode=0;
				if(y==15*24){}else{
				setPosition(x, y += 24);

				}
			
				break;
			case -3:
				keycode=0;
				if(x==0){}else{
				setPosition(x -= 24, y);

				}
				
				break;
			case -4:
				keycode=0;
				if(x==15*24){}else{
				setPosition(x += 24, y);

				}
				
				break;
			
			}
			bb = 0;
		}

	}
	public void moveSpriteLow(int keycode,int playerX,int playerY) {

		bb += 1;
		if (bb == 1) {
			switch (keycode) {
			case -1:
				keycode=0;
				if(y==0){}else{
				setPosition(playerX, playerY -= 24);

				}
				
				break;
			case -2:
				keycode=0;
				if(y==15*24){}else{
				setPosition(playerX, playerY += 24);

				}
			
				break;
			case -3:
				keycode=0;
				if(x==0){}else{
				setPosition(playerX -= 24, playerY);

				}
				
				break;
			case -4:
				keycode=0;
				if(x==15*24){}else{
				setPosition(playerX += 24, playerY);

				}
				
				break;
			
			}
			bb = 0;
		}

	}
	public void LFangMoveSprite(int keycode) {

		bb += 1;
		if (bb == 1) {
			switch (keycode) {
			
			case -3:
				keycode=0;
				if(lFangIndex==0){setPosition(x+=60,y);lFangIndex=3;}else{
				setPosition(x -= 20, y);
				lFangIndex-=1;
				}
				
				
				break;
			case -4:
				keycode=0;
				if(lFangIndex==3){setPosition(x-=60, y);lFangIndex=0;}else{
				setPosition(x += 20, y);
				lFangIndex+=1;
				}
				
				break;
			default:
				break;
			
			}
			bb = 0;
		}

	}

	public void FireFanWei(int rekeycode, FangSprite fangPlayer, Sprite player,
			int map_tl2[][]) {
		if (rekeycode == -5) {
			
			if ((player.getX() == fangPlayer.getX())
					&& (player.getY() == fangPlayer.getY()) && rekeycode == -5) {

				int yy = player.getY() / 24;
				int xx = player.getX() / 24;

				for (int u = 0; u <= 3; u++) {
					for (int i = 0; i <= 3; i++) {
					  try{
						if (map_tl2[yy - 3 + i + u][xx + i - u] == 2)
							continue;
						map_tl2[yy - 3 + i + u][xx + i - u] = 1;
					  }catch(Exception e){continue;}
					}
				}
		          for(int u=0;u<=2;u++){
					for (int i= 0; i <= 2; i++) {
						  try{
						if (map_tl2[yy - 2 + i+u ][xx + i -u] == 2)
							continue;
						map_tl2[yy - 2 + i+u][xx + i-u ] = 1;
						  }catch(Exception e){continue;}
					}
		          }
		          System.out.println("第0步执行完毕");
		      	rekeycode = 0;
		          GameTools.currentAction++;
			
			
			
			}
		}
     
	}

	public void paint(Graphics g) {

		int x_des = tileIndex % column * width;
		// System.out.println("x_des==" + x_des);
		int y_des = tileIndex / column * height;
		// System.out.println("y_des==" + y_des);

		g.setClip(x - TiledLayer.x_window, y - TiledLayer.y_window, width,
				height);
		g.drawImage(resouce, x - TiledLayer.x_window, y - TiledLayer.y_window,
				0);

	}
	public void paintLFang(Graphics g) {

		int x_des = tileIndex % column * width;
		// System.out.println("x_des==" + x_des);
		int y_des = tileIndex / column * height;
		// System.out.println("y_des==" + y_des);

		g.setClip(x - TiledLayer.x_window, y - TiledLayer.y_window, width,
				height);
		g.drawImage(resouce, x - TiledLayer.x_window, y - TiledLayer.y_window,
				0);

	}

}

⌨️ 快捷键说明

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