CollidingObjects - X und Y Koordinaten der Variable in einem Array Speichern



  • Hallo Zusammen,

    ich bin derzeit dabei eine kleine Snake Abwandlung zu programmieren und da habe ich derzeit einen kleinen Bug, der sich nicht lösen lässt.

    Ich möchte eine CollidingObjects Funktion schreiben:

    void John::checkCollidingObjects()
    {
       QList <QGraphicsItem *> coll = this->collidingItems();
    
        for(int i = 0, n = coll.length(); i<n; i++)
        {
            Food *F = dynamic_cast<Food *>(coll[i]);
            if(F)
            {
               //Prüfen ob Variable John, die Variable Food trifft
    
               QPointF thisCenter(x(),y());
                QPointF foodCenter(F->x(),F->y());
                QLineF ln(thisCenter,foodCenter);
    
                if(ln.length() < 10)
                {
                    //Delete Food & setScore
                    gameplay->gameScene->removeItem(F);
                    delete F;
                    gameplay->score->setScore(gameplay->score->getScore()+F->score);
    
                }
            }
    }
    }
    

    Nu is das Problem - ich bekomme die X und Y Positionen des gespawnten Foods nicht effektiv ausgewertet, sodass mein Essen beim drüber laufen nicht verschwindet und mein Score folglich nicht steigt...

    void Movements::makeFood()
        {
            Food *F= new Food(this, "BURGER");
            F->setX(qrand()%(1400/40)*40);
            F->setY(qrand() % (880/40)*40);     
        }
    

    Das ist derzeit mein Foodspawn.

    Meine Frage ist - wie bekomme ich nun die X und Y Koordinaten in meinen Array? Ich zerbreche mir schon den ganzen Tag den Kopf darüber, komme aber auf keine Antwort... Ich brauche die beiden Positionen in meinem coll[i] Array um diese entsprechend vergleichen zu können...

    Lieben Dank vorab für die Antworten!

    Viele Grüße,
    Ashtari.



  • Ich sehe kein Array.


Log in to reply