# Getting background to move when char jumps

**URL:** <https://forum.kirupa.com/t/getting-background-to-move-when-char-jumps/310231>\
**Category:** programming\
**Created:** [June 4, 2010, 8:51pm UTC](https://forum.kirupa.com/t/getting-background-to-move-when-char-jumps/310231 "2010-06-04T20:51:58Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Iokina](https://avatars.discourse-cdn.com/v4/letter/i/9f8e36/32.png) [@Iokina](https://forum.kirupa.com/u/Iokina)\
**Post date:** [June 4, 2010, 8:51pm UTC](https://forum.kirupa.com/t/getting-background-to-move-when-char-jumps/310231/1 "2010-06-04T20:51:58Z")

</div>

I am using Nathan Stockton’s game engine.

It is working beautifully, but now I want the ground to move as my char jumps. I have some platforms that are too high for my game screen, and so I need them to move down as he jumps up. I was hoping it would be similar to how the ground moves left and right when he walks, but I must be doing something wrong. Here is the code for my character MC

onClipEvent (load) {  
jumping = false;  
// jumping is true  
speed = 0;  
// speed is 0  
//////////////////////  
////Ammendment 1//  
//////////////////  
healthX = \_root.health.\_x;  
//sets healthX to the starting X postition of the “health” MC  
scoreX = \_root.score.\_x;  
//sets scoreX to the starting X postition of the “score” MC  
clarityX = \_root.clarity.\_x;  
//sets healthX to the starting X postition of the “health” MC  
appreciationX = \_root.appreciation.\_x;  
//sets scoreX to the starting X postition of the “score” MC  
Xpos = this.\_x;  
//sets Xpos to the starting X postition of this MC  
Ypos = this.\_y;  
//sets Ypos to the starting Y postition of this MC  
////////////////  
///////  
maxmove = 15;  
// maxmove is fifteen(max run seed)  
\_root.maxshoottime = 50;  
// \_root.maxshoottime is set to 100  
// this is how far you want the bullets to travel before deleting  
}  
onClipEvent (enterFrame) {  
//////////////////////  
////Ammendment 2//  
//////////////////  
\_x = Xpos-\_root.\_x;  
//sets the X pos to the starting X postition of this MC  
\_root.score.\_x = scoreX-\_root.\_x;  
//sets the scire MCs X pos to its starting point on the screen  
\_root.health.\_x = healthX-\_root.\_x;  
//sets the health MCs X pos to its starting point on the screen  
\_root.clarity.\_x = scoreX-\_root.\_x;  
//sets the scire MCs X pos to its starting point on the screen  
\_root.appreciation.\_x = healthX-\_root.\_x;  
//sets the health MCs X pos to its starting point on the screen  
if (!\_root.ground.hitTest(this.\_x, this.\_y, true) && !jumping) {  
// if NOT hitting X and Y postion with the ground and NOT jumping  
this.\_y += 6;  
// Y positon moves up 6  
}  
////////////////  
///////  
if (!\_root.shooting) {  
// if \_root.shooting is false  
\_root.timer = 0;  
// \_root.timer is set to 0  
\_root.mvsp = \_xscale/20;  
// \_root.mvsp is set to the chars xscale divided by 20  
// the answer to this is the speed of the bullets  
}  
if (\_root.dead) {  
// if dead is true  
this.gotoAndStop(“dead”);  
// goto and stop on the “dead” frame  
} else {  
// otherwise (if they are not dead)  
speed \*= .85;  
// speed is multiplied by .85  
// the lower the faster is slows  
if (dir == “right” && !\_root.leftblock.hitTest(this.\_x+20, this.\_y, true)) {  
\_root.health.\_x += speed;  
// moves the health, the opposite way to the \_root  
\_root.score.\_x += speed;  
// moves the score, the opposite way to the \_root  
\_root.clarity.\_x += speed;  
// moves the health, the opposite way to the \_root  
\_root.appreciation.\_x += speed;  
// moves the score, the opposite way to the \_root  
this.\_x += speed;  
// moves the char, the opposite way to the \_root  
\_root.\_x -= speed; }  
// moves the \_root

```
    //////////////////////   
    ////Ammendment 3//
    //////////////////
    if (speed&gt;0) {
        //if speed is smaller than 0
        dir = "right";
        // the variable dir is set to right
    } else if (speed&lt;0) {
        //if speed is greater than 0
        dir = "left";
        // the var dir is set to left
    }
    if (dir == "left" && !_root.rightblock.hitTest(this._x-20, this._y, true)) {
        _root.health._x += speed;
        // moves the health, the opposite way to the _root
        _root.score._x += speed;
        // moves the score, the opposite way to the _root
        _root.clarity._x += speed;
        // moves the health, the opposite way to the _root
        _root.appreciation._x += speed;
        // moves the score, the opposite way to the _root
        this._x += speed;
        // moves the char, the opposite way to the _root
        _root._x -= speed;
        // moves the _root
    }
    if (Key.isDown(Key.LEFT)) {
        // if left is pressed
        if (speed&gt;-maxmove) {
            // if the speed is greater than neg. maxmove
            speed--;
            // speed goes lower
        }
        this.gotoAndStop("run");
        // goto and stop the run frame
        this._xscale = -100;
        // scale is set to neg. 100
        // this is what rotates ur char
        /////////////////// 
        ///////////////
    } else if (Key.isDown(Key.RIGHT)) {
        // otherwise if right is pressed
        if (speed&lt;maxmove) {
            // if the speed is smaller than maxmove
            speed++;
            // speed goes up
        }
        this._xscale = 100;
        // scale is set to 100
        // this is what rotates ur char
        this.gotoAndStop("run");
        // goto and stop the run frame
    } else if (Key.isDown(Key.CONTROL)) {
        // otherwise if control is pressed
        this.gotoAndStop("attack");
        // goto and stop the attack frame
        attacking = true;
        // attacking is true
        speed = 0;
        // speed is set to 0
    } else if (Key.isDown(Key.SPACE)) {
        // otherwise if space is pressed
        if (_root.gotgun == true && !_root.shooting) {
            // if _root.gotgun is true(they have the gun) and _root.shooting is false
            _root.attachMovie("bullet", "bulleter", 1, {_x:_root.char._x, _y:_root.char._y+-95});
            // attach the movie with the Linkage name "bullet" to the _root at the character X position and the Y position minus 25
            _root.shooting = true;
            // _root.shooting is set true
            with (_root.bulleter) {
                // all code below this code and it's closer refer to _root.bulleter
                onEnterFrame = function () {
                    // setting the onEnterFrame events (onClipEvent)
                    if (_root.timer&gt;_root.maxshoottime) {
                        // if _root.timer is smaller than _root.maxshoottime
                        _root.shooting = false;
                        // shooting is false
                        unloadMovie(this);
                        // this movie clip is unloaded
                    }
                    _root.timer++;
                    // _root.timer goes up 1
                    _x += _root.mvsp;
                    // the X goes up _root.mvsp (which is set constantly and stays the same when shooting.) };
                };
            }
            attacking = true;
            // attacking is true
            speed = 0;
            // speed is set to 0
            this.gotoAndStop("shoot");
            // goto and stop on the shoot frame
        }
    } else if (speed&lt;1 && speed&gt;-1 && !attacking) {
        // if speed is smaller than one and greater than neg. 1
        speed = 0;
        // speed is set to 0
        this.gotoAndStop("idle");
        // gotoAndStop the idle frame
    }
    if (Key.isDown(Key.UP) && !jumping) {
        // if up is pressed and NOT jumping
        jumping = true;
        // jumping is set true
    }

```

\*\* if (jumping) {  
// if jumping is true  
this.gotoAndStop(“jump”);  
this.\_y -= jump;  
// Y position is set down jump  
jump -= .5;  
// jump is set down .5  
\_root.health.\_y += speed;  
// moves the health, the opposite way to the \_root  
\_root.score.\_y += speed;  
// moves the score, the opposite way to the \_root  
\_root.clarity.\_y += speed;  
// moves the health, the opposite way to the \_root  
\_root.appreciation.\_y += speed;  
// moves the score, the opposite way to the \_root  
this.\_y += speed;  
// moves the char, the opposite way to the \_root  
\_root.\_y += speed;  
// moves the \_root\*\*  
}  
if (jump\<0) {  
// if jump is smaller than 0  
falling = true;  
// falling is true  
}  
if (jump\<-15) {  
// if jump is smaller than neg. 5  
jump = -15;  
// jump is set to neg 5  
// capping fall speeds prevents falling through grounds  
}  
}  
if (\_root.ground.hitTest(this.\_x, this.\_y, true) && falling) {  
// if hitting X an Y postions with the ground and falling  
jump = 12;  
// jump is set to 9  
jumping = false;  
// jumping is false  
falling = false;  
// falling is false  
}  
}

onClipEvent (keyUp) {  
// on Key Up  
if (Key.getCode() == Key.CONTROL) {  
// if the release is control  
attacking = false;  
// attacking is false  
}  
}
