• 传世开服网
  • 首页
  • 新开传世游戏
  • 最新传奇世界
  • 传奇世界页游
  • 网页变态传世
default blue green orange red
主页 > 最新传奇世界 > > 正文

一个Java小球撞击墙面的小程序

  • import java.applet.*;

    public class OnlyChangeUpdate extends Applet implements Runnable

    {

    int X,Y,moveX,moveY,width,height;

    Thread newThread;

    public void init()

    {

    X=0;

    Y=0;

    moveX=20;

    moveY=20;

    width=getSize().width;

    height=getSize().height;

    setBackground(Color.black);

    }

    public void start()

    {

    newThread=new Thread(this);

    newThread.start();

    }

    public void stop()

    {

    newThread=null;

    }

    public void paint(Graphics g)

    {

    g.setColor(Color.white);

    g.fillOval(X,Y,15,15);

    }

    public void update(Graphics g)

    {

    paint(g);

    }

    public void run()

    {

    while(newThread !=null)

    {

    repaint();

    try

    {

    Thread.sleep(80);

    }

    catch(InterruptedException E){}

    X=X+moveX;

    Y=Y+moveY;

    if(X >= (width - 15))

    {

    X=width-15;

    moveX=-moveX;

    }

    if(X<=0)

    {

    X=0;

    moveX=-moveX;

    }

    if(Y>=(height-15))

    {

    Y=height-15;

    moveY=-moveY+5;

    }

    if(Y<=0)

    {

    Y=0;

    moveY=-moveY+5;

    }

    }

    }

    }

    关键是屏幕不能刷新,我已经认识到这点了

    后面讲到的双缓冲区可以解决的

    import java.awt.*;

    import java.applet.*;

    public class UseDoubleBuffering extends Applet implements Runnable

    {

    int X,Y,moveX,moveY,width,height;

    Thread newThread;

    Image OffScreen;

    Graphics drawOffscreen;

    public void init()

    {

    X=0;

    Y=0;

    moveX=2;

    moveY=3;

    width=getSize().width;

    height=getSize().height;

    OffScreen = createImage(width,height);

    drawOffscreen = OffScreen.getGraphics();

    }

    public void start()

    {

    newThread=new Thread(this);

    newThread.start();

    }

    public void stop()

    {

    newThread=null;

    }

    public void paint(Graphics g)

    {

    drawOffscreen.setColor(Color.black);

    drawOffscreen.fillRect(0,0,width,height);

    drawOffscreen.setColor(Color.white);

    drawOffscreen.fillOval(X,Y,15,15);

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

    }

    public void update(Graphics g)

    {

    paint(g);

    }

    public void run()

    {

    while(newThread !=null)

    {

    repaint();

    try

    {

    Thread.sleep(50);

    }

    catch(InterruptedException E){}

    X=X+moveX;

    Y=Y+moveY;

    if(X >= (width - 15))

    {

    X=width-15;

    moveX=-moveX;

    }

    if(X<=0)

    {

    X=0;

    moveX=-moveX;

    }

    if(Y>=(height-15))

    {

    Y=height-15;

    moveY=-moveY;

    }

    if(Y<=0)

    {

    Y=0;

    moveY=-moveY;

    }

    }

    }

    }

    用这个双缓冲区 就解决了

    ,新开变态传世

相关文章

  • 刘帅良新片彩球定情 演绎青涩感
  • 每日游戏一刻:比利时小姐内衣足
  • 父亲节丨童心与父爱的一超变态传
  • 经典回顾:小球时代的最后碰撞 "
  • 《小小星球大碰撞》第二关攻略
  • 一个Java小球撞击墙面的小程序
  • 《65535传奇世界》开跑!在欢声
  • 沈阳市大学生机器人大赛举行 机
  • 上海电力学院学子在2018中国工程
  • 第18届潍坊市青少年机器人大赛开
  • Copyright © 传世开服网 版权所有