package
tn;
import
javax.imageio.ImageIO;
import
javax.swing.*;
import
java.awt.*;
import
java.awt.event.KeyEvent;
import
java.awt.event.KeyListener;
import
java.awt.image.BufferedImage;
import
java.io.File;
import
java.io.IOException;
import
java.util.ArrayList;
import
java.util.List;
import
java.util.Random;
/**
* 继承窗体面板的图片
*/
@SuppressWarnings
(
"all"
)
public
class
GamePanl
extends
JPanel
implements
KeyListener {
BufferedImage image;
Graphics2D g2;
kLong klong;
boolean
finish =
false
;
static
final
int
FRESH =
10
;
BackgroundImage background;
List<object> list =
new
ArrayList<object>();
int
addObjectTimer =
0
;
object ob=
new
object();
int
score=
0
;
int
addScoreTimer=
0
;
public
GamePanl() {
image =
new
BufferedImage(
734
,
286
, BufferedImage.TYPE_INT_BGR);
g2 = image.createGraphics();
klong =
new
kLong();
background =
new
BackgroundImage();
list.add(
new
object());
FreshThread t =
new
FreshThread(
this
);
t.start();
}
private
void
painImage() {
klong.move();
background.roll();
g2.drawImage(background.image,
0
,
0
,
this
);
g2.drawImage(background.image_yun, background.x_yun,background.y_yun,
this
);
g2.drawImage(klong.image, klong.x, klong.y,
this
);
if
(addObjectTimer >=
1400
) {
list.add(
new
object());
addObjectTimer =
0
;
}
for
(
int
i =
0
; i < list.size(); i++) {
object o = list.get(i);
o.move();
o.bridMove();
g2.drawImage(o.image, o.x, o.y,
this
);
if
(o.bounds().intersects(klong.bounds1()) || o.bounds().intersects(klong.bounds2())){
gameOver();
}
}
if
(addObjectTimer>=
50
){
score+=
1
;
addScoreTimer=
0
;
}
g2.drawString(String.format(
"%05d"
,score),
600
,
35
);
g2.drawString(
"Hi"
,
536
,
35
);
g2.drawString(String.format(
"%05d"
,+MainFrame.topScore),
550
,
35
);
addObjectTimer += FRESH;
addScoreTimer +=FRESH;
}
public
void
gameOver(){
finish=
true
;
g2.drawImage(background.image_over,background.x_over,background.y_over,
null
);
if
(score>MainFrame.topScore){
MainFrame.topScore=score;
}
}
@Override
public
void
paint(Graphics g) {
painImage();
g.drawImage(image,
0
,
0
,
this
);
}
public
boolean
isFinish() {
return
finish;
}
@Override
public
void
keyTyped(KeyEvent e) {
}
@Override
public
void
keyPressed(KeyEvent e) {
int
code = e.getKeyCode();
if
(code == KeyEvent.VK_SPACE) {
klong.jump();
}
}
@Override
public
void
keyReleased(KeyEvent e) {
}
}