java简单实现桌球滚动效果

 更新时间:2019年10月28日 12:15:18   作者:@future  
这篇文章主要为大家详细介绍了java简单实现桌球滚动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了java实现桌球滚动效果的具体代码,供大家参考,具体内容如下

package pers.javacode.lzw.ballgame;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.JFrame;

public class BallGame extends JFrame {
 //加载图片
 Image ball=Toolkit.getDefaultToolkit().getImage("images/ball.png");
 Image desk=Toolkit.getDefaultToolkit().getImage("images/desk.jpg");
 
 public void frameLunch()
 {
 this.setSize(856,500);
 this.setLocation(50,50);
 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 this.setVisible(true);
 while(true)
 {
 repaint();
 try {
 Thread.sleep(40);
 } catch (InterruptedException e) {
 
 e.printStackTrace();
 }
 }
 
 }
 double x=100;
 double y=100;
 double degree=3.14/4;//对应的是60度
 public void paint(Graphics g)
 {
 
 g.drawImage(desk,0,0,null);
 g.drawImage(ball,(int)x,(int)y,null);
 //创建动态的小球滚动的状态
 x = (x+ 10*Math.cos(degree));
  y = y +10*Math.sin(degree); 
  
  //碰到上下边界
  if(y>500-40-30||y<40+40){//500是窗口高度;40是桌子边框,30是球直径;最后一个40是标题栏的高度
  degree = -degree;
  }
  
  //碰到左右边界
  if(x<40||x>856-40-30){
  degree = 3.14 - degree;
  }
 
 
 }
 public static void main(String[] args) {
 BallGame ba=new BallGame();
 ba.setTitle("Ball Game");
 ba.frameLunch();
 }

 
}

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java中不可或缺的关键字volatile详析

    Java中不可或缺的关键字volatile详析

    volatile是Java提供的一种轻量级的同步机制,下面这篇文章主要给大家介绍了关于Java中不可或缺的关键字volatile的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • IntelliJ IDEA中如何构建Spring Boot的项目

    IntelliJ IDEA中如何构建Spring Boot的项目

    这篇文章主要介绍了IntelliJ IDEA中如何构建Spring Boot的项目问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Java内存区域和内存模型讲解

    Java内存区域和内存模型讲解

    今天小编就为大家分享一篇关于Java内存区域和内存模型讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • spring boot整合quartz实现多个定时任务的方法

    spring boot整合quartz实现多个定时任务的方法

    这篇文章主要介绍了spring boot整合quartz实现多个定时任务的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • springboot集成PageHelper分页失效的原因及解决

    springboot集成PageHelper分页失效的原因及解决

    项目启动初期,在集成mybatis的分页插件,自定义封装了一个分页的工具类,方便后期项目的扩展,结果无法分页了,怎么设置搞都没办法正常分页,所以本文将给大家介绍一下springboot集成PageHelper分页失效的原因及解决,需要的朋友可以参考下
    2023-10-10
  • Java子类对象的实例化过程分析

    Java子类对象的实例化过程分析

    这篇文章主要介绍了Java子类对象的实例化过程,结合具体实例形式分析了java子类对象的实例化的步骤、原理、实现方法,需要的朋友可以参考下
    2019-09-09
  • Java如何通过jstack命令查询日志

    Java如何通过jstack命令查询日志

    在分析线上问题时常使用到jstack <PID>命令将当时Java应用程序的线程堆栈dump出来,面对jstack 日志,我们如何查看?下面小编给大家介绍下Java如何通过jstack命令查询日志,感兴趣的朋友一起看看吧
    2023-03-03
  • SpringBoot Controller接收参数的几种常用方式

    SpringBoot Controller接收参数的几种常用方式

    这篇文章主要介绍了SpringBoot Controller接收参数的几种常用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 浅谈Spring Boot中Redis缓存还能这么用

    浅谈Spring Boot中Redis缓存还能这么用

    这篇文章主要介绍了浅谈Spring Boot中Redis缓存还能这么用,这种方式是Spring Cache提供的统一接口,实现既可以是Redis,也可以是Ehcache或者其他支持这种规范的缓存框架,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • SpringBoot3 Spring WebFlux简介(推荐)

    SpringBoot3 Spring WebFlux简介(推荐)

    SpringWebFlux是Spring Framework 5中引入的响应式Web框架,用于支持非阻塞异步通信和响应式流处理,与传统的SpringMVC相比,WebFlux提供了完全异步非阻塞的编程模型,适用高并发、微服务架构和实时数据流,本文介绍SpringBoot3 Spring WebFlux简介,感兴趣的朋友一起看看吧
    2024-10-10

最新评论