当前位置: 首页 > news >正文

如何保护我做的网站模板安徽建设局网站

如何保护我做的网站模板,安徽建设局网站,深圳网站建设金瓷网络,品牌推广的目的一、给角色的武器添加弹药 1.创建界面#xff0c;根据笔记23的界面中添加 2.绑定界面控件 UPROPERTY(meta (Bindwidget))UTextBlock* WeaponAmmoAmount;UPROPERTY(meta (Bindwidget))UTextBlock* CarriedAmmoAmount; 3.添加武器类型枚举 3.1创建武器类型枚举头文件 3.2创建文…一、给角色的武器添加弹药 1.创建界面根据笔记23的界面中添加 2.绑定界面控件 UPROPERTY(meta (Bindwidget))UTextBlock* WeaponAmmoAmount;UPROPERTY(meta (Bindwidget))UTextBlock* CarriedAmmoAmount; 3.添加武器类型枚举 3.1创建武器类型枚举头文件 3.2创建文件时默认添加的路径是在Intermediate/ProjectFiles文件夹中通过#include 包含头文件时会找不到对应的头文件需要更改路径我是将所有武器类的C文件放到Weapon文件夹中所以我将武器类型头文件放到了Weapon文件夹中。 3.3创建枚举 #pragma onceUENUM(BlueprintType) enum class EWeapoType : uint8 {EWT_AssaultRifle UMETA(DisplayName Assault Rifle),EWT_MAX UMETA(DisplayName DefaultMAX), }; 3.4创建武器弹药数量捡起武器的声音 /*** 弹药数量 */UPROPERTY(EditAnywhere, ReplicatedUsing OnRep_Ammo)int32 Ammo;//弹药数量UFUNCTION()void OnRep_Ammo();UPROPERTY(EditAnywhere)int32 MagCapacity;//最大弹药数量void SpendRound();void SetHUDAmmo();UPROPERTY()class ABlasterCharacter* BlasterOwnerCharacter; // 当前持有武器的角色UPROPERTY()class ABlasterPlayerController* BlasterOwnerController; // 当前持有武器的角色控制器UPROPERTY()EWeapoType WeaponType;/*** 武器的声音*/UPROPERTY(EditAnywhere)class USoundCue* EquipSound;bool IsEmpty(); FORCEINLINE EWeapoType GetWeaponType() const { return WeaponType; } FORCEINLINE int32 GetAmmo() const { return Ammo; } FORCEINLINE int32 GetMagCapacity() const { return MagCapacity; } bool AWeapon::IsEmpty() {return Ammo 0; }void AWeapon::OnRep_Ammo() {//BlasterOwnerCharacter BlasterOwnerCharacter nullptr ? CastABlasterCharacter(GetOwner()) : BlasterOwnerCharacter;SetHUDAmmo(); }void AWeapon::SpendRound() {Ammo FMath::Clamp(Ammo - 1,0,MagCapacity);SetHUDAmmo(); }void AWeapon::SetHUDAmmo() {BlasterOwnerCharacter BlasterOwnerCharacter nullptr ? CastABlasterCharacter(GetOwner()) : BlasterOwnerCharacter;if (BlasterOwnerCharacter){BlasterOwnerController BlasterOwnerController nullptr ? CastABlasterPlayerController(BlasterOwnerCharacter-Controller) : BlasterOwnerController;if (BlasterOwnerController){BlasterOwnerController-SetHUDWeaponAmmo(Ammo);}} } 3.5.因为新添加了两个显示弹药数量的地方所以给PlayerController添加设置界面的函数 void SetHUDWeaponAmmo(int32 Ammo);void SetHUDCarriedAmmo(int32 Ammo); void ABlasterPlayerController::SetHUDWeaponAmmo(int32 Ammo) {BlasterHUD BlasterHUD nullptr ? CastAABasterHUD(GetHUD()) : BlasterHUD;bool bHUDValid BlasterHUD BlasterHUD-CharacterOverlay BlasterHUD-CharacterOverlay-WeaponAmmoAmount;if (bHUDValid){FString AmmoText FString::Printf(TEXT(%d), Ammo); // FloorToInt 向下取整BlasterHUD-CharacterOverlay-WeaponAmmoAmount-SetText(FText::FromString(AmmoText));} }void ABlasterPlayerController::SetHUDCarriedAmmo(int32 Ammo) {BlasterHUD BlasterHUD nullptr ? CastAABasterHUD(GetHUD()) : BlasterHUD;bool bHUDValid BlasterHUD BlasterHUD-CharacterOverlay BlasterHUD-CharacterOverlay-CarriedAmmoAmount;if (bHUDValid){FString CarriedAmmoText FString::Printf(TEXT(%d), Ammo); // FloorToInt 向下取整BlasterHUD-CharacterOverlay-CarriedAmmoAmount-SetText(FText::FromString(CarriedAmmoText));} } 3.6添加重新加载弹药功能当前武器弹药的数量播放换弹动画的功能 /* 换弹 */UFUNCTION(Server, Reliable)void ServerReload();/* 换弹 *//* 处理换弹 */void HandleReload();/* 处理换弹 *//** 重新加载弹药函数 */void Reload();/** 处理设置完成战斗状态 */UFUNCTION(BlueprintCallable)void FinishReloading();/** 计算重新加载弹药的数量 */int32 AmountToReload();//当前装备的武器弹药UPROPERTY(ReplicatedUsing OnRep_CarriedAmmo)int32 CarriedAmmo;UFUNCTION()void OnRep_CarriedAmmo();bool CanFire();// 是否可以开火函数UPROPERTY(ReplicatedUsing OnRep_CombatState)ECombatState CombatState ECombatState::ECS_Unoccupied;UFUNCTION()void OnRep_CombatState();void InitializeCarriedAmmo();TMapEWeapoType, int32 CarriedAmmoMap; void UCombatComponent::OnRep_CarriedAmmo() {Controller Controller nullptr ? CastABlasterPlayerController(Character-Controller) : Controller;if (Controller){Controller-SetHUDCarriedAmmo(CarriedAmmo);} }bool UCombatComponent::CanFire() {if (EquippedWeapon nullptr) return false;return !EquippedWeapon-IsEmpty() bCanFire CombatState ECombatState::ECS_Unoccupied; }void UCombatComponent::OnRep_CombatState() {switch (CombatState){case ECombatState::ECS_Reloading:HandleReload();break;case ECombatState::ECS_Unoccupied:if (bFireButtonPressed){Fire();}break;} }void UCombatComponent::FinishReloading() {if (Character nullptr) return;if (Character-HasAuthority()){CombatState ECombatState::ECS_Unoccupied;UpdateAmmoValues();}if (bFireButtonPressed){Fire();} }void UCombatComponent::HandleReload() {Character-PlayReloadMontage(); }void UCombatComponent::Reload() {if (CarriedAmmo 0 CombatState ! ECombatState::ECS_Reloading){ServerReload();} }void UCombatComponent::ServerReload_Implementation() {if (Character nullptr || EquippedWeapon nullptr) return;CombatState ECombatState::ECS_Reloading;HandleReload(); }int32 UCombatComponent::AmountToReload() {if (EquippedWeapon nullptr) return 0;int32 RoomInMag EquippedWeapon-GetMagCapacity() - EquippedWeapon-GetAmmo();if (CarriedAmmoMap.Contains(EquippedWeapon-GetWeaponType())){int32 AmountCarried CarriedAmmoMap[EquippedWeapon-GetWeaponType()];int32 Least FMath::Min(RoomInMag,AmountCarried);return FMath::Clamp(RoomInMag, 0, Least);}return 0; }void UCombatComponent::InitializeCarriedAmmo() beginplay中调用需要检查HasAuthority() {CarriedAmmoMap.Emplace(EWeapoType::EWT_AssaultRifle, StartingARAmmo); } 3.7.在装备武器时调用 if (CarriedAmmoMap.Contains(EquippedWeapon-GetWeaponType())){CarriedAmmo CarriedAmmoMap[EquippedWeapon-GetWeaponType()];}Controller Controller nullptr ? CastABlasterPlayerController(Character-Controller) : Controller;if (Controller){Controller-SetHUDCarriedAmmo(CarriedAmmo);}if (EquippedWeapon-EquipSound){UGameplayStatics::PlaySoundAtLocation(this,EquippedWeapon-EquipSound,Character-GetActorLocation());}if (EquippedWeapon-IsEmpty()){Reload();} 3.8.蓝图设置
http://www.hkea.cn/news/14279134/

相关文章:

  • 网站开发编写籍贯代码网络营销专业属于什么类别
  • 湛江网站如何制作做网站的图片的内存
  • 农产品网站如何做地推长沙点梦网站建设
  • 火星免费建网站昆山市建设监察大队官方网站
  • 免费搭建微信网站app开发定制公司哪家好
  • 某个网站做拍卖预展的好处双浩建设网站
  • 论坛网站模板拉新接单网
  • 电商平台网站制作费用深圳网络推广哪家好
  • 网站头部导航兰州建设网站的网站
  • 天津做网站推广的公司重庆seo排名扣费
  • 长沙网站 建设推广世云网络在线推广是网站推广的首要工具
  • 遵化市城乡建设规划局网站怎样用电脑和网訨自己做网站
  • 网站系统方案设计广州专业的网站建设公司哪家好
  • 电子商务网站功能介绍wordpress seo插件哪个好
  • 徐汇制作网站哪家好如何用ps做网站
  • 外贸网站平台都有哪些织梦做商城类网站好做吗
  • 知名营销网站最大的网站
  • 网站的架设小程序定制开发合同
  • 在建设厅网站上下载资质标准淘宝网页设计招聘
  • 可以下载源程序的网站珠海网页设计公司
  • 骏域网站建设网站建设要点
  • 邢台哪里可以做网站商业计划书ppt模板免费下载
  • 成都网站建设及推广网站建设书 模板下载
  • 怎样给网站做超链接wordpress 翻页重复
  • 找个网站2021能看到怎么做模板wordpress
  • 高明区住房和城乡建设局网站网站建设用什
  • 网站如何防止别人抄袭可做百科资料参考的网站
  • 怎样建移动网站将自己做的网站发布到
  • 深圳免费网站制作哪个好如何写市场调研报告
  • 公司做外地网站什么网站建设比较好的