디시 들여쓰기 병신으로 만들어버려서 차마 전체소스는 못올려주겠고 (필요하면 올려줄게)
일단 오류구문
if(canPass[mapPos[act[i].pos.x+(act[i].pos.x<act[i].targetPos.x)-(act[i].pos.x>act[i].targetPos.x),act[i].pos.y]]){
act[i].pos.x+=(act[i].pos.x<act[i].targetPos.x)-(act[i].pos.x>act[i].targetPos.x);
}
오류는 저 조건문에서 나고있어
error C2107: 인덱스가 잘못되어 간접 참조를 사용할 수 없습니다.
그리고 변수 선언한 구간들은
//게임관련 변수 초기화
for(i=0;i<MapWidth;i++)for(j=0;j<MapWidth;j++)
mapPos[i][j]=random(6);
//블록 통행여부
canPass[0]=1;
canPass[1]=1;
canPass[2]=1;
canPass[3]=1;
canPass[4]=1;
canPass[5]=1;
canPass[6]=0;
MapWidth는 define으로 500으로 해뒀음
그리고 Object 구조체 act 속성은
typedef struct Position{
int x,y;
}Position;
typedef struct Sprite{
SDL_Surface *res;
int width,height,xoffset,yoffset;
}Sprite;
typedef struct Object{
Sprite spr;
Position pos,targetPos;
int flag;
}Object;
이렇게 생긴 ㅎ
저 오류가 왜뜬걸까? (필요하면 전체소스 다 올릴게)
코드 제거해가면서 디버깅해보니까 저 canPass부분에서 오류가 났어.. ㅠ