package com.beancore.ui;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.image.ImageObserver;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.swing.JPanel;
import com.beancore.config.CatchableWeaponType;
import com.beancore.config.Config;
import com.beancore.config.EnemyPlaneType;
import com.beancore.config.ImageConstants;
import com.beancore.entity.Bomb;
import com.beancore.entity.Bullet;
import com.beancore.entity.CatchableWeapon;
import com.beancore.entity.EnemyPlane;
import com.beancore.entity.MyPlane;
import com.beancore.factory.CatchableWeaponFactory;
import com.beancore.factory.EnemyPlaneFactory;
import com.beancore.listener.BulletListener;
import com.beancore.listener.CatchableWeaponListener;
import com.beancore.listener.EnemyPlaneListener;
import com.beancore.util.Images;
import com.beancore.util.SoundPlayer;
public class GamePlayingPanel extends JPanel implements MouseListener, MouseMotionListener, BulletListener,
EnemyPlaneListener, CatchableWeaponListener, ImageObserver {
private static final long serialVersionUID = 1L;
private static int ANIMATION_STEP_1 = 1;
private static int ANIMATION_STEP_2 = 2;
private volatile List<Bullet> bullets;
private volatile List<EnemyPlane> enemyPlanes;
private int score;
private MyPlane myPlane;
private CatchableWeapon popBomb;
private CatchableWeapon popDoubleLaser;
private Thread paintThread;
private int remainTimeToPopSmallPlane;
private int remainTimeToPopBigPlane;
private int remainTimeToPopBossPlane;
private int remainTimeToPopBomb;
private int remainTimeToPopDoubleLaser;
private int remainTimeDoubleLaserRunOut;
private int bombAnomationStep;
private int doubleLaserAnimationStep;
private SoundPlayer smallPlaneKilledSoundPlayer;
private SoundPlayer bigPlaneKilledSoundPlayer;
private SoundPlayer bossPlaneKilledSoundPlayer;
private SoundPlayer bossPlaneFlyingSoundPlayer;
private SoundPlayer popWeaponSoundPlayer;
private SoundPlayer fireBulletSoundPlayer;
private SoundPlayer useBombSoundPlayer;
private SoundPlayer getDoubleLaserSoundPlayer;
private SoundPlayer getBombSoundPlayer;
private SoundPlayer gameMusicSoundPlayer;
private SoundPlayer gameOverSoundPlayer;
public GamePlayingPanel() throws LineUnavailableException, UnsupportedAudioFileException, IOException {
this.initSoundPlayer();
this.initComponents();
}
private void initComponents() {
this.addMouseMotionListener(this);
this.addMouseListener(this);
this.setSize(Config.MAIN_FRAME_WIDTH, Config.MAIN_FRAME_HEIGHT);
this.setDoubleBuffered(true);
this.setOpaque(false);
}
private void initSoundPlayer() throws LineUnavailableException, UnsupportedAudioFileException, IOException {
smallPlaneKilledSoundPlayer = new SoundPlayer(Config.SMALL_PLANE_KILLED_AUDIO);
bigPlaneKilledSoundPlayer = new SoundPlayer(Config.BIG_PLANE_KILLED_AUDIO);
bossPlaneKilledSoundPlayer = new SoundPlayer(Config.BOSS_PLANE_KILLED_AUDIO);
bossPlaneFlyingSoundPlayer = new SoundPlayer(Config.BOSS_PLANE_FLYING_AUDIO);
popWeaponSoundPlayer = new SoundPlayer(Config.POP_WEAPON_AUDIO);
fireBulletSoundPlayer = new SoundPlayer(Config.FIRE_BULLET_AUDIO);
useBombSoundPlayer = new SoundPlayer(Config.USER_BOMB_AUDIO);
getDoubleLaserSoundPlayer = new SoundPlayer(Config.GET_DOUBLE_LASER_AUDIO);
getBombSoundPlayer = new SoundPlayer(Config.GET_BOMB_AUDIO);
gameMusicSoundPlayer = new SoundPlayer(Config.GAME_MUSIC_AUDIO);
gameOverSoundPlayer = new SoundPlayer(Config.GAME_OVER_AUDIO);
}
@Override
public void onBulletLocationChanged(Bullet b) {
if (b != null) {
b.setPosY(b.getPosY() - b.getSpeed());
if (b.getPosY() <= 0) {
synchronized (this.bullets) {
this.bullets.remove(b);
}
}
EnemyPlane enemyPlane = b.hitEnemyPlanes();
if (enemyPlane != null) {
enemyPlane.drawFighting(this.getComponentGraphics(this.getGraphics()));
if (enemyPlane.isKilled()) {
switch (enemyPlane.getEnemyType()) {
case SMALL_ENEMY_PLANE:
this.smallPlaneKilledSoundPlayer.play();
break;
case BIG_ENEMY_PLANE:
this.bigPlaneKilledSoundPlayer.play();
break;
case BOSS_ENEMY_PLANE:
this.bossPlaneFlyingSoundPlayer.stop();
this.bossPlaneKilledSoundPlayer.play();
break;
}
synchronized (this) {
this.score += enemyPlane.getKilledScore();
}
synchronized (this.enemyPlanes) {
this.enemyPlanes.remove(enemyPlane);
}
synchronized (this.bullets) {
this.bullets.remove(b);
}
enemyPlane.drawKilled(this.getComponentGraphics(this.getGraphics()));
}
}
}
}
@Override
public void onEnemyPlaneLocationChanged(EnemyPlane p) {
if (p != null && !p.isKilled()) {
p.setPosY(p.getPosY() + p.getSpeed());
if (p.getPosY() >= this.getHeight()) {
if (p.getEnemyType().equals(EnemyPlaneType.BOSS_ENEMY_PLANE)) {
this.bossPlaneFlyingSoundPlayer.stop();
}
synchronized (this.enemyPlanes) {
enemyPlanes.remove(p);
}
} else {
if (p.getRectangle().intersects(myPlane.getRectange())) {
// game ends
synchronized (myPlane) {
if (myPlane.isAlive()) {
this.stopGame();
}
}
}
}
}
}
@Override
public void onCatchableWeaponLocationChanged(CatchableWeapon weapon) {
if (weapon != null) {
synchronized (weapon) {
int posY = weapon.getPosY();
if (weapon.isUseAnimation()) {
switch (weapon.getWeaponType()) {
case BOMB:
if (this.bombAnomationStep == ANIMATION_STEP_1) {
posY += Config.POP_WEAPON_ANIMATION_MOVE_FORWARD_SPEED;
this.bombAnomationStep++;
} else if (this.bombAnomationStep == ANIMATION_STEP_2) {
posY -= Config.POP_WEAPON_ANIMATION_MOV_BACK_SPEED;
this.bombAnomationStep = 0;
weapon.setUseAnimation(false);
weapon.setUseAnimationDone(true);
}
break;
case DOUBLE_LASER:
if (this.doubleLaserAnimationStep == ANIMATION_STEP_1) {
posY += Config.POP_WEAPON_ANIMATION_MOVE_FORWARD_SPEED;
this.doubleLaserAnimationStep++;
} else if (this.doubleLaserAnimationStep == ANIMATION_STEP_2) {
posY -= Config.POP_WEAPON_ANIMATION_MOV_BACK_SPEED;
this.doubleLaserAnimationStep = 0;
weapon.setUseAnimation(false);
weapon.setUseAnimationDone(true);
}
break;
}
} else {
posY += weapon.getSpeed();
}
weapon.setPosY(posY);
if (!weapon.isUseAnimationDone() && weapon.getPosY() >= this.getHeight() / 5) {
weapon.setUseAnimation(true);
switch (weapon.getWeaponType()) {
case BOMB:
if (this.bombAnomationStep == 0) {
this.bombAnomationStep++;
}
break;
case DOUBLE_LASER:
if (this.doubleLaserAnimationStep == 0) {
this.doubleLaserAnimationStep++;
}
break;
}
}
if (weapon.getPosY() >= this.getHeight()) {
weapon.setWeaponDisappear(true);
} else {
if (weapon.getRectangle().intersects(myPlane.getRectange())) {
switch (weapon.getWeaponType()) {
case BOMB:
if (myPlane.getHoldBombCount() < Config.BOMB_MAX_HOLD_COUNT) {
myPlane.getHoldBombList().add((Bomb) weapon);
this.getBombSoundPlayer.play();
}
break;
case DOUBLE_LASER:
myPlane.setHitDoubleLaser(true);
this.getDoubleLaserSoundPlayer.play();
break;
}
weapon.setWeaponDisappear(true);
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
课程设计-基于Java swing带GUI界面的有音效的飞机大战游戏源码.zip
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共98个文件
class:42个
java:33个
wav:13个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 144 浏览量
2023-10-31
16:15:46
上传
评论
收藏 3.44MB ZIP 举报
温馨提示
高仿雷霆战机小游戏,有GUI界面和背景音乐,还有分数计数以及分数排行榜等功能。 资源使用有什么问题可以直接私信博主,博主每日都会看csdn,看到会回复。
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![thumb](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 98 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/e473673e23484abfafca58fbb5eb9dd1_qq_61141142.jpg!1)
等天晴i
- 粉丝: 4952
- 资源: 10万+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)