Java图形界面基础案例-飞行的小球

本文介绍了如何使用Java创建一个飞行的小球动画,通过改变Y轴坐标实现小球的下落效果。首先创建窗体,然后画出小球,接着通过while死循环不断重画小球实现动画效果。然而,由于不断的重画导致程序被循环占用,为了解决这个问题,文章引入了线程的概念,解释了线程的工作原理,并展示了如何在Java中创建线程来实现小球的平滑移动,最后讨论了线程与进程的区别。
摘要由CSDN通过智能技术生成

前面几次一直都在讲静物,做了乌龟,做了星星,有想法的coder们就在想怎么样才能让这些东西动起来呢,这也就是推动技术发展的动力,好在这次总算是给大家带来了能让物体动起来的技术,我们现在先不已前面的乌龟和星星为案例继续讲如何写运动的物体,还是先从最简单的物体开始,反正原理都一样,掌握了这个做其他的也会动,这次用一个小球作为案例的切入口

飞行的小球

好了,按照上一次讲的做法,首先我们要列出一个步骤出来,看了标题就知道现在要做一个可以飞行的小球。好的,让我们来大概写一下步骤:
1.先做一个窗体
2.然后就是要画一个小球
3.最后一步就是要实现让小球落下来
按照步骤先画出一个圆,这个代码已经写了这么多次,应该很熟熟练了,我就不详细说了,直接上代码了

    import java.awt.*;
public class MyBall {
   

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Frame w = new Frame();
        w.setSize(300, 400);

        MyOval mp = new MyOval();
        w.add(mp);

        w.show();
    }

}
class MyOval extends Panel{
   
    public void paint(Graphics g){
        g.fillOval(30, 30, 20, 20);
    }
}

出现如图所示的这样一个黑的实心圆
这里写图片描述
下一步,我们来看看如何实现动画,想想看怎么可以看到运动的小球。我们假设小球是从上往下运动,这也符合物理原理,一个小球自由落体的掉下来,那么我们试想一下,小球的运动轨迹就是一条垂直于你的窗体下边界的一条直线,我说过窗体里其实有一个笛卡尔坐标系,所有的点都有对应的坐标,既然运动轨迹是一条垂直于窗体下边界的直线,也就意味着改变的就是Y轴的数据,我告诉你屏幕的左上方是坐标原点,向下是正方向的Y坐标轴,向右是正方向的X坐标轴,这样一来,那小球下落的轨迹的点的Y值是不断增加的,搞清楚了原理,我们在想一个问题,怎么表示小球是自由落体呢,其实很简单,及时不断的重画小球,这种机械的事情人类不擅长做,直接交给电脑去完成。小球的Y坐标不断的增加,每增加一下,都抹去原有的小球,重画一个。还记得之前将的循环吗?循环可以不断实现增加,至于重画怎么实现,其实也简单,这次案例的最后我会讲述。先跟着我看一下下面这段代码

//主函数省略,和第一段代码的主函数一样
class MyOval extends Panel{
   
    public void paint(Graphics g){
        int x=30,y=30;
        while(true){
        g.fillO
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值