java程序实现小球来回运动
来源:互联网 发布:网络语言tnt是什么意思 编辑:程序博客网 时间:2024/05/16 17:54
java基础:窗口右上角有一个静小白球,左下角有一个动小蓝球,我们让动小蓝球去找静小白球,找到以后动小蓝球在原路返回,这样来回运动。背景是下雪场景。
import java.awt.Component;import javax.swing.JFrame;public class MyStarFrame { //给私有化JFrame起一个名称,名叫frame private JFrame frame; //给私有化MyStarPanel起一个名称,名叫msp(画板类) private MyStarPanel msp; //给私有化Thread起一个名称,名叫t(让小球动起来) private Thread t; //showMe方法 public void showMe(){ //定义JFrame对象 frame = new JFrame(); //定义MyStarPanel对象 msp = new MyStarPanel(); //将msp(画板)添加到窗口中去 frame.add(msp); //画板调用MyPanel方法,产生随机数(星星) msp.MyPanel(); //定义Thead对象,与msp关联 t = new Thread(msp); //动起来 t.start(); //设置窗口的大小(宽和高) frame.setSize(700, 700); //窗口标题 frame.setTitle("下雪的练习"); //默认关闭操作 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //可视化 frame.setVisible(true); } public static void main(String[] args) { //实例化 MyStarFrame msf = new MyStarFrame(); //调用showMe方法(显示在窗口上) msf.showMe(); }}
import java.awt.Color;import java.awt.Graphics;import javax.swing.JPanel;/* * extends JPanel 继承 * implements Runnable 接口方法(目的是让其动起来,下边有个run()方法会用到) * */public class MyStarPanel extends JPanel implements Runnable{ //定义雪花数组,量为300 int[] x = new int[300]; int[] y = new int[300]; //定义动球的初坐标 int x1 = 0; int y1 = 600; //定义小球动的方向,0为左下,1为右上 int att=0; //构造函数,在画板上随机产生300个雪花 public void MyPanel(){ for(int i=0;i<300;i++){ x[i] = (int)(Math.random()*700); y[i] = (int)(Math.random()*700); } } //定义paint方法(画星星、球) public void paint(Graphics g){ //调用paint方法 super.paint(g); //设置背景颜色为黑色 this.setBackground(Color.black); //设置画笔颜色为白色(作用于右上角的白球) g.setColor(Color.WHITE); //画实心球(右上角的白球,参数分别为x,y,white,height) g.fillOval(600, 0, 50, 50); //设置画笔颜色为蓝色(作用于左下角动的蓝球) g.setColor(Color.blue); //画动球(这里为什么用x1,y1?想象一下) g.fillOval(x1, y1, 50, 50); //设置画笔颜色为白色(为什么老是设置画笔的颜色?想一下吧) g.setColor(Color.WHITE); //循环画出300个随机的星星(雪花也行,都是*) for(int i=0;i<300;i++){ g.drawString("*", x[i], y[i]); } } //使用线程(动力) public void run(){ while(true){ //定义飞行轨迹 if(att==0){ x1--; y1++; } if(att==1){ x1++; y1--; } //try catch(异常处理)是配套的,不要问为什么,这是规定 try{ //改变飞行轨迹 if(y1<0){ att=0; } if(x1<0){ att=1; } //雪花(星星)下落,消失一个,就随机产生一个,始终有300个显示在窗口上 for(int i=0;i<300;i++){ //下落 y[i]++; //如果超出下届则重新从上界下落 if(y[i]>700){ y[i]=0; } } //设置睡眠(下落速度,数越大越慢) Thread.sleep(10); }catch(Exception e){} //重画 repaint(); } }}
阅读全文
0 0
- java程序实现小球来回运动
- 编写程序实现demo.exe演示笑脸小球运动效果
- java小程序--10个运动的小球
- java swing实现小球沿正弦曲线运动的代码
- java swing实现小球沿正弦曲线运动的代码
- Android实现小球一直运动
- Promise实现小球的运动
- 自定义控件二:实现来回摆动的小球
- 【UE4 shader】利用worldpositionoffset实现小球来回蹦
- 小球运动
- js实现小球抛物线轨迹运动的两种方式
- JavaScript实现小球运动撞击效果,模仿气泡屏保
- Java实验(20) 沿正弦曲线运动的小球
- 改变小球运动方向
- 物理模拟小球运动
- 《运动的小球》开启
- 小球运动Android xml
- 小球运动Android MainActivity
- 八大排序算法的Python实现
- 处理utf-8不能编译的中文注释
- 线程监控
- the thinking and solving of local storage problem
- RecyclerView多条目模版
- java程序实现小球来回运动
- Continue语句
- vue项目创建
- Qt 仿QQ图片浏览器
- 总结学习
- java研发微博营销
- C
- 【备忘】年薪50万2017年最新北风网Spark2.0从入门到精通教程
- 外星人入侵游戏(Python3)