所以這裏是可用的代碼。張貼它沒有任何改變。 有X和Y值必須介於0和1024之間。tyleSize是1024;分鐘和max在這種情況下根本不起作用?
//爲X
int loffx=accurate(curphisobj->x) + (rand() % 100) - 50; //some math, doent matter
loffx=max(loffx,1);
loffx=min(loffx,tyleSize);
//用於Y
int loffy=accurate(curphisobj->y) + (rand() % 100) - 50;
loffy=max(loffy,1);
loffy=min(loffy,tyleSize-3);
但如果我把它寫這樣的:
int loffy=min(max(accurate(curphisobj->y) + (rand() % 100) - 50,1),tyleSize - 2);
int loffx=min(max(accurate(curphisobj->x) + (rand() % 100) - 50,0),tyleSize);
我得到loffx和loffy 1034,1029, -5, - 2,各種規格的最大和最小未切割。
有什麼我不知道C++編譯器,或有一些愚蠢的錯誤?
定義'max'和'min',同樣'精確',你在做什麼?你使用的任何命名空間,任何文件都是'include'd?.. –
你需要一個鉗位功能? –
其聲明未顯示的類型的簽名?這些'std :: min'和'std :: max'? –