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

📄 ai2.java

📁 JAVA2游戏程序设计源码 可以帮助初学者或者只想改改程序就能用的人
💻 JAVA
字号:
// 程序:角色逃离移动
// 范例文件:AI2.java

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

class Sprite
{
   int spriteX,spriteY,VX,VY,AppletWidth,AppletHeight;
   AI2 Game;
   Image    Hammer, Pig;

   public Sprite(Image Hammer, Image Pig,AI2 Game,int AppletWidth,int AppletHeight)
   {
      this.Game = Game; 
      this.Hammer = Hammer;
      this.Pig = Pig;
      this.AppletWidth  = AppletWidth;
      this.AppletHeight = AppletHeight;

      spriteX   = 0;
      spriteY   = 0;
      VX        = 0;
      VY        = 0;
   }

   public void updateState()
   {
      if(spriteX + 25 > Game.getX())
         VX = 1;
      else if(spriteX + 25 < Game.getX())
         VX = -1;
      else
         VX = 0;

      if(spriteY + 25 > Game.getY())
         VY = 1;
      else if(spriteY + 25 < Game.getY())
         VY = -1;
      else
         VY = 0;

      spriteX = spriteX + VX;
      spriteY = spriteY + VY;

      if(spriteX < 0)
         spriteX = 0;
      else if(spriteX > AppletWidth - 50)
         spriteX = AppletWidth - 50;

      if(spriteY < 0)
         spriteY = 0;
      else if(spriteY > AppletHeight - 50)
         spriteY = AppletWidth - 50;
   }

   public void paintSprite(Graphics g)
   {  
      g.drawImage(Pig,spriteX,spriteY,60,50,Game);
      g.drawImage(Hammer,Game.getX(),Game.getY(),50, 50,Game);
   }
}

public class AI2 extends Applet 
       implements Runnable,MouseListener,MouseMotionListener
{
   int      mouseX,mouseY,AppletWidth,AppletHeight;   
   Image    OffScreen, Hammer, Pig;
   Thread   newThread; 
   Graphics drawOffScreen;
   boolean  update;
 
   Sprite   S;

   public void init()
   {
      mouseX       = 0;
      mouseY       = 0;
      AppletWidth  = getSize().width;
      AppletHeight = getSize().height;
      update       = false;


      Hammer   = getImage(getDocumentBase(),"Images/hammer1.gif");
      Pig      = getImage(getDocumentBase(),"Images/pighead1.gif");

      S            = new Sprite(Hammer,Pig,this,AppletWidth,AppletHeight); 

      addMouseListener(this);     
      addMouseMotionListener(this);


      OffScreen      = createImage(AppletWidth,AppletHeight);
      drawOffScreen  = OffScreen.getGraphics();
   }

   public void start()      
   {
      newThread = new Thread(this);  
      newThread.start();
   }

   public void stop()        
   {
      newThread = null;   
   }

   public void paint(Graphics g)
   {

      drawOffScreen.clearRect(0,0,AppletWidth,AppletHeight);


      S.paintSprite(drawOffScreen);
           

      g.drawImage(OffScreen,0,0,this); 
   }

   public void update(Graphics g)   
   {
      paint(g);     
   }

   public void run()
   {
      while(newThread != null)
      {
         repaint();      

         try
         {
            Thread.sleep(33); 
         }
         catch(InterruptedException E){ }

         if(update)
            S.updateState(); 
      }
   }

   public int getX() 
   {
      return mouseX;
   }

   public int getY() 
   {
      return mouseY;
   }

   public void mouseExited(MouseEvent e) 
   {
      update = false; 
   }
   
   public void mouseClicked(MouseEvent e){} 
   
   public void mouseEntered(MouseEvent e)
   {
      update = true;   
   }
   
   public void mousePressed(MouseEvent e){} 
   
   public void mouseReleased(MouseEvent e){}
  
   public void mouseMoved(MouseEvent e) 
   {
      mouseX = e.getX(); 
      mouseY = e.getY();  
      showStatus("(" + mouseX + "," + mouseY + ")");
   }  
 
   public void mouseDragged(MouseEvent e){}  
}

⌨️ 快捷键说明

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