【UE开发】2D飞机大战Demo

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

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值