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

📄 runsprite.java

📁 一个简单的迷宫类型游戏 一个小女孩在森林里面找独角兽
💻 JAVA
字号:
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.util.*;

public class RunSprite extends Sprite {
  private Random     rand;
  private int        speed;
  private TiledLayer barrier;
  private Sprite     Run;
private int        aggression;  // 0 - 10


  public RunSprite(
	Image image, int frameWidth, int frameHeight, 
	int RunSpeed, TiledLayer barrierLayer, 
	Sprite RunSprite,int aggressionLevel) {
	// 调用父类的构造器
    super(image, frameWidth, frameHeight);
    // 初始化随机数生成器
    rand = new Random();
    // 设置追逐速度
    speed = RunSpeed;
    // 设置障碍物图层
    barrier = barrierLayer;
    // 设置被追逐精灵
    Run = RunSprite;
   // 设置攻击级别
    aggression = aggressionLevel;
  
  }

  public void update() {
    // 暂时保存当前位置
    int xPos = getX();
    int yPos = getY();

	int xDis = getX() - Run.getX();
	int yDis = getY() - Run.getY();
    
    // 根据攻击级别追逐或随机移动
	if (Math.abs(rand.nextInt() % (aggression + 10)) > 0) {
	  // 追逐被追逐的精灵
	 if (xDis > Run.getWidth() / 2)
	 	move(speed, 0); // 向左追逐
	  else if (xDis < - getWidth() / 2)
		move(-speed, 0); //向右追逐
	  if (yDis > Run.getHeight() / 2)
		move(0, speed); // 向上追逐
	  else if (yDis < getHeight() / 2) 
		move(0, -speed); //向下追逐	   
	}else { // 随机漂移
      switch (Math.abs(rand.nextInt() % 4)) {
      case 0: move(-speed, 0); break;//向左
      case 1: move(speed, 0); break;//向右
      case 2: move(0, -speed); break;//向上
      case 3: move(0, speed); break;//向下
      }
	}


    // 检查精灵是否与障碍物图层碰撞
    if (barrier != null && collidesWith(barrier, true)) {
      // 将精灵移回移动前的位置
      setPosition(xPos, yPos);
    }

    // 显示精灵的下一帧
    nextFrame();
  }
}

⌨️ 快捷键说明

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