你好!
我在尝试创建一个小型RPG来学习GameMaker,我刚开始做。 我需要为每个技能制作一个列表,每个列表中有像“伤害倍数”、“元素”、“成本”、“患病几率”等值,每个技能会是一个结构,如下所示:
{
name: "火球",
cost: 3,
elem: [` Elem.Fire` ], // 这将是各种元素的枚举
damage: 1.2, // 伤害公式的倍数
illsent_perc: 0.2, // 这个技能 inflict 的火灾病灾患病率是多少
target: Target.Single, // 这将是一个枚举,值为单个目标、所有目标和随机目标
num_of_hits: 1,
}
我想找一种方法来存储所有这些技能,以便稍后在战斗管理器中访问它们。
我的第一想法是制作一个全局数组,并为相应技能名字创建一个枚举,如下所示:
枚举 Skill {
Fireball,
Icecycle,
Thunder,
}
Skills = [<fireball 结构>, <icycle 结构>, <thunder 结构>];
这样我就可以调用 global.Skills[Skill.Fireball]。
然后我想的只是使用一个结构,可能是一个结构化的结构:
Skills = {
FireSkills: {
Fireball: <fireball 结构>
},
IceSkills: {
Icecycle: <icycle 结构>
},
ElectrSkills: {
Thunder: <thunder 结构>
},
}
这样我就可以调用global.Skills.FireSkills.Fireball。
在浏览网上后,我看到了有人提到“ds_lists”来存储技能,我不太清楚它们是什么。
我还看到了类似的代码如下:
功能技能(<技能参数>){
返回<技能参数>;
}
功能技能()构造{
静态<技能名称>=技能(<技能参数> );
...
}
然而似乎这种方法会带来一些魔法数字,并且在我的情况下似乎很困难,仅仅存储一些有意义的数字和一个字符串就足够了。
同样,我也需要一种方法来存储敌人的统计数据,我想解决的问题的解决方案应该与技能相同:在敌人的物体中使用一个ID来从数据集合中获取其统计数据,从数据集合中获取技能数据。
您有什么推荐?我是否应该学习“ds_列表”和构造函数?是否够用一个结构或一个数组?在现实中,我认为这应该能够扩展到100~200个独特的技能和敌人,并不打算在这个项目中实现太多技能和敌人,只是想学习对于大数目的技能和敌人什么会好坏。
感谢您的帮助!
评论 (0)