zoukankan      html  css  js  c++  java
  • 课设黄金矿工小游戏

    1.团队名称、团队成员介绍

    团名:随便敲敲

    陈垚嘉(组长)

    郑俊佳(组员)

    2.项目git地址

    陈垚嘉git

    郑俊佳git

    3.项目git提交记录截图(每个人)

    4.项目功能架构图与主要功能流程图

    5.UML类图

    6.项目运行截图



    7.关键代码

    1.图形界面

     Image offScreenImage;
        @Override
        public void paint(Graphics g) {
            offScreenImage = this.createImage(768,1000);
            Graphics gImage = offScreenImage.getGraphics();
    
            bg.paintSelf(gImage);
            if(state==1){
                //绘制物体
                for(Object obj:objectList)
                {
                    obj.paintSelf(gImage);
                }
                line.paintSelf(gImage);
            }
            g.drawImage(offScreenImage,0,0,null);
        }
    

    2.线的移动以及物体的移动以及得分

    void paintSelf(Graphics g){
            logic();
            switch (state){//左右摇摆,n为角度的百分比
                case 0:
                    if(n<0.1){ dir = 1;}
                    else if (n>0.9){dir = -1;}
                    n=n+0.005*dir;
                    lines(g);
                    break;
                case 1:
                    if(length<=MAX_length){//伸长
                        length=length+5;
                        lines(g);
                    }else {state=2;}
                    break;
                case 2:
                    if(length>=MIN_length){//返回
                        length=length-5;
                        lines(g);
                    }else {
                        state=0;
                    }
                    break;
                case 3://抓取返回
                    int m=1;
                    if(length>=MIN_length){
                        length=length-5;
                        lines(g);
                        for(Object obj:this.frame.objectList){
                            if(obj.isFlag()){
                                m=obj.getM();
                                obj.setX(endx-obj.getWidth()/2);
                                obj.setY(endy);
                                if(length<=MIN_length){
                                    obj.setX(-150);
                                    obj.setY(-150);
                                    obj.setFlag(false);
                                    //加分
                                    Bg.setCount(Bg.getCount()+obj.getCount());
                                    Bg.setWaterFlag(false);
                                    state=0;
                                }
                                if(Bg.isWaterFlag()){
                                    if(obj.getType()==1){
                                        //金块
                                        m=1;
                                    }else if(obj.getType()==2){
                                        //石块
                                        obj.setX(-150);
                                        obj.setY(-150);
                                        obj.setFlag(false);
                                        Bg.setWaterFlag(false);
                                        state=2;
                                    }
                                }
                            }
                        }
                    }
                    try {
                        Thread.sleep(m);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    break;
    
                    default:
            }
        }
    

    3.关卡变化

    public void nextLevel(){
            if(bg.gameTime() && state==1){
                if(Bg.getCount() >= bg.getGoal())
                {
                    if(Bg.getLevel()==5){state=4;}
                    else {
                        state=2;
                        Bg.setLevel(Bg.getLevel()+1);
    
                    }
                }else {state=3;}
                dispose();
                GameWin gameWin1 = new GameWin();
                gameWin1.launch();
            }
    
        }
    

    .勾爪与物体的碰撞检测

    void logic(){
            for(Object obj:this.frame.objectList){
                if(endx>obj.getX() && endx<obj.getX()+obj.getWidth()
                        && endy>obj.getY() && endy< obj.getY()+obj.getHeight()){
                    state=3;
                    obj.setFlag(true);
                }
            }
    
        }
    

    8.尚待改进或者新的想法

    没有数据库,没有用户登录,只有石块和金块也显得单调

    9组员任务分配

    陈垚嘉(组长):图形界面的绘制,勾爪的摇摆伸缩抓取,物体的绘制及重量体现
    郑俊佳:积分设置,物品设置,关卡设置,游戏状态的设置,商店购物

  • 相关阅读:
    I NEED A OFFER!
    水题 Codeforces Round #303 (Div. 2) A. Toy Cars
    模拟 HDOJ 5099 Comparison of Android versions
    模拟 HDOJ 5095 Linearization of the kernel functions in SVM
    贪心 HDOJ 5090 Game with Pearls
    Kruskal HDOJ 1863 畅通工程
    Kruskal HDOJ 1233 还是畅通工程
    并查集 HDOJ 1232 畅通工程
    DFS/并查集 Codeforces Round #286 (Div. 2) B
    水题 Codeforces Round #286 (Div. 2) A Mr. Kitayuta's Gift
  • 原文地址:https://www.cnblogs.com/jioky/p/15782794.html
Copyright © 2011-2022 走看看