• 大小: 972KB
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: Java
  • 标签: java  

资源简介

飞翔的小鸟java版源码,请使用eclipse导入运行!-----

资源截图

代码片段和文件信息

package com.tarena.bird;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.util.Random;

import javax.imageio.ImageIO;
import javax.swing.Jframe;
import javax.swing.JPanel;
 
public class BirdGame extends JPanel {
Bird bird;
Column column1 column2; 
Ground ground;
BufferedImage background;
/** 游戏结束状态 */
boolean gameOver;
BufferedImage gameOverImage;
/** 游戏开始状态 */
boolean started;
BufferedImage startImage;
//分数
int score;

Sound hitSound;
Sound flappySound;
Sound scoreSound;
Sound startSound;

/** 初始化 BirdGame 的属性变量 */
public BirdGame() throws Exception {
started = false;
startImage = ImageIO.read(
getClass().getResource(“start.png“));
gameOver = false;
gameOverImage = ImageIO.read(
getClass().getResource(
“gameover.png“));
score = 0;
bird = new Bird();
column1 = new Column(1);
column2 = new Column(2);
ground = new Ground();
background = ImageIO.read(
getClass().getResource(“bg.png“)); 

hitSound = new Sound(“hit.wav“);
flappySound = new Sound(“flappy.wav“);
scoreSound = new Sound(“score.wav“);
startSound = new Sound(“start.wav“);
}

/** “重写(修改)“paint方法实现绘制 */
public void paint(Graphics g){
g.drawImage(background 0 0 null);
g.drawImage(column1.image 
column1.x-column1.width/2 
column1.y-column1.height/2 null);
g.drawImage(column2.image 
column2.x-column2.width/2 
column2.y-column2.height/2 null);
//在paint方法中添加绘制分数的算法
Font f = new Font(Font.SANS_SERIF
Font.BOLD 40);
g.setFont(f);
g.drawString(““+score 40 60);
g.setColor(Color.WHITE);
g.drawString(““+score 40-3 60-3);

g.drawImage(ground.image ground.x 
ground.y null);
//旋转(rotate)绘图坐标系,是API方法
Graphics2D g2 = (Graphics2D)g;
g2.rotate(-bird.alpha bird.x bird.y);
g.drawImage(bird.image 
bird.x-bird.width/2 
bird.y-bird.height/2 null);
g2.rotate(bird.alpha bird.x bird.y);
//在paint方法中添加显示游戏结束状态代码
if(gameOver){
g.drawImage(gameOverImage00null);
}
if(! started){
g.drawImage(startImage 0 0 null);
}
 
//添加调试的方框
// g.drawRect(bird.x-bird.size/2 
// bird.y-bird.size/2 
// bird.size bird.size);
// g.drawRect(column1.x-column1.width/2 
// column1.y-column1.height/2 
// column1.width 
// column1.height/2-column1.gap/2);
// g.drawRect(column1.x-column1.width/2 
// column1.y+column1.gap/2 
// column1.width 
// column1.height/2-column1.gap/2);
}//paint方法的结束
//BirdGame中添加方法action()
public void action() throws Exception {
MouseListener l=new MouseAdapter(){
//Mouse 老鼠 Pressed按下
public void mousePressed(
MouseEvent e){
try{
if(gameOver){
synchronized(BirdGame.this){

评论

共有 条评论