仿写:《飞翔的小鸟》游戏代码部分

代码部分


简单论述:代码注释可能有点乱,里面有些参数是可以改变的,例如:计分的坐标,窗口的大小等。一共有三个状态,可以添加状态和功能。期待一起交流。资料归本人解释所有。

主页类

package cn.ayxy;

import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.concurrent.ForkJoinPool.ManagedBlocker;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class BirdGame extends JPanel{
   
    //启动飞翔的小鸟游戏的方法  
    /*声明变量*/
    Bird bird;//鸟类
    Column column1;//柱子类1 前一根
    Column column2;//柱子类2 后一根
    Ground groud;//地面类
    BufferedImage background;//创建BufferedImage对象    
    int score;//分数
    boolean gameOver;//判断是否结束
    BufferedImage gameOverImage;//背景图片
    //游戏结束属性
    int state;//游戏的状态
    //公开的权限 (访问权限)  静态不可改变的  常量变量名 一定要大写
    public static final int START = 0;//游戏初始状态
    public static final int RUNNING = 1;//
    public static final int GAME_OVER = 2;//游戏结束状态
    //游戏属性图片
    BufferedImage stateImage;


    public static void main(String[] args) throws Exception {   //有个抛出异常Exception
        /*创建一个窗体*/
        JFrame frames = new JFrame("NineFruit");//加入字符串 给窗口一个名字         
        BirdGame game = new BirdGame();//
        frames.add(game);//把画放入画框
        //设置窗体大小
        frames.setSize(440,670);        
        //设置窗口显示中间
        frames.setLocationRelativeTo(null);
        //用户关闭窗口时,做的操作
        frames.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        /*setDefaultCloseOperation();是用来设定窗口被关闭时(比如点击了右上角的”x”)的行为。
        EXIT_ON_CLOSE:结束窗口所在的应用程序。在窗口被关闭的时候会退出JVM。*/
        //设置窗口显示
        frames.setVisible(true);
        //地面动起来
        game.action();
    }
    //地面移动
            public void action()throws Exception{
  //移动方法 地面
                //写一个监听事件
                MouseListener l = new MouseAdapter() {
                    //鼠标按下的方法  void表示没有返回值
                    @Override
                    public void mousePressed(MouseEvent e) {
                        // 获得点击
                        //bird.flappy();//调用鸟类的飞翔
                        //抛出异常 抛给 Java编译器 自己处理
                        try {
                            switch (state) {
                            case GAME_OVER://结束状态
                                //二次赋值  容器
                                column1 = new Column(
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值