자바 벽돌 치기 게임 실현
원본 코드 는 모두 두 개의 파일 을 포함한다.
파일 1:playzhuankuai.java
import java.awt.*;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class play_zhuankuai extends JPanel implements Runnable{
boolean exit=false;
boolean end=false;
double x=100; //
double y=100;
double x1=300; //
double y1=300;
int score=0;
int index[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; // ,
int x2[]=new int[15]; //
int y2[]=new int[15];
double degree=3.14/3;
Image fangxing;
Image diban;
Image zhuankuai;
Image heiping;
Thread thread;
play_zhuankuai(){ //
jiazai();
thread = new Thread(this);
setSize(500,500);
setLocation(0,0);
setBackground(Color.black);
setVisible(true);
thread.start();
}
void jiazai(){ //
fangxing=Toolkit.getDefaultToolkit().getImage("images/ .jpg").getScaledInstance(10,10,Image.SCALE_DEFAULT);
diban=Toolkit.getDefaultToolkit().getImage("images/ .jpg").getScaledInstance(100, 10, Image.SCALE_DEFAULT);
zhuankuai=Toolkit.getDefaultToolkit().getImage("images/ .jpg").getScaledInstance(50, 20, Image.SCALE_DEFAULT);
heiping=Toolkit.getDefaultToolkit().getImage("images/ .png").getScaledInstance(50, 20, Image.SCALE_DEFAULT);
}
public void paintComponent(Graphics g){
super.paintComponent(g);
paint_zhuankuai(g);
g.setColor(Color.blue);
g.drawLine(0, 350, 500, 350);
g.drawImage(diban,(int)x1, (int)y1, null);
paint_heiping(g);
g.drawImage(fangxing, (int)x, (int)y, null);
paint_wenzi(g);
rule();
}
void rule(){
x=x+1*Math.cos(degree);
y=y+1*Math.sin(degree);
if(y>=500-50||score==1500){
end=true;
}
if(x>=500-20||x<=0)
degree=3.14-degree;
if(x1<=0)
x1=0;
if(x1>=400)
x1=400;
if(y1>=500-50)
y1=500-50;
if(y1<=350)
y1=350;
if(y>=y1-10&&x>=x1&&x<=x1+100||y<=0)
degree=-degree;
for(int i=0;i<x2.length;i++){
if((y>=y2[i]&&y<=y2[i]+20)&&((x>=x2[i]&&x<=x2[i]+50))&&index[i]==0){
index[i]=1;
degree=-degree;
score+=100;
}
}
}
void paint_heiping(Graphics g){
for(int i=0;i<x2.length;i++){
if(index[i]==1)
g.drawImage(heiping, x2[i], y2[i], null);
}
}
void paint_wenzi(Graphics g){
g.setColor(Color.red);
g.drawString(" :"+score, 0, 340);
if(end){
if(score<1500)
g.drawString(" !!!",200,250);
else
g.drawString(" !!!",200,250);
exit=true;
}
}
void paint_zhuankuai(Graphics g){
int p=0;
int k=0;
for(int i=0,j=0;i<x2.length;i++){
p=100*j;
j++;
if(p+100>500){
j=1;
p=0;
k=k+60;
}
x2[i]=p;
y2[i]=k;
g.drawImage(zhuankuai, p,k,null);
}
}
@Override
public void run() {
while(!exit){
repaint();
try {
Thread.sleep(5);
} catch (InterruptedException e) {
// TODO catch
System.out.println(" :"+e+"
");
}
}
}
}
파일 2:jframemain.java
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
@SuppressWarnings("serial")
public class jframe_main extends JFrame implements KeyListener{
play_zhuankuai play=new play_zhuankuai();
jframe_main(){
addKeyListener(this);
add(play);
setSize(500,500);
setLocation(0, 0);
setVisible(true);
}
public static void main(String[] args) {
new jframe_main();
}
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==38)
play.y1-=20;
if(e.getKeyCode()==40)
play.y1+=20;
if(e.getKeyCode()==37)
play.x1-=20;
if(e.getKeyCode()==39)
play.x1+=20;
}
@Override
public void keyReleased(KeyEvent e) {
}
}
우정 알림:이 단락 의 소스 코드 는 관련 이미지 소 재 를 호출 할 수 있 습 니 다.스스로 추가 하 십시오.본인 은 여기에 올 리 기 가 불편 합 니 다.양해 바 랍 니 다.더 많은 하 이 라이트 게임,주제 참조《자바 클래식 미니 게임》.
더 많은 재 미 있 는 클래식 게임 을 통 해 주 제 를 실현 하고 여러분 에 게 공유 합 니 다.
C++클래식 게임 모음
python 클래식 게임 모음
python 러시아 블록 게임 집합
JavaScript 클래식 게임 을 계속 합 니 다.
javascript 고전 게임 모음
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.