Java飛翔的鳥

創建三個包,存放代碼。把圖片放進文件中

APP包(運行)

GameApp類
package APP;
import mian.GameFrame;public class GameApp {public static void main(String[] args) {new GameFrame();}
}

mian包(主內容)

Barrier 類(障礙物)
package mian;import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;import util.Constant;
import util.GameUtil;/** 障礙物類*/
public class Barrier {private Rectangle rect;//小鳥矩形對象//private boolean mob=true;private int speed=3;//障礙物移動速度private static BufferedImage[] imgs;//障礙物需要的三個圖片//障礙物的狀態private boolean visible;static {final int COUNT=3;//類加載的時候將三個圖片化imgs=new BufferedImage[COUNT];for(int i=0;i<COUNT;i++) {imgs[i]=GameUtil.loadBufferedImage(Constant.BARRIER_IMG_PATH[i]);}}private int x,y;//位置private int width,height;//寬度和高度private int type;//障礙物的類型public static final int TYPE_TOP_NORMAL=0;public static final int TYPE_BOTTOM_NORMAL=2;public static final int TYPE_HOVER_NORMAL=4;public static final int TYPE_MOBLIE=6;//獲得障礙物的寬帶和高度public static final int BARRIRE_WIDTH=imgs[0].getWidth();public static final int BARRIRE_HEIGHT=imgs[0].getHeight();public static final int BARRIRE_HEAD_WIDTH=imgs[1].getWidth();public static final int BARRIRE_HEAD_HEIGHT=imgs[1].getHeight();public Barrier() {rect=new Rectangle();}public Barrier(int x,int y,int height,int type) {this.x=x;this.y=y;this.height=height;this.type=type;this.width=BARRIRE_WIDTH;}//根據不同的類型繪制不同的障礙物public void draw(Graphics g) {switch(type) {case TYPE_TOP_NORMAL:drawTopMormal(g);break;case TYPE_BOTTOM_NORMAL:drawMormalTop(g);break;case TYPE_HOVER_NORMAL:drawHoverNormal(g);break;case TYPE_MOBLIE:drawMobile(g);break;}}//繪制從上向下的障礙物private void drawTopMormal(Graphics g) {//求出所需要的障礙物的塊數int count=(height-BARRIRE_HEAD_HEIGHT)/BARRIRE_HEIGHT+1;//for循環繪制障礙物for(int i=0;i<count;i++) {g.drawImage(imgs[0],x,y+i*BARRIRE_HEIGHT, null);}//繪制頭int y=height-BARRIRE_HEAD_HEIGHT;g.drawImage(imgs[2],x-(BARRIRE_HEAD_WIDTH-BARRIRE_WIDTH)/2,y, null);x-=speed;if(x<-50) {visible=false;}rect(g);}//繪制從下到上的障礙物private void drawMormalTop(Graphics g) {//求出所需要的障礙物的塊數int count=height/BARRIRE_HEIGHT+1;//for循環繪制障礙物for(int i=0;i<count;i++) {g.drawImage(imgs[0],x,Constant.FRAM_HEIGHT-i*BARRIRE_HEIGHT, null);}	//繪制頭int y=Constant.FRAM_HEIGHT-height;g.drawImage(imgs[1],x-(BARRIRE_HEAD_WIDTH-BARRIRE_WIDTH)/2,y, null);x-=speed;if(x<-50) {visible=false;}rect(g);}	//繪制中間的障礙物private void drawHoverNormal(Graphics g) {//求出所需要的障礙物的塊數int count=(height-BARRIRE_HEAD_HEIGHT)/BARRIRE_HEIGHT;//繪制上頭g.drawImage(imgs[1],x,y,null);//for循環繪制障礙物for(int i=0;i<count;i++) {g.drawImage(imgs[0],x,y+BARRIRE_HEAD_HEIGHT+i*BARRIRE_HEIGHT, null);}	rect(g);//繪制下頭int y11=y+height-BARRIRE_HEAD_HEIGHT;g.drawImage(imgs[2],x,y11, null);x-=speed;if(x<-50) {visible=false;}}	//繪制中間移動的障礙物private void drawMobile(Graphics g) {//求出所需要的障礙物的塊數int count=(height-BARRIRE_HEAD_HEIGHT)/BARRIRE_HEIGHT;//繪制上頭g.drawImage(imgs[1],x,y,null);//for循環繪制障礙物for(int i=0;i<count;i++) {g.drawImage(imgs[0],x,y+BARRIRE_HEAD_HEIGHT+i*BARRIRE_HEIGHT, null);}	rect(g);//繪制下頭int y11=y+height-BARRIRE_HEAD_HEIGHT;g.drawImage(imgs[2],x,y11, null);x-=speed;if(x<-50) {visible=false;}if(mob) {y+=5;if(y>=250) {mob=false;}}else if(!mob) {y-=5;if(y<=100) {mob=true;}}}	/** 繪制障礙物矩形*/public void rect(Graphics g) {int x1=this.x;int y1=this.y;int w1=imgs[0].getWidth();
//		g.drawRect(x1, y1, w1,height);setRectyangle(x1,y1,w1,height);}/** 障礙物矩形參數*/public void setRectyangle(int x,int y,int width,int height) {rect.x=x;rect.y=y;rect.width=width;rect.height=height;}//判斷什么時候繪制下一組障礙物public boolean isInFrame() {return 600-x>150;}public int getX() {return x;}public void setX(int x) {this.x = x;}public int getY() {return y;}public void setY(int y) {this.y = y;}public int getHeight() {return height;}public void setHeight(int height) {this.height = height;}public int getType() {return type;}public void setType(int type) {this.type = type;}public boolean isVisible() {return visible;}public void setVisible(boolean visible) {this.visible = visible;}public Rectangle getRect() {return rect;}}
Barrierpool類(管理池中所有的對象的容器)
package mian;
import java.util.ArrayList;
import java.util.List;/** 為了避免反復的創建和銷毀對象,使用對象池來提前創建好一些對象* 使用的時候從池中獲得,使用完畢后,歸還*/
public class Barrierpool {//用于管理池中所有的對象的容器private static List<Barrier>pool=new ArrayList<>();//池中初始的對象個數public static final int initCount=16;//對象池中最大個數public static final int maxCount=20;static {//初始化池中的對象for(int i=0;i<initCount;i++) {pool.add(new Barrier());}}/** 從池中獲取一個對象*/public static Barrier getPool() {int size=pool.size();//如果池中有對象才可以拿if(size>0) {//移除并返回對象System.out.println("拿走一個");return pool.remove(size-1);}else {//如果池中沒有對象,只能newSystem.out.println("新的對象");return new Barrier();}}/** 將對象歸還容器中*/public static void setPool(Barrier barrier) {if(pool.size()<maxCount) {pool.add(barrier);System.out.println("容器歸還了");}}}
Bird(鳥)
package mian;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import static util.Constant.*;
import util.GameUtil;/** 小鳥類*/
public class Bird {//小鳥矩形對象private Rectangle rect;//小鳥加速度private int acceleration;//小鳥的生命值public boolean life=true;//存放小鳥圖片private BufferedImage[] images;public static final int BIRD_IMG_COUNT=3;//鳥的狀態private int state;public static final int STATE_NORMAR=0;//平著飛public static final int STATE_UP=1;//向上飛public static final int STATE_DOWN=2;//向下飛//小鳥的位置private int x=200,y=200;//小鳥的移動方向 上下private boolean up=false,down=false;//小鳥的移動速度private int speed=4;//構造方法中對資源初始化public Bird() {images=new BufferedImage[BIRD_IMG_COUNT];for(int i=0;i<BIRD_IMG_COUNT;i++) {images[i]=GameUtil.loadBufferedImage(BIRD_IMG[i]);}int w=images[0].getWidth();int h=images[0].getHeight();rect=new Rectangle(w,h);}//繪制小鳥public void draw(Graphics g) {flyLogic();g.drawImage(images[state],x,y, null);//繪制小鳥的矩形
//		g.drawRect(x, y,(int)rect.getWidth(),rect.height);rect.x=this.x;rect.y=this.y;}//控制小鳥移動方向public void flyLogic() {if(up) {acceleration--;y+=acceleration;if(acceleration<-10) {acceleration=-10;}if(y<20) {y=20;acceleration=0;}}if(!up) {acceleration++;y+=acceleration;if(acceleration>10) {acceleration=10;}if(y>475) {y=475;acceleration=0;}}}public void fly(int fly) {switch(fly) {case 1:state=1;up=true;break;case 5:state=2;up=false;break;}}public Rectangle getRect() {return rect;}/** 重新繪制小鳥的位置*/public void restartDraw() {life=true;x=200;y=200;}}
Cloud(云彩)
package mian;
import java.awt.Graphics;
import java.awt.image.BufferedImage;/** 云彩類*/
public class Cloud {private BufferedImage img;//云彩圖片private int speed;//云彩速度private int x,y;//云彩位置public Cloud() {}public Cloud(BufferedImage img,int speed,int x,int y) {this.img=img;this.speed=speed;this.x=x;this.y=y;}public void draw(Graphics g) {x-=speed;g.drawImage(img, x, y, null);}/*用于判斷云彩是否廢除屏幕以外* */public boolean isOutFrame() {if(x<-100) {return true;}return false;}}
GameBackground(游戲背景)
package mian;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;import util.Constant;
import util.GameUtil;/** 游戲背景類*/
public class GameBackground {private BufferedImage bkimg;//背景需要的資源圖片//構造器初始化資源public GameBackground() {bkimg=GameUtil.loadBufferedImage(Constant.BK_CATH_OATH);}//繪制圖片public  void draw(Graphics g) {//填充背景顏色g.setColor(Constant.BK_COLOR);g.fillRect(0, 0, Constant.FRAM_WIDTH,Constant.FRAM_HEIGHT);g.setColor(Color.black);//得到圖片的高寬和寬高int height=bkimg.getHeight();int width=bkimg.getWidth();//循環的次數int count=Constant.FRAM_WIDTH/width+1;for(int i=0;i<count;i++) {g.drawImage(bkimg,width*i,Constant.FRAM_HEIGHT-height, null);}}
}
GameBarrierLayer(游戲中障礙物層)?
package mian;import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;/** 游戲中障礙物層*/
public class GameBarrierLayer {private GameTime gameTime;private int txt;private Random random=new Random();private List<Barrier>barriers;public GameBarrierLayer() {barriers=new ArrayList<>();gameTime=new GameTime();}//繪制障礙物public void draw(Graphics g,Bird bird) throws NumberFormatException, IOException {for(int i=0;i<barriers.size();i++) {Barrier barrier=barriers.get(i);if(barrier.isVisible()) {barrier.draw(g);}else {Barrier remove=barriers.remove(i);Barrierpool.setPool(remove);i--;}}collideBird(bird);logic(g);}public void logic(Graphics g) throws NumberFormatException, IOException {if(barriers.size()==0) {ran();gameTime.begin();insert(600,0,numberTop,0);insert(600,500-numberDown,numberDown,2);}else {long differ=gameTime.differ();g.setColor(Color.white);g.setFont(new Font("微軟雅黑",1,20));g.drawString("堅持了:"+differ+"秒",30,50);txt=getTxt();if(differ<=txt) {g.drawString("最高成績:"+txt,200,50);}else {setTxt(String.valueOf(differ));g.drawString("最高成績:"+getTxt(),200,50);}//判斷最后一個障礙物是否完全進入屏幕內Barrier last=barriers.get(barriers.size()-1);if(last.isInFrame()) {ran();if(number<50) {insert(600,32,440,4);}else if(number>450){insert(600,125,200,6);}else {insert(600,0,numberTop,0);insert(600,500-numberDown,numberDown,2);}}}}File file=new File("D:\\飛翔的小鳥.txt");/** 用于得到文件中的數據*/public int getTxt() throws NumberFormatException, IOException {BufferedReader in=new BufferedReader(new FileReader(file));int read=Integer.parseInt(in.readLine());in.close();return read;}/** 用于儲存數據*/public void setTxt(String str) throws IOException {FileWriter fileWriter=new FileWriter(file);fileWriter.write(str);fileWriter.close();}/** 用來從池中獲取對象,并把參數封裝成barrier 存放barriers數組中*/public void insert(int x,int y,int num,int type) {Barrier top=Barrierpool.getPool();top.setX(x);top.setY(y);top.setHeight(num);top.setType(type);top.setVisible(true);barriers.add(top);}private int numberTop;//上方的隨即高度private int numberDown;//下方的隨即高度private int number;//產生兩個100-500之間的隨機高度public void ran() {numberTop=random.nextInt(400)+100;numberDown=random.nextInt(400)+100;number=random.nextInt(500);//如果管道重合,則重新隨機if(numberTop+numberDown>450) {ran();}}/** 判斷障礙物和小鳥碰撞*/public boolean collideBird(Bird bird) {for(int i=0;i<barriers.size();i++) {Barrier barrier=barriers.get(i);//判斷是否相交if(barrier.getRect().intersects(bird.getRect())) {System.out.println("撞上啦");bird.life=false;}}return false;}/** 用于清空障礙物的池子*/public void restant() {barriers.clear();}}
GameFrame?
package mian;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.IOException;import static util.Constant.*;
import util.Constant;public class GameFrame extends Frame{//實例化GrameBackground類private GameBackground gameBackground;//實例化Bird類private Bird bird;//實例化GameBarrierLayerprivate GameBarrierLayer gameBarrierLayer;//實例化GameFrontground類private GameFrontground gameFrontground;//存放圖片的圖片private BufferedImage buffimg=new BufferedImage(FRAM_WIDTH,FRAM_HEIGHT,BufferedImage.TYPE_4BYTE_ABGR);//構造方法中初始化一些參數public GameFrame() {setVisible(true);//窗口是否可見setSize(FRAM_WIDTH,FRAM_HEIGHT);//窗體的大小setTitle(FRAM_Ttile);//窗體的標題setLocation(FRAM_x,FRAM_y);//窗體的初始位置setResizable(false);//窗體的大小不可改變//窗口的關閉事件addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);//結束程序}});//初始化游戲對象initGame();new run().start();//添加案件監聽器addKeyListener(new KeyAdapter (){public void keyPressed(KeyEvent e) {//super.keyPressed(e);add(e);}public void keyReleased(KeyEvent e) {//super.keyReleased(e);minu(e);}});}//對游戲中的對象初始化public void initGame() {gameBackground=new GameBackground();bird=new Bird();gameFrontground=new GameFrontground();gameBarrierLayer=new GameBarrierLayer();}class run extends Thread{public void run() {while(true) {repaint();try {Thread.sleep(33);	}catch(InterruptedException e) {e.printStackTrace();}}}}/** 所有的我們需要繪制的內容都在此方法中進行調用繪制*/@Overridepublic void update(Graphics g) {if(bird.life) {//得到圖片的畫筆Graphics graphics=buffimg.getGraphics();gameBackground.draw(graphics);bird.draw(graphics);gameFrontground.draw(graphics);try {gameBarrierLayer.draw(graphics,bird);} catch (NumberFormatException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}//一次性的將圖片繪制到屏幕中g.drawImage(buffimg,0,0,null);}else {String over="游戲結束";g.setColor(Color.red);g.setFont(new Font("微軟雅黑",1,60));g.drawString(over,300,250);String reset="Spce Reset Game";g.drawString(reset,25,350);}}//按鍵public void add(KeyEvent e) {switch(e.getKeyCode()) {case KeyEvent.VK_UP:bird.fly(1);break;case KeyEvent.VK_SPACE:if(bird.life==false) {restart();}break;}}//抬鍵public void minu(KeyEvent e) {switch(e.getKeyCode()) {case KeyEvent.VK_UP:bird.fly(5);break;}}/** * 重置游戲*/public void restart() {gameBarrierLayer.restant();bird.restartDraw();}}
GameTime(計時)
package mian;
/** 計時類*/
public class GameTime {private long begingTime;//開始private long endTime;//結束private long differ;//時間差public GameTime() {}public void begin() {begingTime=System.currentTimeMillis();}public long differ() {endTime=System.currentTimeMillis();return differ=(endTime-begingTime)/1000;}
}

util(窗體)

Constant?
package util;import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.IOException;import javax.imageio.ImageIO;public class GameUtil {public static BufferedImage loadBufferedImage(String imgpath) {try {return ImageIO.read(new FileInputStream(imgpath));}catch(IOException e){e.printStackTrace();}return null;}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/164011.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/164011.shtml
英文地址,請注明出處:http://en.pswp.cn/news/164011.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python獲取json所有節點和子節點

使用python獲取json的所有父結點和子節點 并使用父節點加下劃線命名子節點 先展示一段json代碼 {"level1": {"level2": {"level3": [{"level4": "4value"},{"level4_2": "4_2value"}]},"level2_…

電力行業的智能調度:數字孿生技術

隨著科技的發展&#xff0c;數字孿生技術正逐漸滲透到各個行業領域&#xff0c;其中包括電力行業。數字孿生技術為電力行業帶來了前所未有的機遇&#xff0c;使得電力系統的運行更加高效、安全和可持續。本文借用山海鯨可視化軟件幾個電力行業數字孿生案例探討數字孿生技術在電…

介紹幾種Go語言開發的IDE

文章目錄 1.前言2.幾種ide2.1 Goland2.2 VsCode示例 2.3 LiteIDE2.4 Eclipse插件GoClipse2.5 Atom2.6 Vim2.7 Sublime Text 3.總結寫在最后 1.前言 Go語言作為一種新興的編程語言&#xff0c;近年來受到了越來越多的關注。 它以其簡潔、高效和并發性能而聞名&#xff0c;被廣…

Jmeter 壓測保姆級入門教程

1、Jmeter本地安裝 1.1、下載安裝 軟件下載地址&#xff1a; https://mirrors.tuna.tsinghua.edu.cn/apache/jmeter/binaries/ 選擇一個壓縮包下載即可 然后解壓縮后進入bin目錄直接執行命令jmeter即可啟動 1.2 修改語言 默認是英文的&#xff0c;修改中文&#xff0c;點擊…

關于解決C# WinForm中Chart控件增刪數據時報錯的解決方法

1.報錯代碼 System.InvalidOperationExceptionHResult=0x80131509Message=集合已修改;可能無法執行枚舉操作。具體報錯表現為,在Application.Run(Form1())中斷。 2.解決方法 這個錯誤通常是由于在枚舉集合時對集合進行了修改而引起的。在修改完chart控件中的內容后,可能會…

Linux---常用命令匯總

文章目錄 關于目錄操作的命令ls/llcdpwdmkdir 關于文件操作的命令touchechocatrmmvcpvim 關于查詢操作的命令greppsnetstat 關于目錄操作的命令 ls/ll ls : 列出當前目錄下的目錄和文件&#xff08;以行的展示形式&#xff09; ll &#xff1a; 列出當前目錄下的目錄和文件&…

Django之Cookie與Session,CBV加裝飾器

前言 會話跟蹤技術 在一個會話的多個請求中共享數據&#xff0c;這就是會話跟蹤技術。例如在一個會話中的請求如下&#xff1a; ? 請求銀行主頁&#xff1b; 請求登錄&#xff08;請求參數是用戶名和密碼&#xff09;&#xff1b;請求轉賬&#xff08;請求參數與轉賬相關的數…

Thread類常用成員方法

點擊鏈接返回標題-> Java線程的學習-CSDN博客 目錄 前言 有關線程名字的成員方法&#xff1a; String getName() void setName(String name) Thread(String name) 獲取線程對象的成員方法&#xff1a; static Thread currentThread() 讓線程睡眠的成員方法&#xff1…

時間序列分析算法的概念、模型檢驗及應用

時間序列分析是一種用于研究隨時間變化的數據模式和趨勢的統計方法。這類數據通常按照時間順序排列&#xff0c;例如股票價格、氣溫、銷售額等。時間序列分析的目標是從過去的觀測中提取信息&#xff0c;以便預測未來的趨勢。 以下是關于時間序列分析的一些重要概念、模型檢驗…

python 數據類型之集合

常見的數據類型&#xff1a; int&#xff0c;整數類型&#xff08;整形&#xff09;bool&#xff0c;布爾類型str&#xff0c;字符串類型list&#xff0c;列表類型tuple&#xff0c;元組類型dict&#xff0c;字典類型&#xff0c;一個容器且元素必須是鍵值對。set&#xff0c;…

I Doc View在線文檔預覽系統RCE漏洞(QVD-2023-45061)

0x01 產品簡介 iDocView是一個在線文檔解析應用&#xff0c;旨在提供便捷的文件查看和編輯服務。 0x02 漏洞概述 漏洞成因 本次漏洞出現在在線文檔解析應用中的遠程頁面緩存功能。具體問題在于該應用未能對用戶輸入的URL進行充分的安全驗證&#xff0c;從而導致存在安全隱患…

前端實現菜單快速檢索的功能

前端CSS <style type"text/css">.btn-box {color: #fff;width: auto;border-radius: 25px;min-width: 40px;height: 40px;margin: 9px;line-height: 40px;display: inline-block;position: relative;overflow: hidden;background-image: linear-gradient(315de…

紅隊攻防實戰之內網穿透隱秘隧道搭建

別低頭&#xff0c;皇冠會掉&#xff1b;別流淚&#xff0c;賤人會笑。 本文首發于先知社區&#xff0c;原創作者即是本人 0x00 前言 構建內網隱蔽通道&#xff0c;從而突破各種安全策略限制&#xff0c;實現對目標服務器的完美控制。 當我們從外網成功獲得攻擊點的時候&…

SAP BAPI For LU01/LU04 記賬更改

場景&#xff1a;采購收貨質檢放行的時候&#xff0c;發現存在有些做QA11的時候&#xff0c;進入到TR-ZONE中&#xff0c;沒有進入到指定的倉位 解決方案&#xff1a;前端通過LU04進入&#xff0c;可以查看到一些未清的記賬更改通知單&#xff0c;點擊工具欄上的創建轉儲單&am…

Docker Swarm總結+service創建和部署、overlay網絡以及Raft算法(2/3)

博主介紹&#xff1a;Java領域優質創作者,博客之星城市賽道TOP20、專注于前端流行技術框架、Java后端技術領域、項目實戰運維以及GIS地理信息領域。 &#x1f345;文末獲取源碼下載地址&#x1f345; &#x1f447;&#x1f3fb; 精彩專欄推薦訂閱&#x1f447;&#x1f3fb;…

新的預測模型的局部評價指標-pAUROCc

新的預測模型的局部評價指標-pAUROCc Background 局部評價主要是用在不平衡數據上&#xff0c;其合理性&#xff1a;1.局部評價比全局評價敏感&#xff0c;更容易區分模型的優劣&#xff1b;2.臨床決策曲線&#xff08;DCA&#xff09;可知&#xff0c;模型使用過程中&#x…

什么是JSX

在React組件中&#xff0c;JSX&#xff08;JavaScript XML&#xff09;是一種語法擴展&#xff0c;用于描述組件的結構和外觀。JSX允許我們在JavaScript中編寫類似HTML的標記語言&#xff0c;以創建React元素。 在React組件中&#xff0c;render方法是用于定義并返回組件的結構…

HarmonyOS開發(六):構建簡單頁面

1、Column&Row組件 1.1、概述 一個頁面由很多組件組成&#xff0c;如果需要把這些組件組織起來布局好&#xff0c;需要借助容器組件來實現。 容器組件是一種特殊的組件&#xff0c;它可以包含其他組件&#xff0c;而且按照一定的規律布局&#xff0c;一個容器組件中可以…

Linux--初識和基本的指令(2)

目錄 前言 1. 指令 1.1 cd其它攜帶指令 1.2 ls其它攜帶指令 1.3 which指令 1.4 alias指令 1.5 mkdir其他攜帶指令 1.7 yum -y install 安裝指令 1.8 stat指令 1.9解決指令失控狀態 1.10 rmdir&&rm指令 1.11 man指令 1.12 cp指令 1.13 mv指令 1.14 nano…

vue項目引入中國地圖

先安裝有china.js的版本 npm install echarts4.8 --save //以前的版本有china.js <template><div class"mapMain"><div id"map" style"width: 30vw; height: 30vw;" /></div> </template><script>//引入文…