Java Swing制作大鱼吃小鱼魔改版本

《大鱼吃小鱼》这款游戏的历史渊源可以追溯到休闲游戏的兴起和发展。在游戏的早期发展阶段,开发者们开始探索各种简单而有趣的游戏玩法,以吸引玩家的注意力。在这样的背景下,《大鱼吃小鱼》应运而生,它结合了自然界的食物链原理与休闲游戏的轻松氛围,为玩家带来了一种新颖而有趣的游戏体验。
具体来说,这款游戏以神秘的海底世界为背景,让玩家扮演一条小鱼,通过不断吞噬比自己小的鱼类来逐渐成长,最终成为海洋中的霸主。在游戏中,每一关卡都设有玩法提示和海洋鱼类知识学习,使玩家在娱乐的同时也能学习到一些有关海洋生物的知识。

此外,游戏还添加了积分制度和动听愉快的背景音乐,使得整个游戏过程更加有趣和刺激。这种简单而富有挑战性的玩法,使得《大鱼吃小鱼》迅速流行起来,尤其是在白领阶层中,成为了一款广受欢迎的休闲游戏。

综上所述,《大鱼吃小鱼》这款游戏的历史渊源可以归结为休闲游戏的发展和探索,以及自然界食物链原理与游戏玩法的巧妙结合。这些因素共同促成了这款游戏的诞生和流行。

在这里插入图片描述
在这里插入图片描述


一、Java Swing是什么?

Java Swing是Java平台提供的一套图形用户界面(GUI)工具包,用于构建桌面应用程序的用户界面。Swing是AWT(Abstract Window Toolkit)的扩展和替代,提供了更丰富的组件集和更现代化的外观。Swing组件完全是用Java编写的,因此具有跨平台性,这意味着Swing应用程序在不同的操作系统(如Windows、Linux和macOS)上的外观和行为是一致的。

Swing提供了一系列GUI组件,包括按钮、文本框、列表、表格、滑块、进度条等,以及布局管理器,用于控制这些组件在界面上的排列和布局。它还提供了事件处理机制,允许开发者为组件添加交互行为,如点击事件、键盘事件等。

使用Swing,开发者可以创建复杂的桌面应用程序,包括具有多个窗口、对话框和自定义组件的界面。Swing还支持自定义组件的外观和行为,使开发者能够创建独特的用户界面。

总的来说,Java Swing是Java开发人员在构建桌面应用程序时经常使用的工具包之一,它提供了丰富的组件和灵活的布局管理,使得创建具有吸引力的用户界面变得相对容易。

二、Java Swing有哪些组件

JFrame:JFrame 是 Swing 组件的基础,用于显示程序界面。它是所有 Swing GUI 应用程序的顶层容器。
JPanel:JPanel 是一个容器,用于承载其他组件,如按钮、文本框等。它可以作为 JFrame 的内容面板,也可以作为其他容器的子面板。
JButton:JButton 是最常用的组件之一,用于创建可点击的按钮。
JLabel:JLabel 用于显示文本或图像,但不接受用户输入。
JTextField:JTextField 是一个单行文本框,允许用户输入单行文本。
JTextArea:JTextArea 是一个多行文本框,允许用户输入多行文本。
JComboBox:JComboBox 是一个下拉列表,允许用户从多个选项中选择一个。
JList:JList 用于显示一个可滚动的选项列表,用户可以选择一个或多个项目。
JScrollPane:JScrollPane 提供了滚动功能,可以将大型组件(如 JList 或 JTextArea)嵌入其中,以便在界面上滚动查看。
JMenuBar, JMenu, JMenuItem:这些组件用于创建菜单栏、菜单和菜单项,为用户提供程序功能的快速访问。
JSliderJFrame:JFrame 是 Swing 组件的基础,用于显示程序界面。它是所有 Swing GUI 应用程序的顶层容器。
JPanel:JPanel 是一个容器,用于承载其他组件,如按钮、文本框等。它可以作为 JFrame 的内容面板,也可以作为其他容器的子面板。

三.开始游戏制作

1.项目结构

在这里插入图片描述

2.代码如下:

总共设置了五种鱼类:
并对其按照战力 进行了排序(图片素材全都来自网络资源 由作者进行裁剪 如有侵权 敬请告知删除
主角是懒羊羊
在这里插入图片描述

import javax.swing.*;
import java.awt.*;

public class BigEnemy extends Fish{
    public BigEnemy()
    {
        power=3;
        int r=(int)(Math.random()*2); //生成0,1两个随机数用来标志向左还是向右
        if(r==0)
        {
            int a=(int)(Math.random()*2)+1;
            isMoveLeft=false;
            //朝向右 从最左边出来
            x=-168;
            image=new ImageIcon("image/BigRight"+a+".png").getImage();

        }else
        {
            int a=(int)(Math.random()*2)+1;
            isMoveLeft=true;
            //朝向左,从最右边出来
            x=1080;
            image=new ImageIcon("image/BigLeft"+a+".png").getImage();
        }
        y=(int)(Math.random()*600);
        length=250;
        height=150;
    }
    @Override
    public void drawFish(Graphics g) {
        super.drawFish(g);
        if(isMoveLeft) {
            g.drawImage(image, x--, y, length, height, null);
        }
        else
        {
            g.drawImage(image, x++, y, length, height, null);
        }
    }
}
import javax.swing.*;
import java.awt.*;
public class BossEnemy extends Fish{
    public BossEnemy()
    {
        power=4;
        int r=(int)(Math.random()*4); //生成0,1两个随机数用来标志向左还是向右

        if(r==0)
        {

            isMoveLeft=false;
            //朝向右 从最左边出来
            x=-400;
            image=new ImageIcon("image/BossRight"+1+".png").getImage();

        }else
        {
            int a=(int)(Math.random()*3)+1;
            isMoveLeft=true;
            //朝向左,从最右边出来
            x=1100;
            image=new ImageIcon("image/BossLeft"+a+".png").getImage();
        }
        y=(int)(Math.random()*800);
        length=350;
        height=250;
    }
    @Override
    public void drawFish(Graphics g) {
        super.drawFish(g);
        if(isMoveLeft) {
            g.drawImage(image, x--, y, length, height, null);
        }
        else
        {
            g.drawImage(image, x++, y, length, height, null);
        }
    }
}

import javax.swing.*;
import java.awt.*;

public class BugEnemy extends Fish{
    public BugEnemy()
    {
        power=5;
        int r=(int)(Math.random()*2); //生成0,1两个随机数用来标志向左还是向右

        if(r==0)
        {

            isMoveLeft=false;
            //朝向右 从最左边出来
            x=-400;
            image=new ImageIcon("image/boss1.GIF").getImage();

        }else
        {

            isMoveLeft=true;
            //朝向左,从最右边出来
            x=1100;
            image=new ImageIcon("image/MirenRight.png").getImage();
        }
        y=(int)(Math.random()*700);
        length=350;
        height=250;
    }

    @Override
    public void drawFish(Graphics g) {

        super.drawFish(g);
        if(isMoveLeft) {
            g.drawImage(image, x--, y, length, height, null);
        }
        else
        {
            g.drawImage(image, x++, y, length, height, null);

        }
    }
}

import java.awt.*;

public class Fish {
    //鱼的属性:初始位置
    int power;//战力值
    int x;
    int y;
    int length;
    int height;
    Image image;

    boolean isMoveLeft=true;
    //对图片进行裁剪
    int x1,x2;
    int y1,y2;
    public void drawFish(Graphics g){

    };
}

import sun.audio.AudioPlayer;
import sun.audio.AudioStream;

import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

public class FishPanel extends JPanel {
    int target=15 ;

    int oldpower=1;
    int score=0;//分数
    int mini,mid,big,boss,king,music=0;//控制游戏中有多少条不同类的鱼
    MySelf mySelf=new MySelf();
    List<Fish> fishList=new ArrayList<Fish>();
    int state=0;//0表示加载中;1表示游戏开始;2表示游戏暂停;3表示游戏结束
    @Override
    public void paint(Graphics g) {
        super.paint(g);

        switch(state)
        {
            case 0:
                Image image=new ImageIcon("image/start.jpg").getImage();
                g.drawImage(image,0,0,1024,680,null);
                break;
            case 1:

                drawBackgroundImage(g);
//                if(mySelf.power==2)
//                {
//                    drawBgI(g);
//                }else if(mySelf.power==3)
//                {
//
//                }

//绘制己方的小鱼
                drawMyFish(g);
                drawEnemyFish(g);
                g.setColor(Color.PINK);
                Font font=new Font("黑体",Font.BOLD,20);
                g.setFont(font);
                g.drawString("当前得分:"+score,15,20);
                g.setColor(Color.YELLOW);
                g.drawString("目标得分:"+target,500,20);
                break;
            case 2:
                drawBackgroundImage(g);
//                if(mySelf.power>=2)
//                {
//                    drawBgI(g);
//                }

//绘制己方的小鱼
                drawMyFish(g);
                drawEnemyFish(g);
                break;
            case 3:
                drawBackgroundImage(g);
//                if(mySelf.power>=2)
//                {
//                    drawBgI(g);
//                }

//绘制己方的小鱼
                drawMyFish(g);
                drawEnemyFish(g);
                g.setColor(Color.PINK);
                Font fon=new Font("黑体",Font.BOLD,20);
                g.setFont(fon);
                g.drawString("当前得分:"+score,15,20);//画笔写字
                g.setColor(Color.GREEN);
                Font f=new Font("黑体",Font.BOLD,50);
                g.setFont(f);
                g.drawString("GAME OVER",360,320);

                break;
            case 4:
                drawBackgroundImage(g);


        }


    }
    //绘制敌方鱼的方法
    private void drawEnemyFish(Graphics g) {
        for(int i=0;i<fishList.size();i++)
        {
            Fish fish=fishList.get(i);
            fish.drawFish(g);
        }
    }
    //绘制己方鱼的方法
    private void drawMyFish(Graphics g) {
        mySelf.drawFish(g);
    }

    //绘制游戏的背景图
    public void drawBackgroundImage(Graphics g)
    {
        String str="image/bg3.jpeg";
        if(mySelf.power==2)
        {
            str="image/bg4.jpeg";
        }
        else if(mySelf.power==3)
        {
            str="image/bg11.jpeg";
        }
        else if(mySelf.power==4)
        {
            str="image/bg12.jpeg";
        }
        else if(mySelf.power==5)
        {


                if(score<=5000)
                {
                    str = "image/bg15.jpeg";

                }
                else
                {
                    str="image/bg.png";
                }



        }
       Image image= new ImageIcon(str).getImage();
       g.drawImage(image,0,0,1024,680,null);
    }
//    public void drawBgI(Graphics g)
//    {
//        String str=null;
//        if(mySelf.power==2)
//        {
//            str=
//        }
//        else if()
//        Image image= new ImageIcon(str).getImage();
//        g.drawImage(image,0,0,1024,640,null);
//    }

    public void move(int keycode){
        switch(keycode)
        {
            case KeyEvent.VK_SPACE:

                if(state==0) {
                    state = 1;
                }
                else if(state==3)
                {
                    state=1;
                }

                break;
            case KeyEvent.VK_LEFT:
                if(state==1) {
                    mySelf.moveLeft();
                    repaint();
                }
                break;
            case KeyEvent.VK_RIGHT:
                if(state==1) {
                    mySelf.moveRight();
                    repaint();
                }
                break;
            case KeyEvent.VK_UP:
                if(state==1) {
                    mySelf.moveUp();
                    repaint();
                }
                break;
            case KeyEvent.VK_DOWN:
                if(state==1) {
                    mySelf.moveDown();
                    repaint();
                }
                break;
            case KeyEvent.VK_ENTER:
                if(state==1)
                {
                    state=2;
                }
                else if(state==2)
                {
                    state=1;
                }
                break;


        }


    }
    //定时器的方法Timer
    //生成其他鱼
    //移动
    public void action()
    {
        Timer timer=new Timer();
        timer.schedule(new TimerTask() {
            public void run() {
                if(state==1){
                    //创建其他鱼
                    createEnemy();

                    //吃鱼
                    EatFish();


                    //不断改变其他鱼的位置
                    repaint();
                }

            }
        },20,10);//delay延迟20毫秒后,period每隔10毫秒执行一次run里面的内容

    }
/*
吃鱼功能
 */
    private void EatFish() {
        for(int i=0;i<fishList.size();i++)
        {
            Fish fish=fishList.get(i);
            //碰撞检测:如果碰撞了执行
            if(hit(fish))
            {
                //吃小鱼
                if(mySelf.power>=fish.power)
                {
                    if(score>=5000)
                    {
                        state=4;
                    }
                    sound("music/EatHim.wav");
                    //战力++
                    switch(fish.power)
                    {
                        case 1:score++;
                        break;
                        case 2: score+=5;
                        break;
                        case 3: score+=50;
                        break;
                        case 4: score+=100;
                        break;
                        case 5: score+=200;
                    }
                    if(score>=15&&score<50)
                    {
                        mySelf.power=2;
                    }
                    else if(score>=100&&score<=1000)
                    {
                        mySelf.power=3;
                    }
                    else if(score>=1000&&score<=3000)
                    {
                        mySelf.power=4;
                    }
                    else if(score>=3000)
                    {
                        mySelf.power=5;
                    }

                    //其他鱼要消失 从集合中删除鱼
                    fishList.remove(i);
                    if(mySelf.power>oldpower)
                    {
                        sound("music/ShengJi.wav");
                        oldpower++;
                    }
                    //自己变大
                    if(mySelf.power==1)
                    {
                        target=15;
                    }
                    else if(mySelf.power==2)
                    {
                        target=100;
                        mySelf.length=80;
                        mySelf.height=120;
                    }
                    else if(mySelf.power==3)
                    {
                         target=1000;
                        mySelf.length=130;
                        mySelf.height=195;

                    }
                    else if(mySelf.power==4)
                    {
                          target=3000;
                        mySelf.length=200;
                        mySelf.height=300;
                    }
                    else if(mySelf.power==5)
                    {
                        target=5000;
                        mySelf.length=250;
                        mySelf.height=300;

                    }




                }
                //被吃
                else
                {
                    state=3; //游戏状态改成三 表示游戏结束
                    sound("music/EatMe.wav");
                    //游戏结束
                }

            }
        }

    }

    private boolean hit(Fish fish) {
        int x=mySelf.x+ mySelf.length/2;
        int y=mySelf.y+mySelf.height/2;
        int x1=fish.x+fish.length/2;
        int y1=fish.y+fish.length/2;
        if(x>=fish.x&&x<=fish.x+fish.length)
        {
            if(y>=fish.y&&y<=fish.y+fish.height)
            {
                return true;
            }
        }
        if(x1>=mySelf.x&&x1<=mySelf.x+mySelf.length)
        {
            if(y1>=mySelf.y&&y1<=mySelf.y+mySelf.height)
            {
                return true;
            }
        }
        return false;

    }

    public void sound(String str)
    {

        try {
            FileInputStream in = new FileInputStream(str);
            AudioStream as=new
                    AudioStream(in);
            AudioPlayer.player.start(as);
        }catch(Exception e)
        {
            e.printStackTrace();
        }
    }
    private void createEnemy() {
        if(mySelf.power<2) {
            if (mini++ % 200 == 0) {
                fishList.add(new MiniEnemy());
            }//每次间隔四秒创建一条鱼

            if (mid++ % 400 == 0) {
                fishList.add(new MidEnemy());
            }
            if (big++ % 800 == 0) {
                fishList.add(new BigEnemy());
            }
        }
        else if(mySelf.power>=2&&mySelf.power<3) {
            if (mini++ % 200 == 0) {
                fishList.add(new MiniEnemy());
            }//每次间隔四秒创建一条鱼

            if (mid++ % 200 == 0) {
                fishList.add(new MidEnemy());
            }
            if (big++ % 800 == 0) {
                fishList.add(new BigEnemy());
            }
            if (boss++ % 1500 == 0) {
                fishList.add(new BossEnemy());
            }

        }
        else if(mySelf.power>=3&&mySelf.power<4)
        {
            if (mini++ % 200 == 0) {
                fishList.add(new MiniEnemy());
            }//每次间隔四秒创建一条鱼

            if (mid++ % 200 == 0) {
                fishList.add(new MidEnemy());
            }
            if (big++ % 400 == 0) {
                fishList.add(new BigEnemy());
            }

            if (boss++ % 1000 == 0) {
                fishList.add(new BossEnemy());
            }
            if (king++ % 1500 == 0) {
                fishList.add(new BugEnemy());
            }
        }
        else if(mySelf.power>=4)
        {
            if (mini++ % 200 == 0) {
                fishList.add(new MiniEnemy());
            }//每次间隔四秒创建一条鱼

            if (mid++ % 200 == 0) {
                fishList.add(new MidEnemy());
            }
            if (big++ % 400 == 0) {
                fishList.add(new BigEnemy());
            }

            if (boss++ % 600 == 0) {
                fishList.add(new BossEnemy());
            }
            if (king++ % 1500 == 0) {
                fishList.add(new BugEnemy());
            }
        }
//        if(mid++%300==0)
//        {
//            fishList.add(new MidEnemy());
//        }
        if(music++ %1000==0)
        {
            int r=(int)(Math.random()*3)+1;
            sound("music/bgm1."+r+".wav");
        }

    }


}

import javax.swing.*;
import java.awt.*;

public class MidEnemy extends Fish{
    public MidEnemy(){
        power=2;
        int r=(int)(Math.random()*2); //生成0,1两个随机数用来标志向左还是向右

        if(r==0)
        {
            int a=(int)(Math.random()*2)+1;
            isMoveLeft=false;
            //朝向右 从最左边出来
            x=-68;
            image=new ImageIcon("image/MidRight"+a+".png").getImage();

        }else
        {
            int a=(int)(Math.random()*2)+1;
            isMoveLeft=true;
            //朝向左,从最右边出来
            x=1080;
            image=new ImageIcon("image/MidLeft"+a+".png").getImage();
        }
        y=(int)(Math.random()*600);
        length=80;
        height=120;
    }

    @Override
    public void drawFish(Graphics g) {

        super.drawFish(g);
        if(isMoveLeft) {
            g.drawImage(image, x--, y, length, height, null);
        }
        else
        {
            g.drawImage(image, x++, y, length, height, null);

        }
    }
}

import javax.swing.*;
import java.awt.*;

public class MiniEnemy extends Fish {
    public MiniEnemy(){
        int r=(int)(Math.random()*2); //生成0,1两个随机数用来标志向左还是向右

        if(r==0)
        {
            int a=(int)(Math.random()*2)+1;
            isMoveLeft=false;
            //朝向右 从最左边出来
            x=-68;
            image=new ImageIcon("image/MiniLeft"+a+".png").getImage();

        }else
        {
            int a=(int)(Math.random()*2)+1;
            isMoveLeft=true;
            //朝向左,从最右边出来
            x=1080;
            image=new ImageIcon("image/MiniRight"+a+".png").getImage();
        }
        y=(int)(Math.random()*500);
        power=1;
        length=68;
        height=55;
    }

    @Override
    public void drawFish(Graphics g) {

        super.drawFish(g);
        if(isMoveLeft) {
            g.drawImage(image, x--, y, length, height, null);
        }
        else
        {
            g.drawImage(image, x++, y, length, height, null);

        }
    }
}

import javax.swing.*;
import java.awt.*;

public class MySelf extends Fish{
    public MySelf(){
        power=1;
        length=55;
        height=68;
        x=500;
        y=350;

    }
//父类鱼方法重写 实现绘制的功能
    @Override
    public void drawFish(Graphics g) {
        super.drawFish(g);



        Image image;
        if(isMoveLeft){
             image=new ImageIcon("image/lan12.png").getImage();
            //向左移动

        }else{
            //向右移动
             image=new ImageIcon("image/lan11.png").getImage();

        }
        //g.drawImage(image,x,y,68,100,null);
        g.drawImage(image,x,y,length,height,null);
    }
    public void moveLeft()
    {
        isMoveLeft=true;
        if(x>=-50)
        {
           x-=10;
        }
    }
    public void moveRight()
    {
        isMoveLeft=false;
        if(x<=980)
        {
            x+=10;
        }
    }
    public void moveUp()
    {

        if(y>=0)
        {
            y-=10;
        }
    }
    public void moveDown()
    {

        if(y<=640)
        {
            y+=10;
        }
    }

}

import javax.swing.*;
import java.awt.*;

public class Rule extends JFrame {
    JPanel jPanel=new JPanel();
    public Rule()
    {
        this.setTitle("规则图鉴");
        this.setVisible(true);
        this.setSize(800,630);
        this.setLocation(20,20);
        this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
        this.setLocationRelativeTo(null);
        this.add(jPanel);
        ImageIcon image=new ImageIcon("image/rule.png");
        JLabel jLabel=new JLabel(image);
        jPanel.add(jLabel);
    }
}

import sun.audio.AudioPlayer;
import sun.audio.AudioStream;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.FileInputStream;
//1.创建窗体对象
//2.背景的绘制
//3.键盘的监听事件
//4.放入己方鱼
//5.让己方鱼移动
//6.创建敌方鱼
//7.碰撞检测(吃鱼)

public class Ui extends JFrame implements KeyListener {
    private FishPanel fishPanel=new FishPanel();
    JMenuBar JM=new JMenuBar();
    JMenu m1=new JMenu("规则图鉴");
    JMenuItem jMenuItem=new JMenuItem("规则图鉴");
    public  Ui(){
        this.setTitle("海洋小霸王——金花");
        this.setSize(1024,680);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLocationRelativeTo(null);
        this.setVisible(true);
        this.add(fishPanel);
        fishPanel.action();
        this.addKeyListener(this);
        this.setJMenuBar(JM);
        JM.add(m1);
        m1.add(jMenuItem);
        jMenuItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                new Rule();
            }
        });


    }
    public void init(){
        while(true)
        {
            sound("music/bgm1.wav");

            try
            {
                Thread.sleep(82800);
            }catch (Exception e)
            {
                e.printStackTrace();
            }

        }

    }


    public void sound(String str)
    {

        try {
            FileInputStream in = new FileInputStream(str);
            AudioStream as=new
                    AudioStream(in);
            AudioPlayer.player.start(as);
        }catch(Exception e)
        {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        Ui ui=new Ui();
        ui.init();



    }


    public void keyTyped(KeyEvent e) {

    }

    public void keyPressed(KeyEvent e) {

        fishPanel.move(e.getKeyCode());

    }

    public void keyReleased(KeyEvent e) {

    }
}

运行效果

在这里插入图片描述
升级之后变大并且更换了背景
在这里插入图片描述
升级之后可以变大 并且更换了背景

在这里插入图片描述

  • 29
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大鱼吃小鱼》是一款休闲类游戏,玩家需要控制一条大鱼在海底世界中捕食小鱼并不断增长体积。这个游戏的核心算法包括实现移动和捕食功能。 以下是一个简单的Java游戏大鱼吃小鱼》的示例代码: ```java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class FishGame extends JFrame { private int fishSize; private int fishX, fishY; private int smallFishX, smallFishY; public FishGame() { fishSize = 50; fishX = 200; fishY = 200; smallFishX = 100; smallFishY = 100; addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { moveFish(e); } }); setFocusable(true); setSize(500, 500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public void paint(Graphics g) { super.paint(g); g.setColor(Color.BLUE); g.fillOval(fishX, fishY, fishSize, fishSize); g.setColor(Color.RED); g.fillOval(smallFishX, smallFishY, 20, 20); } public void moveFish(KeyEvent e) { int keyCode = e.getKeyCode(); switch (keyCode) { case KeyEvent.VK_UP: fishY -= 10; break; case KeyEvent.VK_DOWN: fishY += 10; break; case KeyEvent.VK_LEFT: fishX -= 10; break; case KeyEvent.VK_RIGHT: fishX += 10; break; } repaint(); } public static void main(String[] args) { new FishGame(); } } ``` 这个示例代码使用了JavaSwing库来创建窗口和绘制图形。玩家可以通过键盘的上下左右键来控制大鱼的移动。大鱼的初始位置是(200, 200),小鱼的初始位置是(100, 100)。当大鱼与小鱼重叠时,大鱼的体积会增大。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值