版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28631165/article/details/53048353
这篇代码是看了一遍书之后写的,分享给像我一样爱好java,并在学习java 的同学们!欢迎大家指导,!
package com.ball;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Panel;
import javax.swing.JFrame;
/**
*@author WangKai
*@date : 2016年11月4日 下午6:01:50
*@description 小球撞墙和反弹
*/
public class HitBall {
public static void main(String[] args) {
JFrame myFrame = new JFrame("**小球撞墙**");
myFrame.setSize(700, 900);
MyPanel mv = new MyPanel();
myFrame.add(mv);
Thread th = new Thread(mv);
th.start();
myFrame.getContentPane().setBackground(Color.black); //设置背景颜色
myFrame.setVisible(true);
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class MyPanel extends Panel implements Runnable{
int x=30;
int y=60;
int att = 0; //存储方向
public void paint (Graphics g){
g.setColor(Color.yellow);
g.fillOval(x, y, 50, 50);
}
@Override
public void run() {
while(true){
if(att==0){ //右下
x++;
y++;
}
if(att==1){ //左下
x--;
y++;
}
if(att==2){ //左上
x--;
y--;
}
if(att==3){ //右上
x++;
y--;
}
//改变飞行姿态
if(x>635){ //窗口的宽减去小球的宽,再稍微调整大小,使小球的刚好碰到窗口的边界
if(att==0){
att=1;
}else{
att=2;
}
}
if(y>823){<span style="white-space:pre"> </span>
if(att==1){
att=2;
}else{
att=3;
}
}
if(x<0){
if(att==2){
att=3;
}else{
att = 0;
}
}
if(y<0){
if(att==3){
att=0;
}else{
att=1;
}
}
try{
Thread.sleep(10);
}catch(Exception e){}
repaint();
}
}
}