栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java黄金矿工 17.积分设置

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java黄金矿工 17.积分设置

package com.sxt;

import java.awt.*;

//创建Object类来存放金块和石块的相同属性
public class Object
{
    //坐标
    int x;
    int y;
    //宽高
    int width;
    int height;
    //图片
    Image img;
    //创建标记flag用于修改BUG金块同时消失
    boolean flag;
    //质量
    int m;
    //定义绘制方法
    //定义积分
    int count;
    void paintSelf(Graphics g)
    {
        g.drawImage(img,x,y,null);
    }
    //用Getter方法来获取宽度

    public int getWidth() {
        return width;
    }
    //获取矩形
    public Rectangle getRec(){
        return new Rectangle(x,y,width,height);
    }
}
package com.sxt;

import java.awt.*;

//创建Object类来存放金块和石块的相同属性
public class Gold extends Object{
    Gold()
    {
        //坐标
        this.x=(int)(Math.random()*700);
        this.y=(int)(Math.random()*550+300);
        //宽高
        this.width=52;
        this.height=52;
        //设置标记
        this.flag=false;
        //设置质量
        this.m=30;
        this.count=4;
        //图片
        this.img= Toolkit.getDefaultToolkit().getImage("imgs/gold1.gif");
    }
}
//生成小金块,重置参数
class GoldMini extends Gold
{
    GoldMini()
    {
        this.width=36;
        this.height=36;
        this.m=15;
        this.count=2;
        this.img= Toolkit.getDefaultToolkit().getImage("imgs/gold0.gif");
    }
}
//生成小金块,重置参数
class GoldPlus extends Gold
{
    GoldPlus()
    {
        //重置x
        this.x=(int)(Math.random()*650);
        this.width=105;
        this.height=105;
        this.m=15;
        this.count=8;
        this.img= Toolkit.getDefaultToolkit().getImage("imgs/gold2.gif");
    }
}



package com.sxt;

import java.awt.*;

public class Rock extends Object {
    Rock()
    {
        //坐标
        this.x=(int)(Math.random()*700);
        this.y=(int)(Math.random()*550+300);
        //宽高
        this.width=71;
        this.height=71;
        //设置标记
        this.flag=false;
        //设置质量
        this.m=50;
        this.count=1;
        //图片
        this.img= Toolkit.getDefaultToolkit().getImage("imgs/rock1.png");
    }
}
package com.sxt;

import java.awt.*;

public class Line {
    //起点坐标,保证线左右摇摆时起点不变,仅是终点坐标改变
    int x=380;
    int y=180;
    //终点坐标
    int endx=500;
    int endy=500;
    //定义线长length,角度n,方向dir
    double length=100;
    //定义线最大值
    double MAX_length=750;
    //定义线最小值
    double MIX_length=100;
    double n=0;
    int dir=1;
    //定义状态 0摇摆 1延长 2收回 3抓取放回
    int state;
    //添加钩爪
    Image hook=Toolkit.getDefaultToolkit().getImage("imgs/hook.png");
    //用有参构造方法来接收窗口GameWin中元素
    GameWin frame;
    Line(GameWin frame)
    {
        this.frame=frame;
    }

    //设置碰撞判断
    void logic()
    {
        //用for来遍历元素
        for (Object obj: this.frame.objectList)
        {
            if (endx>obj.x&&endxobj.y&&endy0.9){dir=-1;}
                //让n变化来实现线的移动,同时线的终点坐标也要发生变化
                n=n+0.005*dir;
                lines(g);
                break;
            case 1:
                //实现线的延长
                if (lengthMIX_length)
                {
                    length=length-5;
                    lines(g);
                }
                else
                {
                    state=0;      //线变短后要变回摇摆状态;
                }
                break;
                //实现抓取放回,线返回,金块也要接着放回
            case 3:
                //创建临时变量m
                int m=1;
                if (length>MIX_length)
                {
                    length=length-5;
                    lines(g);
                    for (Object obj:this.frame.objectList)
                    {
                        //加入flag为true,则返回,flase不返回
                        if (obj.flag)
                        {

                            //传入质量
                            m=obj.m;
                            obj.x=endx-obj.getWidth()/2;      //金块要随着线返回  //获取宽度
                            obj.y=endy;
                            if (length<=MIX_length)
                            {

                                //金块返回后要消失
                                obj.x=-150;      //金块要随着线返回
                                obj.y=-150;
                                state=0;      //线变短后要变回摇摆状态;
                                //再改变flag标记
                                obj.flag=false;
                                Bg.count+=obj.count;
                            }
                        }

                    }


                }
                //用质量来判断刷新率
                try {
                    Thread.sleep(m);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                break;

            default:

        }
        //判断方向,让它一只在1,2,象限移动

    }
}
package com.sxt;

import java.awt.*;

public class Bg {        //构造背景类
    //设置积分
    static int count=0;
    Image bg=Toolkit.getDefaultToolkit().getImage("imgs/bg.jpg");  //存入图片进bg
    Image bg1=Toolkit.getDefaultToolkit().getImage("imgs/bg1.jpg");  //存入图片进bg1
    Image peo=Toolkit.getDefaultToolkit().getImage("imgs/peo.png");   //存入图片进peo
    void panintSelf(Graphics g)       //构造paintSelf方法来实现图片的显示,Graphics是画笔,
    {
       g.drawImage(bg,0,200,null);    //绘画出bg
       g.drawImage(bg1,0,0,null);     //绘画出bg1
       g.drawImage(peo,310,50,null);    //绘画出peo
        //打印积分
        drawWord(g,30,Color.black,"积分"+count,30,150);
    }
    //创建打印字符串的方法
    public static void drawWord(Graphics g,int size,Color color,String str,int x,int y)
    {
        g.setColor(Color.BLACK);
        g.setFont(new Font("仿宋",Font.BOLD,30));
        g.drawString(str,x,y);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/362023.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号