Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将值传递给布尔数组_C++_Arrays_Boolean - Fatal编程技术网

C++ 将值传递给布尔数组

C++ 将值传递给布尔数组,c++,arrays,boolean,C++,Arrays,Boolean,我正在开发一个简单的2d游戏引擎,并试图建立一个系统,让玩家模型可以在特定对象后面移动。每当一个非玩家对象被闪电显示到屏幕上时,它的X和Y都会被记录在一个数组中,以便以后使用。因此,我建立了一个系统,如果玩家X和玩家Y以某种方式相对于环境对象的X和Y,环境对象通常不会立即闪烁,它会在玩家角色之前立即闪烁,以便玩家角色位于对象上方。我将一个真值交给一个布尔数组,而不是blit。我有一个int变量,每当一个对象被blit时,它会变大1,这样不同的X、Y和布尔值就会与数组中的某个位置相关联。从本质上讲

我正在开发一个简单的2d游戏引擎,并试图建立一个系统,让玩家模型可以在特定对象后面移动。每当一个非玩家对象被闪电显示到屏幕上时,它的X和Y都会被记录在一个数组中,以便以后使用。因此,我建立了一个系统,如果玩家X和玩家Y以某种方式相对于环境对象的X和Y,环境对象通常不会立即闪烁,它会在玩家角色之前立即闪烁,以便玩家角色位于对象上方。我将一个真值交给一个布尔数组,而不是blit。我有一个int变量,每当一个对象被blit时,它会变大1,这样不同的X、Y和布尔值就会与数组中的某个位置相关联。从本质上讲,系统如下所示:

HDcounter += 1;

forbiddenX[HDcounter] = modelX[modelNumber] + modelXChange;
forbiddenY[HDcounter] = modelY[modelNumber] + modelYChange;
forbiddenSpriteWidth[HDcounter] = 100;
forbiddenSpriteHeight[HDcounter] = 200;
forbiddenSpriteDepth[HDcounter] = 25;

if((forbiddenX[HDcounter] <= playerXE + forbiddenSpriteWidth[HDcounter]) && (forbiddenX[HDcounter] + forbiddenSpriteWidth[HDcounter] >= playerXE) && (forbiddenY[HDcounter] <= playerYE + forbiddenSpriteWidth[HDcounter]) && (forbiddenY[HDcounter] + forbiddenSpriteHeight[HDcounter] >= playerYE + 77))
{
     pineTreeBlitAP = true;
     blitModelAP[HDcounter] = true;
}
else
{
     modelIMAGE = IBFobjectENVIRO.loadIMG("pineTree.png");
     IBFobjectENVIRO.blitIMG(modelX[modelNumber] + modelXChange, modelY[modelNumber] +   modelYChange, windowMODELS, modelIMAGE, 0, 0, 200, 200);
}

你能更准确地描述一下你的问题,实际输出和预期输出吗?基本上,当我的播放器X和Y在一定距离内时,该函数清楚地识别出它在该距离内,因为对象停止了闪烁,但是出现了一些问题,因为应该发生的是对象没有停止闪烁,它只会在播放器被闪烁后闪烁。请添加更多上下文,例如,在pastebin.com或ideone.com上。BlitModelLap是什么类型的?是的,感谢您的更改,但是需要更多信息输入数据是什么。函数是如何调用的。没有上下文,很难理解细节。您能否提供一个调用相应错误行为的主函数。
void enviroment::blitEnviroModelsAP(SDL_Surface* BAPwindow, int modelAmount)
{
    SDL_Surface* modelAPimage;

    for(int model = 0; model < modelAmount; model++)
    {
        if((pineTreeBlitAP == true) && (blitModelAP[model] == true))
        {
            modelAPimage = IBFobjectENVIRO.loadIMG("pineTree.png");
            IBFobjectENVIRO.blitIMG(forbiddenX[model], forbiddenY[model], BAPwindow, modelAPimage, 0, 0, 200, 200);
        }
    }
}
int forbiddenX[2000] = {0}; 
int forbiddenY[2000] = {0}; 
int forbiddenSpriteHeight[2000] = {0}; 
int forbiddenSpriteWidth[2000] = {0}; 
int forbiddenSpriteDepth[2000] = {0};
int blitModelAP[2000] = {false};