分享

Java编程之动画制作

 编玩边学 2017-07-19

我们知道Java可以实现很多的功能,比如

1、Java可以做网站

  Java可以用来编写网站,现在很多大型网站都用Jsp写的,JSP全名Java Server Pages,它是一种动态网页技术。

2、 Java可以做Android

 Android是一种基于Linux的自由及开放源代码的操作系统,其源代码是Java。Java做安卓不单单是指系统,还有APP对于更多的开发人员来说,他们更多的时间是花在开发APP上面。

3、Java可以做游戏

 或者你不知道,在以前诺基亚还很流行的时候,你玩的手机游戏有90%以上都是Java开发的。电脑上也有java开发的游戏,最经典的是:《我的世界》(minecraft ,简称MC),当今世界最具人气和影响力的网络游戏之一《英雄联盟》(简称lol)。

4、Java可以做软件

 一般编程语言都可以做软件的,Java 也不例外,例如Eclipse,MyEclipse等知名Java开发工具.有关开发软件组件,可以了解Java Swing编程或者awt相关知识。

其实,Java还可以做出酷炫的小动画。下面,给大家贴出一个网上好玩的小动画(用Java编写的)。wg

上述动画,没有采用任何的图片,完全由画笔构造。气泡和鱼是随机生成并且可自由移动,乌龟也可以游来游去哦,你也可以拖动改变乌龟的位置。下面就来讲解一下代码。

1、 导入包(这部分常常会被大家忽略,其实这也是很重要的一部分)

这样在awt下定义的类、常量等你才可以使用

import java.awt.*;  
import java.awt.event.*;
import javax.swing.*;

2、 主函数

public static void main(String[] args) {
JFrame w=new JFrame("乌龟游啊游"); //创建一个窗体对象 
        w.setSize(1720, 768); //设置窗口大小 
        w.setBackground(Color.LIGHT_GRAY);  //设置背景颜色
        Mypan mp=new Mypan();  //新建画笔
        w.add(mp);   
        w.addMouseListener(mp);  
        w.addMouseMotionListener(mp);  
          
        w.addKeyListener(mp);  
        mp.addKeyListener(mp); 
        Thread ti=new Thread(mp);  新建一个进程
        ti.start(); 运行进程 
        w.show();  窗口显示
    }  
}  

3、 实现Mypan类

class Mypan extends JPanel implements Runnable,MouseListener,
MouseMotionListener,KeyListener{//这里要设置监听  
   int x=300;//乌龟的初始坐标  
    int y=100;  
    int[] m=new int[50];//气泡  
    int[] n=new int[50];  
    int[] q=new int[50];  
    int[] a=new int[300];//海水  
    int[] b=new int[300];  
    int[] c=new int[10];//金鱼  
    int[] d=new int[10];  
int f=0;//o就是右下,如果是1就是左下,2就是左上,3就是右上  
    Mypan(){  初始化
        for(int i=0;i<300;i++){//设置海浪的随机  
          
        }  
        for(int j=0;j<50;j++){//设置气泡的随机  
           
        }  
        for(int k=0;k<10;k++){//设置金鱼的随机  
            
        }  
    }  
    public void paintComponent(Graphics g){ 
// 实现paintComponent()函数
        super.paintComponent(g);  
        this.setBackground(Color.cyan);   
        for(int j=0;j<50;j++){//画气泡  
        }  
        for(int k=0;k<10;k++){//画金鱼            
        }            
        if(fan==true){  
       if(mov==true){  
   
            }
else{  //如果乌龟不动,设置乌龟的头 
   }  
  }
else{  
        }    
        if(fan==true){  
        if(mov==true){  

            }
else{
            }  
        }else{  
     
        }  
        if(fan==true){    
            if(mov==true){  
            }else{  
            }  
        }else{  
        }  
        if(fan==true){    
            if(mov==true){            
            }else{  
}
        }else{ 
        }  
       }
    public void run(){  //这段
        while(true){ 
         ga++;  
         if(ga>20){  
          ga=0;  
          f(mov==true){  
           mov=false;  
           }else {  
           mov=true;  
                }  
            }  
以下为控制乌龟方向。
            if(f==0){  
            x++;  
            y++;  
            }  
            if(f==1){  
                x--;  
                y++;  
            }  
           此处省略,,,,,,
            for(int i=0;i<300;i++){       
                a[i]--;  
                if(a[i]<0){  
                    a[i]=1720;  
                }  
            }  
            for(int j=0;j<50;j++){  
                n[j]--;  
                if(n[j]<2){  
                    n[j]=765;  
                }  
            }  
            for(int k=0;k<10;k++){  
                c[k]=c[k]+2;  
                if(c[k]>1720){  
                    c[k]=0;  
                }  
            }  
            try{  
            Thread.sleep(20);  休眠20秒
            }catch(Exception e){}  
            repaint();  重新绘制   
        }  
}

4、用到的方法和逻辑

(1)确定所需绘画工具,如画笔Mypan,窗口JFrame

(2)为窗口添加鼠标监听、键盘监听—addMouseListener()。

(3)启动进程绘制图画(包括气泡、小鱼、乌龟、水草)

其中气泡、小鱼利用随机函数给出位置信息和大小。

乌龟只需考虑移动时不出边框,并且在点击时变换效果

(4)显示窗口。 


以上内容就是本节Java教程的主要内容,感兴趣的同学一定要亲自动手做一下啊,你可以看到有趣的金鱼游动画面,想要完整代码的同学可以在评论区留言“金鱼完整代码”,老司机就会带你上路哦。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约