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

📄 drawimage.java

📁 自己做的小java程序
💻 JAVA
字号:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class DrawImage extends Applet implements Runnable,KeyListener,MouseListener 
{
     Image Background,role,Background0,rocket1,rocket2,rocket3,burst;
     int status;
     int rocket1_x,rocket1_y,rocket2_x,rocket2_y,rocket3_x,rocket3_y;
	 
     int speed_p_x,speed_p_y,speed_h_x,speed_h_y;
     public AudioClip bgsound, speak;
     Thread the_other_thread;
     int role_x,role_y, role_x_speed,role_y_speed,appW,appH;
    //int width,height;
    //定义线程对象
    //Thread animationThread;
    //定义次画面对象
    Image offScreen;
    //定义次画面的绘图对象
    Graphics offScreenGraphics;
    //用整型变量currentDirection标志角色当前的运动方向
    int currentDirection;
    //用整型变量currentFrame标志当前运动方向中处于哪一个动画帧
    int currentFrame;
    //public boolean drawImage(Image img,int dx1,int dy1,dx2,dy2,sx1,sy1,sx2,sy2,this)

      public void init()
     {  
	     addKeyListener(this);
         addMouseListener(this);
         status=0;
         rocket1_x=350;
		 rocket1_y=720;
		 speed_p_x=0;
		 speed_p_y=40;
         bgsound=getAudioClip(getCodeBase(),"music/love.mid");//music/ringout.wav
		 bgsound.loop();
         speak=getAudioClip(getCodeBase(),"music/春江花月夜.mid");
				
         currentFrame=0;
         appW=getSize().width;
         appH=getSize().height;
         //初始化次画面对象/background3.png  /Roles/plane1.gif
         offScreen = createImage(appW,appH);
         //初始化次画面上的绘图对象
         offScreenGraphics = offScreen.getGraphics();
         role_x_speed=role_y_speed=0;
         role_x=30;role_y=40;
         //hammer=getImage(getCodeBase(),"images/HAMMER2.gif");
         rocket1=getImage(getCodeBase(),"images/rocket1.gif");
		 rocket2=getImage(getCodeBase(),"images/rocket2.gif");
         rocket3=getImage(getCodeBase(),"images/rocket3.gif");
		 burst=getImage(getCodeBase(),"images/lihua.gif");
		 
         Background0=getImage(getCodeBase(),"images/bg.gif");
         Background=getImage(getCodeBase(),"images/xinqiu.gif");
         role=getImage(getCodeBase(),"images/Hero.gif");    
      }
	  
     public void start()
	 {
		the_other_thread=new Thread(this);
		the_other_thread.start();
	 }
	
     public void stop()
	 {
		the_other_thread=null;
	 }
    public void run()
    {
    }
    public void mouseClicked(MouseEvent e){}
    public void mouseExited(MouseEvent e){}
    public void mouseEntered(MouseEvent e){}
    public void mouseReleased(MouseEvent e){}
    public void mousePressed(MouseEvent e){
       status=1;
      }
	//键盘事件
    public void keyTyped(KeyEvent e){}
    public void keyReleased(KeyEvent e){}
    public void keyPressed(KeyEvent e)
	{
		if(status==1){
		 
			int key=e.getKeyCode();
			
			switch(key)
			{
			case KeyEvent.VK_RIGHT:
			                    currentDirection=0;
                                role_x_speed=+10;
				                role_y_speed=-10;
                                //speak1.play();
				                break;
			case KeyEvent.VK_LEFT:
			                    currentDirection=1;
                                role_x_speed=-10;
				                role_y_speed=10;
                                //speak1.play();
				                break;
			case KeyEvent.VK_UP:
			                    currentDirection=2;
                                role_x_speed=-10;
				                role_y_speed=-10;
								//speak1.play();
                                break;
			case KeyEvent.VK_DOWN:
			                    currentDirection=3;
                                role_x_speed=10;
				                role_y_speed=10;
                               // speak1.play();
				                break;
			}//switch
		 }//if
	  }//keyPressed 
    
    public void paint(Graphics g)
      {
            //清除次画面         
           if(status==0){
	       
		   offScreenGraphics.drawImage(Background0,0,0,getSize().width,getSize().height,this);
           g.drawImage( offScreen, 0, 0, this );
		   }
           else{
           offScreenGraphics.setColor(Color.white);
           offScreenGraphics.fillRect( 0, 0, appW, appH );
           offScreenGraphics.drawImage(Background,0,0,getSize().width,getSize().height,this);
		
    switch(currentDirection)
    {
      case 0:
         //for(;;currentFrame++)
          offScreenGraphics.drawImage(role,role_x,role_y,role_x+64,role_y+64,(currentFrame%4)*64,64,(currentFrame%4)*64+64,128,this);
             currentFrame++;
             break;
      case 1:
         //for(;;currentFrame++)
          offScreenGraphics.drawImage(role,role_x,role_y,role_x+64,role_y+64,(currentFrame%4)*64,192,(currentFrame%4)*64+64,256,this);
             currentFrame++;
             break;
      case 2:
         //for(;;currentFrame++)
          offScreenGraphics.drawImage(role,role_x,role_y,role_x+64,role_y+64,(currentFrame%4)*64,0,(currentFrame%4)*64+64,64,this);
             currentFrame++;
             break;
      case 3:
         //for(;;currentFrame++)
        offScreenGraphics.drawImage(role,role_x,role_y,role_x+64,role_y+64,(currentFrame%4)*64,128,(currentFrame%4)*64+64,192,this);
             currentFrame++;
             break;
      
      }//switch
      role_x=role_x+role_x_speed;
      role_y=role_y+role_y_speed;
	  
      
	  if(role_x >= rocket1_x&&role_x<=rocket1_x+100&&role_y >= rocket1_y&&role_y <= rocket1_y+150)//判断碰撞
		 {
            
			speak.play();
			offScreenGraphics.drawImage(burst,rocket1_x,rocket1_y,rocket1_x+150,rocket1_y+150,0,0,100,140,this);
			rocket1_y=720;
			offScreenGraphics.drawString("游戏结束",appW/2,appH/2);
		 }
		  else if(rocket1_y<-20)
		    {
	        rocket1_y=720;
            rocket1_y-=speed_p_y;
            offScreenGraphics.drawImage(rocket1,rocket1_x,rocket1_y,rocket1_x+100,rocket1_y+150,0,0,160,140,this);
			}
			else{
			rocket1_y-=speed_p_y;
			offScreenGraphics.drawImage(rocket1,rocket1_x,rocket1_y,rocket1_x+100,rocket1_y+150,0,0,160,140,this); 
			}
	if(role_x >= rocket2_x&&role_x<=rocket2_x+100&&role_y >= rocket2_y&&role_y <= rocket2_y+150)
		 {
			speak.play();
			offScreenGraphics.drawImage(burst,rocket2_x,rocket2_y,rocket2_x+150,rocket2_y+150,0,0,100,140,this);
			rocket2_y=720;
		 }
	    else if(rocket2_y<-20||rocket2_x>getSize().width+20)
		   {
	        rocket2_y=720;
			rocket2_x=350;
            rocket2_y-=speed_p_y;
			rocket2_x+=10;
            offScreenGraphics.drawImage(rocket2,rocket2_x,rocket2_y,rocket2_x+100,rocket2_y+150,0,0,160,140,this);
			}
			else{
			rocket2_y-=speed_p_y;rocket2_x+=10;
			offScreenGraphics.drawImage(rocket2,rocket2_x,rocket2_y,rocket2_x+100,rocket2_y+150,0,0,160,140,this); 
			}
	if(role_x >= rocket3_x&&role_x<=rocket3_x+100&&role_y >= rocket3_y&&role_y <= rocket3_y+150)
		 {
		   
			speak.play();
			offScreenGraphics.drawImage(burst,rocket3_x,rocket3_y,rocket3_x+150,rocket3_y+150,0,0,100,140,this);
			rocket3_y=720;
		 }                  
	    else if(rocket3_y<-20||rocket3_x<-20){
	        rocket3_y=720;
			rocket3_x=350;
            rocket3_y-=speed_p_y;
			rocket3_x-=10;
            offScreenGraphics.drawImage(rocket3,rocket3_x,rocket3_y,rocket3_x+100,rocket3_y+150,0,0,160,140,this);
			}
			else{
			rocket3_y-=speed_p_y;rocket3_x-=10;
			offScreenGraphics.drawImage(rocket3,rocket3_x,rocket3_y,rocket3_x+100,rocket3_y+150,0,0,160,140,this); 
			}                                    
           //把次画面渲染到主画面上去
            g.drawImage( offScreen, 0, 0, this );   
         }//else
      try
		{
			Thread.sleep(100);
		}
		catch (InterruptedException E){}
        repaint();
   }
 

/*改写Applet的update()方法*/
    public void update( Graphics g )
	{
        paint(g);
    }
}

⌨️ 快捷键说明

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