java练习题——简易的桌球游戏

第一个练习题,只能观赏。

import java.awt.*;
import javax.swing.*;
public class BallGame extends JFrame{
 
 Image ball =Toolkit.getDefaultToolkit().getImage("img1/ball.png");
 Image desk =Toolkit.getDefaultToolkit().getImage("img1/desk.jpg");
 double x=100;//小球的横坐标
 double y=100;//小球的纵坐标
 double degree = 3.14/3;//弧度:60°
 
 //画窗口的方法
 public void paint(Graphics g) {
  System.out.println("窗口被画了一次!");
  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-30-40||y<40+40) {//500是窗口高度;40是桌子边框,30是球直径;最后一个40是标题栏
   degree = -degree;
  }
  //左右边界
  if(x<0||x>856-40-30) {
   degree = 3.14-degree;
  }
  
 }
 
 //窗口加载
 void launchFrame() {
  setSize(856,500);
  setLocation(50,50);
  setVisible(true);
  
  //重画窗口
  while(true){
   repaint();
   try {
    Thread.sleep(40);//40ms,1s=1000毫秒,大约一秒画25次窗口
   }catch(Exception e) {
    e.printStackTrace();
   }
  }
  
 }
 public static void main(String[] args) {
  System.out.println("你好");
  BallGame game = new BallGame();
  game.launchFrame();
 }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值