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

📄 player.java

📁 j2me编写的单击版游戏, 我们以前玩的超经典的爆炸人游戏,
💻 JAVA
字号:
//package com.mot.j2me.midlets.jbombman;

import java.util.*;

public class Player {
	private Board oBoard;
	private BoardView oBoardView;
	private Enemy oEnemy;
	private Bomb oBomb;
	private Random random;

	private int iX, iY;

	public Player( Board board, BoardView boardview ) {
		oBoard = board;
		oBoardView = boardview;

		random = new Random();

		init();
	}

	public void init() {
		while( true ) {
			iX = Math.abs( random.nextInt() ) % oBoard.iCols;
			iY = Math.abs( random.nextInt() ) % oBoard.iRows;

			if( oBoard.chBoard[iX][iY] != 'N' )
				continue;

			if( oBoard.near( 'E', iX, iY ) )
				continue;

			if( !oBoard.near2( 'N', iX, iY ) )
				continue;

			break;
		}

		oBoard.chBoard[iX][iY] = 'P';
	}

	public void setEnemy( Enemy enemy ) {
		oEnemy = enemy;
	}

	public void clearBomb() {
		oBomb = null;
		System.out.println( "delete Bomb" );
	}

	private boolean canGo( int x, int y ) {
		if( oBoard.isElement( 'N', x, y ) )
			return true;

		if( oBoard.isElement( 'E', x, y ) )
			die();

		return false;
	}

	public void fire() {
		oBomb = new Bomb( oBoard, oBoardView, this, oEnemy, iX, iY );
		oBomb.start();

		System.out.println( "new Bomb: x=" + iX + ", y=" + iY );
	}

	public void left() {
		if( !canGo( iX-1, iY ) )
			return;

		if( oBoard.chBoard[iX][iY] == 'U' )
			oBoard.chBoard[iX][iY] = 'B';
		else //Should be 'P'
			oBoard.chBoard[iX][iY] = 'N';

		iX--;
		oBoard.chBoard[iX][iY] = 'P';

		oBoardView.repaintCells( iX, iY, 2, 1 );
	}

	public void right() {
		if( !canGo( iX+1, iY ) )
			return;

		if( oBoard.chBoard[iX][iY] == 'U' )
			oBoard.chBoard[iX][iY] = 'B';
		else //Should be 'P'
			oBoard.chBoard[iX][iY] = 'N';

		iX++;
		oBoard.chBoard[iX][iY] = 'P';

		oBoardView.repaintCells( iX-1, iY, 2, 1 );
	}

	public void up() {
		if( !canGo( iX, iY-1 ) )
			return;

		if( oBoard.chBoard[iX][iY] == 'U' )
			oBoard.chBoard[iX][iY] = 'B';
		else //Should be 'P'
			oBoard.chBoard[iX][iY] = 'N';

		iY--;
		oBoard.chBoard[iX][iY] = 'P';

		oBoardView.repaintCells( iX, iY, 1, 2 );
	}

	public void down() {
		if( !canGo( iX, iY+1 ) )
			return;

		if( oBoard.chBoard[iX][iY] == 'U' )
			oBoard.chBoard[iX][iY] = 'B';
		else //Should be 'P'
			oBoard.chBoard[iX][iY] = 'N';

		iY++;
		oBoard.chBoard[iX][iY] = 'P';

		oBoardView.repaintCells( iX, iY-1, 1, 2 );
	}

	public void die() {
		System.out.println( "Player die: x=" + iX + ", y=" + iY );

		oEnemy.dieAll();
		oBoard.isGameOver = true;
		oBoardView.repaint();
	}
}

⌨️ 快捷键说明

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