当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

基于Java的动画编程底子(一)[Java编程]

赞助商链接



  本文“基于Java的动画编程底子(一)[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

基本技术:

在Java中实现动画有很多种办法,但它们实现的基本原理是一样的,即在屏幕上画出一系列的帧来造成运动的感受.

我们先构造一个程序的框架,再渐渐扩大,使之功效对比齐备.

利用线程:

为了每秒中多次更新屏幕,必须成立一个线程来实现动画的循环,这个循环要跟踪当前帧并呼应周期性的屏幕更新要求.实现线程的办法有两种,你可以成立一个类Thread的派生类,或附和在一个Runnable的界面上.

一个简单犯的错误是将动画循环放在paint()中,这样占据了主AWT线程,而主线程将负责全部的画图和事件处理.

一个框架applet以下:

public
  class Animator1 extends java.applet.Applet implements Runnable {
   int frame;
   int delay;
   Thread animator;
   public void init() {
    String str = getParameter("fps");
    int fps = (str != null) ? Integer.parseInt(str) : 10;
    delay = (fps > 0) ? (1000 / fps) : 100;
   }
   public vois start() {
    animator = new Thread(this);
    animator.start();
   }
   public void run() {
    while (Thread.currentThread() == animator) {
     repaint();
     try {
      Thread.sleep(delay);
     } catch (InterruptedException e) {
      break;
     }
    frame++;
   }
  }
  public void stop() {
   animator = null;
  }
 }

在你的HTML文件中这样引用:

<applet code=Animator1.class width=200 height=200>
<param name=fps value=200>
</applet>

上面的参数fps表示每秒的帧数

保持恒定的帧速度:

上例中,applet只是在每两帧之间休眠一个固定的时间,但这有些缺陷,有时你会等很长时间,为了每秒显示十帧图象,不该该休眠100毫秒,因为在运行当中也耗费了时间.

这里有一个简单的补偿办法:

public void run() {
long tm = System.currentTimeMillis();
while (Thread.currentThread() == animator) {
repaint();
try {
tm += delay;
Thread.sleep(Math.max(0,tm -
System.currentTimeMillis()));
} catch (InterruptedException e) {
break;
}
frame++;
}
}


  以上是“基于Java的动画编程底子(一)[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>基于java的图片文件格局转换和线性缩放</b>
  • 基于Java 2运行时安全模子的线程合作
  • 深化浅出基于Java的责任链情势
  • 深化浅出基于Java的制作筹划情势
  • 操纵SWT开辟基于Java的图形用户界面
  • 深化浅出基于Java的代理筹划情势
  • 构建自己的基于Java的超级计算机
  • 基于Java的IDEA加密算法根究
  • 基于Java的UDP协议程序筹划初探
  • 基于Java的动画编程底子(一)
  • 基于Java的动画编程底子(二)
  • 深化浅出基于Java的注释器筹划情势
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .