I have this kind of code in a .js file, referenced from the .qml file:

var aliens = new Array(10*5);


//Create all aliens and position them on the board in rows

function createAliens() {

    //Row 1

    component = Qt.createComponent("alien1.qml");

    var y = topline.y + topline.height + Sizer.alienYGap();

    for (var i=0; i<10; i++) {

        aliens[i] = component.createObject(board);

        aliens[i].x = ((aliens[i].width + Sizer.alienXGap()) * i) +
Sizer.alienXGap();

        aliens[i].y = y;

        aliens[i].objectName = "alien_" + i;

    }


etc etc etc


}


and then i might want to check a collision against all items in the array:


function checkBulletAlienCollision()

{

    //Loop over each alien, checking if the bullet intersects


    for (var i=0; i<50; i++) {

        if (bullet && aliens[i]) { //Check if objects exist first

            if (bullet.x > aliens[i].x && bullet.x < aliens[i].x +
aliens[i].width) {

                if ((bullet.y > aliens[i].y  || bullet.y +
bullet.height > aliens[i].y) && bullet.y < aliens[i].y +
aliens[i].height) {

                    playSound("killed");


                    score += aliens[i].pointsAwarded;

                    scoretext.text = "Score: " + score;

                    bullet.y = -bullet.height; //Move the bullet offscreen


                    explosion.x = aliens[i].x - (explosion.width -
aliens[i].width) /2;

                    explosion.y = aliens[i].y - (explosion.height -
aliens[i].height) /2;


                                        aliens[i].destroy();

                    aliens[i] = null;


                    explosion.play();

                                        if (alienanimation.interval >
100) { //Get faster when a alien is killed

                        alienanimation.interval -= 10;

                    }

                    break;

                }

            }

        }

    }

}



On Mon, Oct 6, 2014 at 9:04 AM, Peter Pykäläinen <peter.pykalai...@gmail.com
> wrote:

> Thanks Andrey!
> Will test that too tonight.
>
>
> // Peter Pykäläinen
>
> On 6 October 2014 10:39, Andrey Kozhevnikov <coderusin...@gmail.com>
> wrote:
>
>>  use
>>
>> property Item object1
>> property Item object2
>>
>> ...
>>
>> function createObjects() {
>>      object1 = component1.createObject(parent, paraneters)
>>      object2 = component2.createObject(parent, paraneters)
>>     checkCollisionsFunction(object1, object2)
>> }
>>
>> 06.10.2014 12:26, Peter Pykäläinen пишет:
>>
>>     Hi,
>>
>>  I have a problem with a dynamically created QML object and referencing
>> it.
>>  The problem is as follows:
>>
>>  - Create a dynamic QML object with createObject, assign signal to it.
>> This works fine.
>>  - Create another dynamic QML object.
>>  - I would need to check collision of these two new objects, I am using a
>> timer to check that.
>>  - Now since I can not reference both objects with their IDs I can't get
>> the collision check to work.
>>
>>  Any ideas how to achive this?
>>
>>  I have tried to use a LlistModel to store all my objects, but looping
>> through them with JavaScript slows down my application significantly, so
>> this is not an option.
>>
>> // Peter Pykäläinen
>>
>>
>> _______________________________________________
>> SailfishOS.org Devel mailing list
>> To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org
>>
>>
>>
>> _______________________________________________
>> SailfishOS.org Devel mailing list
>> To unsubscribe, please send a mail to
>> devel-unsubscr...@lists.sailfishos.org
>>
>
>
> _______________________________________________
> SailfishOS.org Devel mailing list
> To unsubscribe, please send a mail to
> devel-unsubscr...@lists.sailfishos.org
>
_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org

Reply via email to