【发布时间】:2021-08-27 16:16:35
【问题描述】:
所以我有一个结构,它保存游戏中实体的变量(命中点、x 和 y 坐标等),并且我有全局声明的结构。但是,我在“设置”函数中创建了实例,并希望在单独的“逻辑”函数中修改它们的变量。但显然,由于实例是“设置”函数的本地实例,“逻辑”函数无法修改它们的变量。
这是我当前代码的简化。
// Global space
struct entity {
int hp, atk, x, y;
};
void Setup()
{
entity dummy;
dummy.hp = 10;
dummy.atk = 2;
dummy.x = 5;
dummy.y = 5;
}
void Logic()
{
// if(dummy is attacked)
dummy.hp -= 4;
}
int main()
{
Setup();
while(game is not over)
Logic();
}
【问题讨论】:
-
研究函数返回值
-
函数也可以有参数。您可以让
logic使用enity,以便它可以在函数中使用它。 -
@NathanOliver 如果我创建了一个接受
entity但在logic内调用的函数怎么办?原因是logic处理移动和攻击(玩家和敌人的)以及寻路。我认为最好将它们中的每一个包装到它们自己的函数中并在logic下调用它们
标签: c++ scope game-development