问题描述:
问题行:
float angle[count[weapon->level - 1]];
错误列表:
错误 119 error C2057: 应输入常量表达式 d:\android\workspace\hello11\classes\gamelayer.cpp
错误 120 error C2466: 不能分配常量大小为 0 的数组
错误 121 error C2133: “angle”: 未知的大小
134 IntelliSense: 表达式必须含有常量值
代码内容:
//第三个防御塔的攻击
void GameLayer::fireBulletThree(int weap, int target, float dirction, Point position)
{
//从存放怪的数组中拿到怪
Monsters* monster = (Monsters*)arrMon->objectAtIndex(target);
//从存放防御塔的数组中拿到防御塔
Weapon* weapon = (Weapon*)arrWeap->objectAtIndex(weap);
//确定发射子弹的数量
int count[4] = { 1, 2, 2, 3 };
Point* positionByLevel = new Point[count[weapon->level - 1]];
float angle[count[weapon->level - 1]];
//如果当前防御塔的等级为1
if (weapon->level == 1)
{
Point vacter1 = ccpForAngle(dirction - (15 * 3.1415926 / 180));
vacter1 = ccpNormalize(vacter1);
positionByLevel[0] = ccpAdd(weapon->getPosition(), ccpMult(vacter1, 36));
angle[0] = dirction;
}
//如果当前防御塔的等级为3或者为2
else if (weapon->level == 3 || weapon->level == 2)
{
Point vacter1 = ccpForAngle(dirction + (15 * 3.1415926 / 180));
Point vacter2 = ccpForAngle(dirction - (15 * 3.1415926 / 180));
vacter1 = ccpNormalize(vacter1);
vacter2 = ccpNormalize(vacter2);
positionByLevel[0] = ccpAdd(weapon->getPosition(), ccpMult(vacter1, 36));
positionByLevel[1] = ccpAdd(weapon->getPosition(), ccpMult(vacter2, 36));
angle[0] = dirction + (15 * 3.1415926 / 180);
angle[1] = dirction - (15 * 3.1415926 / 180);
}
//如果防御塔当前的等级为4
else if (weapon->level == 4)
{
Point vacter1 = ccpForAngle(dirction + (45 * 3.1415926 / 180));
Point vacter2 = ccpForAngle(dirction - (45 * 3.1415926 / 180));
vacter1 = ccpNormalize(vacter1);
vacter2 = ccpNormalize(vacter2);
positionByLevel[0] = position;
positionByLevel[1] = ccpAdd(weapon->getPosition(), ccpMult(vacter1, 36));
positionByLevel[2] = ccpAdd(weapon->getPosition(), ccpMult(vacter2, 36));
angle[0] = dirction;
angle[1] = dirction + (45 * 3.1415926 / 180);
angle[2] = dirction - (45 * 3.1415926 / 180);
}