一运行到最后这一行就报错
vector>obstacleImgs;//存放每个障碍物的各个图片,
typedef struct obstcale
{
obstacle_type type;//障碍物类型
int imgIndex;//当前显示的图片序号
int x, y;//障碍物坐标
int speed;
int power;
bool exist;
}obstacle_t;
obstacle_t obstacles[OBSTACLE_COUNT];
void createObstacle()
{
int i;
for (i = 0; i < OBSTACLE_COUNT; i++)
{
if (obstacles[i].exist == false)
{
break;
}
}//这里的括号删了,放在void createObstacle的最后,代码就能跑起来,但似乎这个函数写的内容就无效了
if (i >= OBSTACLE_COUNT)
{
return;
}
obstacles[i].exist = true;
obstacles[i].imgIndex = 0;
obstacles[i].type = (obstacle_type)(rand() % OBSTACLE_TYPE_COUNT);
obstacles[i].x = WIN_width;
obstacles[i].y = 345 + 5-obstacleImgs[obstacles[i].type][0].getheight();//后面还有一些没写进来,调试到这里,下一步就报错
vector subscript out of range
第一次接触vector,查了好久也没弄明白是哪里越界
咋解决啊,求能人志士帮忙,感激不尽
你把最后一行那几个下标值打出来看看 在最后一行的上面打