# Trouble with HitTestObject and removeChild

**URL:** <https://forum.kirupa.com/t/trouble-with-hittestobject-and-removechild/319245>\
**Category:** Uncategorized\
**Created:** [February 14, 2011, 3:30am UTC](https://forum.kirupa.com/t/trouble-with-hittestobject-and-removechild/319245 "2011-02-14T03:30:21Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![takearushfan](https://avatars.discourse-cdn.com/v4/letter/t/ed655f/32.png) [@takearushfan](https://forum.kirupa.com/u/takearushfan)\
**Post date:** [February 14, 2011, 3:30am UTC](https://forum.kirupa.com/t/trouble-with-hittestobject-and-removechild/319245/1 "2011-02-14T03:30:21Z")

</div>

Hi all,  
This is driving me mad. I know that a code’s scope is important in whether or not various aspects of a game behave properly or not, but I’ve tried placing this everywhere and nothing works.  
For the sake of my asking for help, I’ll just mention that I’m trying to get the game to remove a MovieClip that the player should be collecting if a collision occurs.  
Can you please look over my code and advise as to what might work?  
Here we go:

```auto
var playerTimer:Timer;
var playerContainer:MovieClip;
var tempPlayer:MovieClip;
var tempGoblin:MovieClip;
var leftArrowPressed:Boolean;
var rightArrowPressed:Boolean;

function startGame():void {
    playerTimer=new Timer(500,0);
    playerContainer = new MovieClip();
    addChild(playerContainer);

    tempPlayer = new MovieClip();

    tempPlayer = new myPlayer();

    playerTimer.addEventListener(TimerEvent.TIMER, movePlayer);
    playerTimer.start();

    stage.addEventListener(KeyboardEvent.KEY_DOWN, handleKeys);
}

function movePlayer(event:TimerEvent):void {
    tempPlayer.y=tempPlayer.y-30;

    if (tempPlayer.y<0) {
        tempPlayer.y=480;
    }

    playerContainer.addChild(tempPlayer);

    if (leftArrowPressed==true) {
        tempPlayer.x=tempPlayer.x-30;
    }

    if (tempPlayer.x<0) {
        tempPlayer.x=480;
    }

    leftArrowPressed=false;

    if (rightArrowPressed==true) {
        tempPlayer.x=tempPlayer.x+30;
    }

    if (tempPlayer.x>480) {
        tempPlayer.x=0;
    }

    rightArrowPressed=false;
}

function handleKeys(event:KeyboardEvent):void {
    switch (event.keyCode) {
        case 37 :
            leftArrowPressed=true;
            break;

        case 39 :
            rightArrowPressed=true;
            break;
    }

    **if (tempPlayer.hitTestObject(tempGoblin)) {
        removeChild(tempGoblin);**[U]***// tempGoblin should disappear when tempPlayer collides with it; not working :(***[/U]
    }
}

function drawGFX():void {
    tempPlayer.x=stage.stageWidth/2-30;
    tempPlayer.y=480;

    addChild(tempPlayer);

    for (var i: int = 0; i < 15; i++) {
        var aGrassPiece:MovieClip = new grassPiece();
        var grassContainer:MovieClip = new MovieClip();

        aGrassPiece.x=Math.floor(Math.random()*15+1)*30;
        aGrassPiece.y=Math.floor(Math.random()*15+1)*30;

        addChild(aGrassPiece);
    }

    for (var j: int = 0; j < 15; j++) {
        var goblinContainer:MovieClip = new MovieClip();
        tempGoblin = new theGoblin();
        tempGoblin.x=Math.floor(Math.random()*15+1)*30;
        tempGoblin.y=Math.floor(Math.random()*15+1)*30;

        addChild(tempGoblin);
    }
}

startGame();

drawGFX();

```
