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

网站建设中html下载国内免费发布产品的平台

网站建设中html下载,国内免费发布产品的平台,lnmp新手 wordpress,中山精品网站建设方案在这一篇里,我们将实现对存档的删除功能,在删除时会有弹框确认。接着实现获取玩家的等级和地图名称和存档位置,我们可以通过存档进入游戏,玩家在游戏中可以在存档点存储存档。 实现删除存档 删除存档需要一个弹框确认&#xff0…

在这一篇里,我们将实现对存档的删除功能,在删除时会有弹框确认。接着实现获取玩家的等级和地图名称和存档位置,我们可以通过存档进入游戏,玩家在游戏中可以在存档点存储存档。

实现删除存档

删除存档需要一个弹框确认,防止玩家误操作,所以,我们需要一个弹框的用户控件。
创建一个新的蓝图,基于我们之前自定义的用户空间基类。
在这里插入图片描述
然后添加对应的UI,外层添加覆层是为了保证动态创建添加到视口时,位置正确,尺寸框内的组件为组成弹框的内容。
在这里插入图片描述
里面比较注意的点一个是边框的设置,我们需要将其设置为边界,然后调整边缘。
在这里插入图片描述
我增加了一个背景模糊,保证玩家注意点只关注到弹框。
在覆层这里,我们将事件修改为可视,这样,鼠标事件将不会传递到后面的ui上,将不会参数误触的问题
在这里插入图片描述
下面为制作完成的效果。
在这里插入图片描述
接下来,我们为弹框取消按钮和确认按钮绑定点击事件。

在取消时,我们只需要清除自身即可
在这里插入图片描述
在确认时,我们通过一个事件分发器,外部可以绑定事件分发器的回调,来绑定触发确认后的回调
在这里插入图片描述

增加删除功能

我们在GameMode里增加一个删除存档的函数,用于删除已经存在的存档

	/*** 删除存档* @param SlotName 需要删除存档对应的视图模型实例名称* @param SlotIndex 存档索引*/static void DeleteSlotData(const FString& SlotName, int32 SlotIndex);

实现就是通过函数获取存档,存在就删除即可。

void ARPGGameMode::DeleteSlotData(const FString& SlotName, const int32 SlotIndex)
{//检查是否有对应名称的存档if(UGameplayStatics::DoesSaveGameExist(SlotName, SlotIndex)){//删除已保存的存档UGameplayStatics::DeleteGameInSlot(SlotName, SlotIndex);}
}

接着,我们在加载界面的视图模型里增加一个删除存档事件,用于用户控件蓝图调用

	/*** 删除存档* @param Slot 点击存档的位置,以索引来代表*/UFUNCTION(BlueprintCallable)void DeleteButtonPressed(int32 Slot);

在实现这里,通过调用GameMode里的事件删除,然后修改显示用户控件枚举,更新对应存档UI显示的用户控件。

void UMVVM_LoadScreen::DeleteButtonPressed(const int32 Slot)
{//删除存档const ARPGGameMode* RPGGameMode = Cast<ARPGGameMode>(UGameplayStatics::GetGameMode(this));RPGGameMode->DeleteSlotData(LoadSlots[Slot]->GetSlotName(), Slot);//修改用户控件显示LoadSlots[Slot]->LoadSlotStatus = Vacant; //修改为创建存档LoadSlots[Slot]->InitializeSlot(); //修改存档显示
}

接着,我们在对应的存档用户控件里增加一个按钮,用于删除存档。
在这里插入图片描述
在蓝图初始化回调里,我们绑定删除按钮的点击事件,创建一个弹框来添加到视口,并监听事件分发器的事件,如果在弹框选择了确认,将触发删除事件,我们使用添加到加载界面的视图模型的删除函数删除即可。
在这里插入图片描述

实现地图名称更新

在创建新存档这里,我们需要实现读取到地图的名称,并且地图名称需要是可以自定义的。
首先,我们修改加载界面使用的GameMode的父类,让其基础战斗场景使用的蓝图类,这样,它也会继承类里设置的数据,我们只需要在父类上设置,子类上也会成为默认值。
在这里插入图片描述
接着,我们将一些不必要的类设置恢复到之前状态,战斗场景使用的,不必要在加载界面使用。
在这里插入图片描述
接着,我们在c++里在GameMode类里增加一些配置,用于配置初始进入的地图和地图名称,并增加一个映射,可以增加多个地图。
这里映射使用了TSoftObjectPtr,这个指针只保存路径,如果不使用,对应的资源不会加载到场景,可以在需要时再加载。

	//初始地图名称UPROPERTY(EditDefaultsOnly)FString DefaultMapName;//游戏初始地图UPROPERTY(EditDefaultsOnly)TSoftObjectPtr<UWorld> DefaultMap;//地图名称和地图的映射UPROPERTY(EditDefaultsOnly)TMap<FString, TSoftObjectPtr<UWorld>> Maps;

然后覆写BeginPlay函数,在BeginPlay里将初始地图加入到映射

protected:virtual void BeginPlay() override;
void ARPGGameMode::BeginPlay()
{Super::BeginPlay();Maps.Add(DefaultMapName, DefaultMap);
}

然后增加一个函数,用于进入对应地图

void TravelToMap(const UMVVM_LoadSlot* Slot);

我们通过UGameplayStatics::OpenLevelBySoftObjectPtr加载软引用的地图,它在未使用时不会加载,所以在打开时,会出现卡顿。

void ARPGGameMode::TravelToMap(const UMVVM_LoadSlot* Slot)
{const FString SlotName = Slot->GetSlotName();const int32 SlotIndex = Slot->SlotIndex;//打开地图UGameplayStatics::OpenLevelBySoftObjectPtr(Slot, Maps.FindChecked(Slot->GetMapName()));
}

接着打开蓝图,我们设置初始的地图和名称。
在这里插入图片描述
接着,我们需要在用户控件上让其自动更新名称,在存档的视图模型上增加对地图名称的相关设置
在这里插入代码片
接着在加载界面视图模型里在创建存档时设置,
在这里插入图片描述
在获取存档后,记得设置存档用户控件使用的视图模型的地图名称。
在这里插入图片描述
存档视图模型可以获取到数据,我们接着增加一个函数,用于进入游戏的事件调用,用于打开新关卡。

void UMVVM_LoadScreen::EnterGameButtonPressed(const int32 Slot)
{ARPGGameMode* RPGGameMode = Cast<ARPGGameMode>(UGameplayStatics::GetGameMode(this));RPGGameMode->TravelToMap(LoadSlots[Slot]);
}

最后,我们在显示存档的用户控件里绑定地图名称的显示
在这里插入图片描述
并绑定加载进度的点击回调,调用进入关卡事件,并测试即可。
在这里插入图片描述
在这里插入图片描述

http://www.shuangfujiaoyu.com/news/9483.html

相关文章:

  • 3a公司网络营销方案seo策划
  • 多语言外贸网站建设国内十大软件培训机构
  • 公司策划推广郑州seo优化哪家好
  • 免费申请账号网站营业推广策划方案
  • 个人做网站怎么盈利深圳知名网络优化公司
  • 网站续费自己做优化网站建设seo
  • 自己建网站教程外贸高端网站设计公司
  • 常州城投建设招标网站东营百度推广公司
  • 南京建设工程招聘信息网站电商运营培训哪个机构好
  • 网站最新点击量排名seo属于技术还是营销
  • 有哪些做包装设计网站好些单页网站设计
  • 沈阳企业网站开发定制磁力搜索器
  • 做化工回收上什么网站佛山做seo推广公司
  • 建设商务网站需要哪些步骤网站优化seo方案
  • 搜索引擎优化人员优化登封网站关键词优化软件
  • 绍兴seo个人做seo怎么赚钱
  • 百度不让访问危险网站怎么办软文营销的宗旨是什么
  • 茂名网站建设公司公司品牌推广方案范文
  • 阆中网站建设01hl免费b2b
  • 门户网站注意事项电脑零基础培训班
  • 手机网站cms 开源营销咨询
  • 西安做推广网站设计电工培训技术学校
  • 新网站应该怎么做seo谷歌商店paypal三件套
  • 新手做网站免费教程口碑推广
  • 做网站的基础架构湖南网站制作哪家好
  • 如何建设网站的论文seo关键词排名报价
  • 做网站公司哪个好百度问答我要提问
  • 天眼查公司查询官网百度站长工具seo
  • node.js 打开wordpress九江seo公司
  • react做的电商网站能上线吗站长工具综合查询系统