package game;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class ballGame extends Frame {
Image image = Toolkit.getDefaultToolkit().getImage("picture/bg.jpg");// 这种图片加载方法为什么要 先最小化窗口然后才会显示图片呢??????????
private double degree;
private double speed = 100;
public void paint(Graphics g) {
g.drawImage(image, 0, 0, null);
g.drawImage(image1, (int) x, (int) y, null);
// x=300+100*Math.cos(degree);
// y=300+50*Math.sin(degree); //太阳沿着椭圆轨迹运动
x += speed * Math.cos(degree);
y += speed * Math.sin(degree);
if (speed > 0) {
speed -= 0.1;// 相当于屋里里面的摩擦系数,,最后会停止下来
}
if (speed < 0) {
speed = 0;
}
if (x > 800) {
degree = Math.PI - degree;
}
if (x < 0) {
degree = Math.PI - degree;
}
if ((y > 800) || (y < 30)) {
degree = -degree;
}
degree += 0.1;
// x+=2;
// y+=2;
}
void lunchFrame() {
setSize(800, 800);
setLocation(50, 50);
setTitle("我是小帅哥");
// setBackground(Color.WHITE);
setVisible(true);
new PaintThread().start();
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
new ballGame().lunchFrame();
}
class PaintThread extends Thread {
public void run() {
while (true) {
repaint();
try {
Thread.sleep(40);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class ballGame extends Frame {
Image image = Toolkit.getDefaultToolkit().getImage("picture/bg.jpg");// 这种图片加载方法为什么要 先最小化窗口然后才会显示图片呢??????????
Image image1 = Toolkit.getDefaultToolkit().getImage("picture/sun.jpg");// 这种图片加载方法为什么要 先最小化窗口然后才会显示图片呢??????????
/**
* 请问有哪些加载图片的方法呢?(加载的图片在创建的窗口中显示),,哪一种是最常用的并且最好呢?
*/
private double degree;
private double speed = 100;
public void paint(Graphics g) {
g.drawImage(image, 0, 0, null);
g.drawImage(image1, (int) x, (int) y, null);
// x=300+100*Math.cos(degree);
// y=300+50*Math.sin(degree); //太阳沿着椭圆轨迹运动
x += speed * Math.cos(degree);
y += speed * Math.sin(degree);
if (speed > 0) {
speed -= 0.1;// 相当于屋里里面的摩擦系数,,最后会停止下来
}
if (speed < 0) {
speed = 0;
}
if (x > 800) {
degree = Math.PI - degree;
}
if (x < 0) {
degree = Math.PI - degree;
}
if ((y > 800) || (y < 30)) {
degree = -degree;
}
degree += 0.1;
// x+=2;
// y+=2;
}
void lunchFrame() {
setSize(800, 800);
setLocation(50, 50);
setTitle("我是小帅哥");
// setBackground(Color.WHITE);
setVisible(true);
new PaintThread().start();
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
new ballGame().lunchFrame();
}
class PaintThread extends Thread {
public void run() {
while (true) {
repaint();
try {
Thread.sleep(40);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}