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

网站建设网页制作多少钱wordpress tree

网站建设网页制作多少钱,wordpress tree,网站后台地址忘了,怎么查网站是那个公司做的1 实现思路设计 定义一个结构体记录技能树一个单元的信息&#xff0c;命名为FStrengthenCellInfo&#xff0c;一个TArray记录技能树整体信息&#xff0c;需要以下信息&#xff1a; 1.TArray前置技能index 2.FString 描述文本 3.TArray<FMyItemInfo>激活需要的物品ID和…

1 实现思路设计

        定义一个结构体记录技能树一个单元的信息,命名为FStrengthenCellInfo,一个TArray记录技能树整体信息,需要以下信息:

1.TArray前置技能index

2.FString 描述文本

3.TArray<FMyItemInfo>激活需要的物品ID和数量

4.bool 是否已经激活

        一个新的Save类记录技能树信息

        强化条件:所有前置技能激活,消耗物品全部都够

        强化时:扣除消耗物品-->修改属性-->保存属性-->更新技能树信息-->保存技能树信息-->更新UI显示

        设计一个道具用来测试,ID:1 DisplayName:源能结晶 CurrentOwnedCnt:1000 

2 实现过程

2.1 UStrengthenInfoSave

用来保存数据的类,实现了GetSet

.cpp:

// Fill out your copyright notice in the Description page of Project Settings.#include "StrengthenSystem/StrengthenInfoSave.h"TArray<FStrengthenCellInfo> UStrengthenInfoSave::GetStrengthenTreeInfo()
{return StrengthenTreeInfo;
}
void UStrengthenInfoSave::SetStrengthenTreeInfo(TArray<FStrengthenCellInfo> InStrengthenTreeInfo)
{StrengthenTreeInfo = InStrengthenTreeInfo;
}

 .h:

// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"
#include "GameFramework/SaveGame.h"
#include "Items/WarehouseManager.h"
#include "StrengthenInfoSave.generated.h"USTRUCT(BlueprintType)
struct ARPG_CPLUS_API FStrengthenCellInfo
{GENERATED_USTRUCT_BODY()UPROPERTY(EditAnywhere, BlueprintReadOnly)TArray<int32> PreIndex;UPROPERTY(EditAnywhere, BlueprintReadOnly)FString DescriptionText;UPROPERTY(EditAnywhere, BlueprintReadOnly)TArray<FMyItemInfo> NeededItems;UPROPERTY(EditAnywhere, BlueprintReadOnly)bool bIsActive=false;FStrengthenCellInfo(){PreIndex=TArray<int32>();NeededItems=TArray<FMyItemInfo>();DescriptionText = FString("Default");bIsActive=false;}
};
/*** */
UCLASS()
class ARPG_CPLUS_API UStrengthenInfoSave : public USaveGame
{GENERATED_BODY()
private:TArray<FStrengthenCellInfo> StrengthenTreeInfo;
public:UFUNCTION(BlueprintCallable)TArray<FStrengthenCellInfo> GetStrengthenTreeInfo();UFUNCTION(BlueprintCallable)void SetStrengthenTreeInfo(TArray<FStrengthenCellInfo> InStrengthenTreeInfo);
};

呜呜出现了一个难以解决的bug,正在努力找。。。,改完回来更新

(1.22补充)2.2 UStrengthenManager

继承的UObject

实现了下边这几个函数:

        Save、Load读取和保存到文件里

        GetStrengthedCellInfo是按照index读取技能树里的一个单位的信息,这里暂时只有一个技能树,就是这个StrengthedTree_1

UPROPERTY(EditDefaultsOnly)TArray<FStrengthenCellInfo> StrengthenTree_1;UFUNCTION(BlueprintCallable)void Save();UFUNCTION(BlueprintCallable)void Load();UFUNCTION(BlueprintCallable)FStrengthenCellInfo GetStrengthenCellInfo(int index);

具体实现:

void UStrengthenManager::Save()
{UStrengthenInfoSave* SaveData=Cast<UStrengthenInfoSave>(UGameplayStatics::CreateSaveGameObject(UStrengthenInfoSave::StaticClass()));SaveData->SetStrengthenTreeInfo(StrengthenTree_1);UGameplayStatics::SaveGameToSlot(SaveData,FString("StrengthenInfo"), 0);
}void UStrengthenManager::Load()
{UStrengthenInfoSave* SaveData=Cast<UStrengthenInfoSave>(UGameplayStatics::LoadGameFromSlot(FString("StrengthenInfo"), 0));StrengthenTree_1=SaveData->GetStrengthenTreeInfo();
}
FStrengthenCellInfo UStrengthenManager::GetStrengthenCellInfo(int index)
{if(index>=0&&index<StrengthenTree_1.Num()){return StrengthenTree_1[index];}return FStrengthenCellInfo();
}

还有就是测试用的技能树在构造的时候初始化了:

	FStrengthenCellInfo SCI_1=FStrengthenCellInfo();SCI_1.bIsActive = false;SCI_1.DescriptionText=FString("BaseAttack+10");TArray<FMyItemInfo>NeededItems;NeededItems.Add(FMyItemInfo(1,10,FString("源能结晶")));SCI_1.NeededItems=NeededItems;SCI_1.PreIndex=TArray<int32>();StrengthenTree_1.Add(SCI_1);SCI_1.bIsActive = false;SCI_1.DescriptionText=FString("MaxHealth+100");NeededItems.Empty();NeededItems.Add(FMyItemInfo(1,15,FString("源能结晶")));SCI_1.NeededItems=NeededItems;SCI_1.PreIndex={0};StrengthenTree_1.Add(SCI_1);SCI_1.bIsActive = false;SCI_1.DescriptionText=FString("BaseResistance+10");NeededItems.Empty();NeededItems.Add(FMyItemInfo(1,15,FString("源能结晶")));SCI_1.NeededItems=NeededItems;SCI_1.PreIndex={0};StrengthenTree_1.Add(SCI_1);

(1.22补充)2.3 UUserWidget_StrengthenPad中的修改

添加了一个接口函数来调用Manager里的Get:

FStrengthenCellInfo UUserWidget_StrengthenPad::GetStrengthenCellInfoInterface(int index)
{if(!StrengthenManager)StrengthenManager=NewObject<UStrengthenManager>();if(StrengthenManager!=nullptr){return StrengthenManager->GetStrengthenCellInfo(index);}return FStrengthenCellInfo();
}

强化的核心是这个函数:

        所有的需要物品的数量都够了才能进行强化

        强化属性

        移除消耗物品

        更新UI信息

        保存数据

//TODO:前置技能条件检查

bool UUserWidget_StrengthenPad::TryStrengthenByCellIndex(int index)
{if(!WarehouseManager){UE_LOG(LogTemp,Warning,TEXT("WarehouseManager ptr in UUserWidget_StrengthenPad is Not Valid"));return false;}FStrengthenCellInfo temp=StrengthenManager->GetStrengthenCellInfo(index);bool bCanStrengthen=true;for(int i=0;i<temp.NeededItems.Num();i++){int OwnedCnt=WarehouseManager->GetItemInfoByItemId(temp.NeededItems[i].ItemId).CurrentOwnedCnt;if(temp.NeededItems[i].CurrentOwnedCnt>OwnedCnt)//需要的比有的大,则不能强化{bCanStrengthen=false;}}if(bCanStrengthen){//这里处理强化逻辑,注意不要错if(index==0){StrengthenByName(FString("BaseAttack"),10);for(int i=0;i<temp.NeededItems.Num();i++){WarehouseManager->RemoveItemFromWarehouse(temp.NeededItems[i].ItemId,temp.NeededItems[i].CurrentOwnedCnt);}WarehouseManager->SaveData();UpdatePadInfo();SaveToSlot();return true;}if(index==1){StrengthenByName(FString("MaxHealth"),100);for(int i=0;i<temp.NeededItems.Num();i++){WarehouseManager->RemoveItemFromWarehouse(temp.NeededItems[i].ItemId,temp.NeededItems[i].CurrentOwnedCnt);}WarehouseManager->SaveData();UpdatePadInfo();SaveToSlot();return true;}if(index==2){StrengthenByName(FString("BaseResistance"),10);for(int i=0;i<temp.NeededItems.Num();i++){WarehouseManager->RemoveItemFromWarehouse(temp.NeededItems[i].ItemId,temp.NeededItems[i].CurrentOwnedCnt);}WarehouseManager->SaveData();UpdatePadInfo();SaveToSlot();return true;}return false;}return false;
}

3 测试

        在UI蓝图里把更新信息绑定好,终于行辣!

        对比一下这俩图,相关的参数变化都对(其实调了挺久的)

 

http://www.yayakq.cn/news/233767/

相关文章:

  • 周口建设网站的代运营公司排行榜
  • 个人网站命名自己做网站 需要哪些东西
  • 重庆网站设计总部丽水房产网站建设
  • 飓风算法受影响的网站有哪些网页设计论文总结怎么写
  • 遵义酷虎网站开发做二手钢结构网站
  • 综合类门户网站有哪些网站 移动化
  • 网站群信息管理系统动漫与游戏制作专业有前途吗
  • 注册网站页面跳转错误wordpress可视化编辑插件下载
  • 网站的锚点链接怎么做效果图在线制作
  • 企业为什么要做建站wordpress装饰设计主题
  • 网站网页设计收费网站底备案号链接代码
  • 邹城网站制作闵行做网站费用
  • 哪个做简历的网站可以中英的购物网站多少钱
  • 南阳专业做网站公司哪家好网站建设技术外包
  • 网站引入百度地图网站建设搞笑广告词
  • 芜湖企业网站制作g3云推广是什么
  • 做一个网站成本是多少合适湖南环达公路桥梁建设总公司网站
  • 都匀市网站建设合肥网站到首页排名
  • 免费网站技术重庆公共信息交易资源网
  • 做热点图现在用什么网站整合营销传播的概念
  • 网站+建设+拖拉+源码+系统低调与华丽wordpress下载
  • 易销云建站公司代替 wordpress
  • 凯里市建设局网站河南seo推广公司
  • 做网站群建一个简单的网站多少钱
  • 博客网站建设方案书矿大师德建设网站
  • 网站开发 天津韩国网站模板下载地址
  • 杭州市住房与城乡建设部网站渭南中学校园网站建设工作汇报
  • 网站建设都有什么类型上海猎头公司名录
  • 平面设计教程网站有哪些唐山公司建设网站
  • 电子商务平台(网站)建设方式wordpress添加端口访问