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

📄 bulletsprite.java

📁 一个多线程的JAVA多线程游戏
💻 JAVA
字号:

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

abstract class SuperSprite   
{
   int     X,Y,width,height;
   boolean visible,active;

   abstract public void paintSprite(Graphics g);
   abstract public void updateState();

   public int getX()
   {
      return X;
   }

   public int getY()
   {
      return Y;
   }

   public void setLocation(int X,int Y)
   {
      this.X = X;
      this.Y = Y;
   }

   public int getWidth()
   {
      return width;
   }

   public int getHeight()
   {
      return height;
   }

   public void setSize(int width,int height)
   {
      this.width  = width;
      this.height = height;
   }

   public boolean canVisible()
   {
      return visible;
   }

   public void setVisible(boolean v)
   {
      visible = v;
   }

   public boolean canMove()
   {
      return active;
   }

   public void setMove(boolean m)
   {
      active = m;
   }
}

class ImageSprite extends SuperSprite {
   Image  SpriteImage;           
   Applet Game;                  
  
   public ImageSprite(Image SpriteImage,Applet Game){
      this.SpriteImage   = SpriteImage;
      this.Game          = Game;   

      setLocation(0,0);         
      setVisible(true);        
      setMove(true);         
   }

   public void updateState(){
   }

   public void paintSprite(Graphics g)  {
      if(visible == true)      
         g.drawImage(SpriteImage,X,Y,Game);  
   }
}


public class BulletSprite extends ImageSprite {
   int AppletWidth,AppletHeight;
   char d = 'R';
   int maze[][]; 


   public BulletSprite(Image bullet,Applet Game,int[][] maze){
      super(bullet,Game);            
      this.AppletWidth  = Game.getWidth();
      this.AppletHeight = Game.getHeight();
      this.maze = maze;
      setVisible(false);          
      setMove(false);             
   }

   public void setdirection(char d){
	   this.d = d;
	       
   }
   
   public void updateState(){
      if(active == true){
          switch(d){
        	 case 'U':
        		 if(Y < 0 || maze[(int)((Y)/36)][(int)(X/36)]!=0){
                    setVisible(false); 
                    setMove(false);  
                    setLocation(0,0);
                 }else
        		 Y = Y - 18*2;break;	 
        	 case 'D':
        		 if(Y > AppletHeight || maze[(int)((Y)/36)][(int)(X/36)]!=0){
                    setVisible(false); 
                    setMove(false); 
                    setLocation(0,0);
                 }else
        		 Y = Y + 18*2;break;
        	 case 'L':
        		 if(X < 0 || maze[(int)(Y/36)][(int)((X)/36)]!=0){
                    setVisible(false); 
                    setMove(false); 
                    setLocation(0,0);
                 }else
        		 X = X - 18*2;break;
        	 case 'R':
        		 if(X > AppletWidth || maze[(int)(Y/36)][(int)((X)/36)]!=0){
                    setVisible(false); 
                    setMove(false);   
                    setLocation(0,0);
                 }else
        		 X = X + 18*2;break;
          }                        
      }
   }

   public void paintSprite(Graphics g){
      if(visible == true)
         g.drawImage(SpriteImage,X,Y,Game);
   }
}

⌨️ 快捷键说明

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