1.Demo介绍
1.游戏:玩家以第三人称俯视角控制战机与随机生成的敌机进行射击战斗,击落战机玩家获得分数,战机触碰敌机触发爆炸且游戏结束。
2.附件:
1.工程源码:GitHub - CNEarly/SpaceShipBattleDemo: 使用虚幻引擎C++开发Roguelike类型2D飞机大战Demo
2.演示视频:SpaceShipBattleDemo演示_单机游戏热门视频
3.内容:
1.移动:使用WSAD键控制战机上下左右移动

2.朝向:使用鼠标控制战机朝向

3.射击:使用鼠标左键控制战机开火

4.阵亡:玩家触碰敌机触发爆炸

5.生成:敌人在地图中随机生成

2.地图实现
1.材料:①大气雾②音效③阻挡体积④生成敌人蓝图⑤静态网格体⑥光源⑦玩家出生⑧天空球⑨天光⑩球体反射捕获

2.搭建:

3.战机实现
1.C++头文件:
//预处理
#pragma once//保证头文件只被编译一次
#include "CoreMinimal.h"//包含一套来自UE4核心编程环境的普遍存在类型
#include "GameFramework/Pawn.h"//在新建类的时候选择了以Pawn作为父类(所以这里保存的就是Pawn源代码的头文件)
#include "SpaceShip.generated.h"//与反射机制有关(必须放在所有头文件的最下方)
//前向声明
class USphereComponent;//球体碰撞
class UCameraComponent;//摄像机
class USpringArmComponent;//弹簧臂
class ABullet;//子弹类
class USoundCue;//音效
//战机类
UCLASS()
class SPACESHIPBATTLE_API ASpaceShip : public APawn
{
GENERATED_BODY()
public:
//构造函数声明
ASpaceShip();
protected:
//球体碰撞组件变量
UPROPERTY(VisibleAnywhere,Category="Component")
USphereComponent* CollisionComp;
//网格体组件变量
UPROPERTY(VisibleAnywhere, Category = "Component")
UStaticMeshComponent* ShipSM;
//摄像机组件变量
UPROPERTY(VisibleAnywhere, Category = "Component")
UCameraComponent* CameraComp;
//弹簧臂组件变量
UPROPERTY(VisibleAnywhere, Category = "Component")
USpringArmComponent* SpringArmComp;
//玩家控制器类变量
APlayerController* PC;
//子弹类型变量
UPROPERTY(EditAnywhere,Category="Fire")
TSubclassOf<ABullet> Bullet;
//子弹发射位置组件变量
UPROPERTY(VisibleAnywhere, Category = "Component")
USceneComponent* SpawnPoint;
//战机速度变量
UPROPERTY(EditAnywhere,Category="Move")
float Speed;
//射击间隔时间管理器变量
FTimerHandle TimerHandle_BetweenShot;
//游戏开始函数声明
virtual void BeginPlay() override;
//射击间隔变量
UPROPERTY(EditAnywhere, Category = "Fire")
float TimeBetweenShot;
//重启游戏时间管理器变量
FTimerHandle TimerHandle_Restart;
//阵亡音效变量
UPROPERTY(EditAnywhere,Category="Sound")
USoundCue* GameOverCue;
//射击音效变量
UPROPERTY(EditAnywhere, Category = "Sound")
USoundCue* ShootCue;
//推进粒子组件变量
UPROPERTY(VisibleAnywhere,Category="Component")
UParticleSystemComponent* ThrusterParticleComp;
//爆炸粒子变量
UPROPERTY(EditAnywhere,Category="Particle")
UParticleSystem* ExplosionParti

该博客介绍了使用虚幻引擎C++开发的Roguelike类型2D飞机大战Demo。玩家以第三人称俯视角控制战机与敌机战斗,击落得分,触碰敌机则游戏结束。还详细阐述了地图、战机、子弹、敌机等的实现,包括C++文件编写、蓝图类创建及类设置等,最后说明了编辑器的相关设置。
最低0.47元/天 解锁文章
559

被折叠的 条评论
为什么被折叠?



