Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.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
精灵的SFML向量和精灵碰撞错误 我正在用C++和SFML做游戏,我有一个严重的问题。 我想做的是,当我的玩家(又称人类角色)与一个项目发生碰撞时,只有那个项目应该被删除。例如,当玩家与“鸡”物品碰撞时,只有“鸡”物品应该被擦除,而不是其他物品。 然而,当我运行我的程序时,当玩家和“鸡”物品发生碰撞时,其他物品都会被擦除。我不知道为什么。我真的需要你的帮助。尽管我的英语很差,谢谢你的阅读_C++_Sfml - Fatal编程技术网

精灵的SFML向量和精灵碰撞错误 我正在用C++和SFML做游戏,我有一个严重的问题。 我想做的是,当我的玩家(又称人类角色)与一个项目发生碰撞时,只有那个项目应该被删除。例如,当玩家与“鸡”物品碰撞时,只有“鸡”物品应该被擦除,而不是其他物品。 然而,当我运行我的程序时,当玩家和“鸡”物品发生碰撞时,其他物品都会被擦除。我不知道为什么。我真的需要你的帮助。尽管我的英语很差,谢谢你的阅读

精灵的SFML向量和精灵碰撞错误 我正在用C++和SFML做游戏,我有一个严重的问题。 我想做的是,当我的玩家(又称人类角色)与一个项目发生碰撞时,只有那个项目应该被删除。例如,当玩家与“鸡”物品碰撞时,只有“鸡”物品应该被擦除,而不是其他物品。 然而,当我运行我的程序时,当玩家和“鸡”物品发生碰撞时,其他物品都会被擦除。我不知道为什么。我真的需要你的帮助。尽管我的英语很差,谢谢你的阅读,c++,sfml,C++,Sfml,这是我的代码: #include <SFML/Graphics.hpp> ... using namespace std; using namespace sf; ... int main () { ... //item Sprites Texture bombTex; bombTex.loadFromFile("images/bomb.png");

这是我的代码:

     #include <SFML/Graphics.hpp>
     ...
     using namespace std;
     using namespace sf;
     ...

     int main () {
     ...

     //item Sprites

     Texture bombTex;
     bombTex.loadFromFile("images/bomb.png");
     Sprite bomb;
     ...
     Texture bomb2Tex;
     bomb2Tex.loadFromFile("images/bomb_2.png");
     Sprite bomb_2;
     ...
     Texture cakeTex;
     cakeTex.loadFromFile("images/cake.png");
     Sprite cake;
     ...
     Texture coffeeTex;
     coffeeTex.loadFromFile("images/coffee.png");
     Sprite coffee;
     ...
    Texture chickenTex;
    chickenTex.loadFromFile("images/chicken.png");
    Sprite chicken;
    ...
    Texture pizzaTex;
    pizzaTex.loadFromFile("images/pizza.png");
    Sprite pizza;

    //item array (I made an item array to display & render various items in the game screen.)
    Sprite item[10];
    item[0] = bomb;
    item[1] = coffee;
    item[2] = bomb_2;
    item[3] = chicken;
    item[4] = pizza;

    std::vector<Sprite> items;
    items.push_back(Sprite(item[4]));

    ...

   while (window.isOpen())
  {   ...
      ...
    for (size_t i = 0; i < items.size(); i++)
    {
        if (humanArr[index].getGlobalBounds().intersects(item[i].getGlobalBounds())) 
        //humanArr[index] is a player Sprite.
        {
            ...
            items.erase(items.begin());
        }
     }
    ...
   window.clear();
    ...
   for (size_t i = 0; i < items.size(); i++)
        {
            window.draw(item[i]);
        }

    ...
   window.display();
   }
   return 0;
}
#包括
...
使用名称空间std;
使用名称空间sf;
...
int main(){
...
//物品精灵
纹理bombTex;
loadFromFile(“images/bomb.png”);
雪碧炸弹;
...
纹理bomb2Tex;
loadFromFile(“images/bomb_2.png”);
雪碧炸弹2;
...
质地cakeTex;
loadFromFile(“images/cake.png”);
雪碧蛋糕;
...
质地咖啡;
loadFromFile(“images/coffeeTex.png”);
雪碧咖啡;
...
纹理切肯特;
loadFromFile(“images/chicken.png”);
雪碧鸡;
...
纹理pizzaTex;
loadFromFile(“images/pizza.png”);
雪碧披萨;
//项目数组(我制作了一个项目数组,用于在游戏屏幕中显示和渲染各种项目。)
雪碧项目[10];
第[0]项=炸弹;
第[1]项=咖啡;
第[2]项=炸弹2;
第[3]项=鸡肉;
第[4]项=比萨饼;
向量项;
项目。推回(雪碧(项目[4]);
...
while(window.isOpen())
{   ...
...
对于(size_t i=0;i
用于(大小i=0;iitems.erase(items.begin());//谢谢你的回答!我真的很感激。但是,现在它在第一个碰撞的项目上运行良好,我的意思是,第一个项目在与玩家碰撞时擦除良好,但在以下项目上不起作用。确切地说,以下项目即使与玩家碰撞也不会擦除。而且,它会在最后一个代码上导致异常错误:“for”(size_t i=0;i