PDA

Volledige versie bekijken : array push


Celien
%Europe/Berlin %733 %2009, 17:36
for( var i:uint = 0; i < arrSnake.length ; i++)
{
snake = new Snake();
snake.x = i * snake.width + 5;
addChild(snake);
}
if(snake.hitTestObject(voedsel))
{


// een stukje "pushen" achter de slang
arrSnake.push(1);
}
nu was mijn vraagje ; wanneer mijn "snake" dus het "voedsel" raakt en die ik met push een stukje erbij doe is visueel niet zichtbaar, heeft iemand enig idee hoe dit komt??

alvast bedankt!

Bartj3
%Europe/Berlin %850 %2009, 20:24
zonder de code compleet te zien is het maar een gokje, maar loop je wel opnieuw door het for loopje op het moment dat je het stukje toevoegt?

hij gebruikt de array bij het aanmaken van de slang, maar daarna niet meer, dus als je daarna iets aan je array veranderd veranderd dat niets aan de slang.

Celien
%Europe/Berlin %567 %2009, 13:37
zonder de code compleet te zien is het maar een gokje, maar loop je wel opnieuw door het for loopje op het moment dat je het stukje toevoegt?

hij gebruikt de array bij het aanmaken van de slang, maar daarna niet meer, dus als je daarna iets aan je array veranderd veranderd dat niets aan de slang.


var arrSnake:Array = new Array(1);
var speed:uint = 5;

function init():void
{

plaatsSlangOpstage();
plaatsVoedselOpStage();
}



function plaatsSlangOpstage():void
{
// de slang op de stage zetten
// startpunt in het midden laten beginnen
for( var i:uint = 0; i < arrSnake.length ; i++)
{
...
addChild(snake);
}



snake.addEventListener( ...)
stage.addEventListener(...)

}

function plaatsVoedselOpStage():void
{

voedsel= new Voedsel();
...
addChild(voedsel);

}


function enterFrameHandler(event:Event):void
{

switch (richting)
{

...
}

if(snake.hitTestObject(voedsel))
{


// een stukje "pushen" achter de slang
arrSnake.push(1);

}

}

function keyDownHandler (event:KeyboardEvent):void
{

// doormiddel van de variabele:richting de richting kunnen laten veranderen
switch(event.keyCode)
{


}

}

init();
dit is mijn code... dus dan zou aan mijn array liggen die ik op de verkeerde manier gebruik?

alvast bedankt!

chille001
%Europe/Berlin %574 %2009, 13:47
zet je je fla online? wat je nu doet is via een array een slang op het veld zetten. Daarna ga je als je voeding raakt een (1, wat is die 1) in de array bijvoegen. Maar die array wordt nergens opnieuw gelezen, of er wordt nergens een stukje slang bijgeplaatst.
Maar het geheel kan me misschien wat meer duidelijk maken.

chille001
%Europe/Berlin %835 %2009, 20:02
Met dit stukje code initialiseer je enkel. Ook heb je een functie geschreven die gaat kijken of je slang een koekje raakt, zo ja steek je iets (1) in een array. ok
Maar dan...t is niet omdat er iets in een array steekt dat er dan iets gebeurd. Je kan bv een updateSlang functie schrijven, die er dan een extra stukje aan toevoegd met de data uit de array. In die array waar je nu die 1 steekt moet eigenlijk een stukje slang extra komen(snake). Begrijp je me. Stuur anders je fla door, zodat ik alles kan zien en je op weg kan zetten.

chille001
%Europe/Berlin %925 %2009, 22:12
probeer vooraf een goede analyse te maken van welke functies die je wil gebruiken. groeperingen van die functies kan je later in classes duwen. een cursus as3 en oop zal je veel vooruit helpen.
in bijlage een aanzet..