listing1.cpp
来自「C人工智能游戏开发的一些实例源代码 C Game development in 」· C++ 代码 · 共 58 行
CPP
58 行
/* Copyright (C) Richard Evans, 2001.
* All rights reserved worldwide.
*
* This software is provided "as is" without express or implied
* warranties. You may freely copy and compile this source into
* applications you distribute provided that the copyright text
* below is included in the resulting source code, for example:
* "Portions Copyright (C) Richard Evans, 2001"
*/
// So we need another way of defining objects, one which makes
// it easy for us to iterate through the attributes:
class Attribute
{
public:
virtual int GetValueRange()=0
virtual int GetValue()=0
virtual char* GetName()=0
};
class Health : public Attribute
{
...
};
class Energy : public Attribute
{
...
};
class Object
{
protected:
Attribute** Attributes;
public:
virtual int GetNumAttributes()=0;
...
};
class Villager : public Object
{
public:
int GetNumAttributes();
...
};
// Now it is easy to iterate through the attributes:
void Object::IterateThroughAttributes(void (*function)(Attribute*))
{
for(int i=0; i<GetNumAttributes(); i++)
{
function(Attributes[i]);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?