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

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

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

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

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

文章目录

  • 一、Java Swing是什么?
  • 二、Java Swing有哪些组件
  • 三.开始游戏制作
    • 1.项目结构
    • 2.代码如下:
  • 运行效果


一、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;}@Overridepublic 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;}@Overridepublic 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;}@Overridepublic 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表示游戏结束@Overridepublic 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=newAudioStream(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;}@Overridepublic 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;}@Overridepublic 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;}
//父类鱼方法重写 实现绘制的功能@Overridepublic 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=newAudioStream(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) {}
}

运行效果

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/825107.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI大模型之idea通义灵码智能AI插件安装方式

问题描述 主要讲述如何进行开发工具 idea中如何进行通义灵码的插件的安装解决方案 直接在idea的plugin市场中安装 下载插件之后进行安装 见资源

lua 光速入门

文章目录 安装注释字符串变量逻辑运算条件判断循环函数Table (表)常用全局函数模块化 首先明确 lua 和 js Python一样是动态解释性语言&#xff0c;需要解释器执行。并且不同于 Python 的强类型与 js 的弱类型&#xff0c;它有点居中&#xff0c;倾向于强类型。 安装 下载解释…

【OpenHarmony】TDD-FUZZ环境配置

零、参考 1、AttributeError: ‘ElementTree‘ object has no attribute ‘getiterator‘&#xff1a;https://blog.csdn.net/suhao0911/article/details/110950742 一、创建工作目录 1、新建工作目录如&#xff1a;D:\0000_TDD_FUZZ\0000_ohos_tdd_fuzz。 2、gitee上下载 t…

陇剑杯 ios 流量分析 CTF writeup

陇剑杯 ios 流量分析 链接&#xff1a;https://pan.baidu.com/s/1KSSXOVNPC5hu_Mf60uKM2A?pwdhaek 提取码&#xff1a;haek目录结构 LearnCTF ├───LogAnalize │ ├───linux简单日志分析 │ │ linux-log_2.zip │ │ │ ├───misc日志分析 │ │…

html+vue编写分页功能

效果&#xff1a; html关键代码&#xff1a; <div class"ui-jqgrid-resize-mark" id"rs_mlist_table_C87E35BE"> </div><div class"list_component_pager ui-jqgrid-pager undefined" dir"ltr"><div id"pg…

Linux编辑器-vim的使用

vim的基本概念 vim的三种模式(其实有好多模式&#xff0c;目前掌握这3种即可),分别是命令模式&#xff08;command mode&#xff09;、插 入模式&#xff08;Insert mode&#xff09;和底行模式&#xff08;last line mode&#xff09;&#xff0c;各模式的功能区分如下&#…

中医优势病种诊疗方案数据库

中医诊疗方案结合了几千年的实践经验与理论体系&#xff0c;形成了一套独特的诊疗方法。随着国家对中医药事业的重视&#xff0c;多个中医诊疗方案被国家卫生健康委员会和国家中医药管理局等权威机构正式发布&#xff0c;这对规范中医临床诊疗行为&#xff0c;提升医疗服务质量…

执行npm命令一直出现sill idealTree buildDeps怎么办?

一、问题 今天在运行npm时候一直出项sill idealTree buildDeps问题 二、 解决 1、先删除用户界面下的npmrc文件&#xff08;注意一定是用户C:\Users\{账户}\下的.npmrc文件下不是nodejs里面&#xff09;&#xff0c;进入到对应目录下&#xff0c;Mac启动显示隐藏文件操作&…

生产服务器变卡怎么排查

服务器变卡怎么排查&#xff0c;可以从以下四个方面去考虑 生产服务器变卡怎么排查 1、网络2、cpu的利用率3、io效率4、内存瓶颈 1、网络 可以使用netstat、iftop等工具查看网络流量和网络连接情况&#xff0c;检查是否网络堵塞、丢包等问题 2、cpu的利用率 1、用top命令定…

驱动执行篇之电机编码器:编码器基础与双编码器方案

目录 |1.编码器概述 |2.编码器分类 |2.1.增量式编码器和绝对值编码器 |2.2.光电编码器 |3.双编码器方案 |3.1几种扭矩感知方案 |3.3双编码器安装方式 |1.编码器概述 编码器 编码器&#xff0c;是将信号&#xff08;如比特流&#xff09;或数据进行编制、转换为可用以通讯…

ECA-Net:深度卷积神经网络中的高效通道注意力机制【原理讲解及代码!!!】

ECA-Net&#xff1a;深度卷积神经网络中的高效通道注意力机制 在深度学习领域&#xff0c;特别是在深度卷积神经网络&#xff08;DCNN&#xff09;中&#xff0c;注意力机制已经成为提升模型性能的关键技术之一。其中&#xff0c;ECA模块&#xff08;Efficient Channel Attent…

前端项目的导入和启动

安装依赖 前端安装依赖只需要在控制台执行“npm i”即可。Tips&#xff1a;当我们执行的时候&#xff0c;有时候会很慢。可以考虑使用yarn或者pnpm。然而使用yarn或者pnpm有时候有一些莫名其妙的问题。所以还是得使用npm&#xff0c; 这个时候可以通过更换镜像源为淘宝镜像源。…

flex上下固定中间占固定高度(中间左右菜单)且内容自动滚动

效果图 布局&#xff1a; <view class"pop_tSet"><view class"pop_Con"><view class"box_bb"><view class"bb_title">{{titleObj[popType]}}</view></view><view class"box_bb_bot"…

The Sandbox 推出全新后室模板!

我们非常高兴地向你介绍游戏制作器的另一个新成员&#xff1a; 后室模板&#xff01; 步入神秘而不自然的空旷空间&#xff0c;感觉有些......不对劲。准备好探索、创造和拥抱引人入胜的后室世界吧。 什么是后室&#xff08;Backroom&#xff09;游戏&#xff1f; 早在 2019 年…

获取公募基金持仓【数据分析系列博文】

摘要 从指定网址获取公募基金持仓数据&#xff0c;快速解析并存储数据。 &#xff08;该博文针对自由学习者获取数据&#xff1b;而在投顾、基金、证券等公司&#xff0c;通常有Wind、聚源、通联等厂商采购的数据&#xff09; 1. 导入必要的库&#xff1a; pandas 用于数据处理…

Java中类装载的执行过程

类装载的执行过程 类从加载到虚拟机中开始&#xff0c;直到卸载为止&#xff0c;它的整个生命周期包括了&#xff1a;加载、验证、准备、解析、初始化、使用和卸载这7个阶段。其中&#xff0c;验证、准备和解析这三个部分统称为连接&#xff08;linking&#xff09;。 1.加载 …

第一天学C++(C++入门)

一、HelloWorld &#xff08;第一个C入门程序&#xff09; 1.1代码 #include<iostream> using namespace std; // 1.单行注释// 2. 多行注释 /* main 是一个程序的入口 每个程序都必须有这么一个函数 有且仅有一个 */ int main() {// 第九行代码的含义就是在屏幕中输出…

果园系统养殖游戏喂养偷菜种植浇水养成小程序

装扮 通过购买装扮场景切换不同的农场风格 土地升级 通过特定的材料对土地和房屋进行升级 日志 记录道具的使用数量及金币农作物的收入情况 幸运转盘 可用金币进行抽奖 宝箱开启 获得宝箱后可以通过金币开启 每日签到 每日签到获得奖励 系统公告 可以第一时间知道游戏的更新和…

【安全】查杀linux挖矿病毒 kswapd0

中毒现象 高cpu占用&#xff0c;使用top命令查看cpu使用率长时间50%以上&#xff0c;cpu占用异常的进程八成就是挖矿病毒进程 此病毒隐藏了自己&#xff0c;top命令无法查看到挖矿病毒进程&#xff0c;可通过sysdig命令找到隐藏进程 安装sysdig curl -s https://s3.amazonaw…

2024年软件开发行业的薪资水平在下滑的原因?

下降的原因主要包括&#xff1a; 科技行业竞争加剧&#xff1a;随着科技行业竞争的加剧&#xff0c;企业为了压缩成本&#xff0c;开始降低程序员的薪资水平。 人才供应过剩&#xff1a;在计算机成为热门学科的同时&#xff0c;社会上出现了对IT业泡沫和虚假繁荣的质疑。大量…