I have a game where player moves forward over (semi)random tiles. I want a hittest for when the player hits a certain tile.
However when the char hits one of the spawned in floor2's nothing happens.
I think this is because there are multiple 'floor2' movieclips on the stage ?
When i trace the bounds "getBounds" for floor2 the positions it shows keeps changing anyway to Hitest with all of them ?
function handleCollision( e:Event ):void {
if(char.hitTestObject(floor2)){
trace("hit detected");
}
This is how the player spawns in:
var char:Char = new Char();
char.x = 275;
char.y = 786;
cam.addChild(char);
This is how floor2 spawns in :
if (randomRounded > 10 && randomRounded <= 50 ){
floor2 = new Floor2();
floor2.x = -8.45;
floor2.y = 786 - tileCounter;
cam.addChildAt(floor2, stage.numChildren-1);
Extra : ( RandomRounded is a randomly generated number ), ( there is a 'Var floor2:Floor2;')
please help :(
A variable can only ever reference up to one value. So your
floor2variable can only reference oneFloor2object. If you assign a new value, the variable will reference that value.What you should do is to use an
Array, which can hold many objects.In your function
handleCollisionyou would then iterate over the array to test each individual floor object. Here's a quick untested example of how that could look like: