提问人:mikmke 提问时间:10/20/2023 最后编辑:Mark Rotteveelmikmke 更新时间:10/21/2023 访问量:82
如何在类中初始化地图数据结构?
How can I initialize a map data structure within a class?
问:
我是 C++ 和 raylib 的新手,目标是模拟 Pacman 游戏。
如何在类中初始化地图数据结构?例如,当我编写一个吃豆人角色并需要更改其动画时(例如:死亡、攻击或移动),我必须获取 sprite 的 startX startY 和总帧数。
例:
struct AnimationData {
std::string name;
int startX;
int startY;
int totalFrame;
};
AnimationData[] animations = {
{"die",1,2,3},{"attacking",1,2,3}
}
如何在类内初始化?
我尝试使用以下代码,但编译器正在生成错误。
class Pacman :public AnimateObject {
public:
const static struct AnimationData {
std::string name;
int startX;
int startY;
int totalFrame;
};
AnimationData[] animations = {
{"die",1,2,3},{"attacking",1,2,3}
}
AnimationData currentAnimationData;
void setAnimation(AnimationData data)
}
我想使用“setAnimation”函数来更改角色的当前动画。或者我最初的想法是错误的?我应该用另一种方式来控制动画吗?
根据以下评论中的建议,我修改了代码如下。我不确定这是否正确。
在 pacman.h 中
struct AnimationData {
std::string name;
int startX;
int startY;
int totalFrame;
};
class Pacman{
public:
const static std::array<AnimationData,2> animations;
AnimationData currentAnimationData;
void setAnimation(AnimationData data)
}
在 pacman.cpp 中
const std::array<AnimationData, 2> Pacman::animations =
{
AnimationData{"die",1,2,3},
AnimationData{"moving",1,2,3}
};
下面是一个最小的可重现示例
答: 暂无答案
评论
const static struct AnimationData {
不是 C++std::arary
std::vector