Question

hi please have a look at the code. When I press keyboard the object goes down however what I want is that when it reached a certain depth it should come back..any help would be appreciated , thank you

//rope coding
var rope = MovieClip(this.root).boat_mc.rope_mc;
var ropeMove:Boolean = false;

    stage.addEventListener(Event.ENTER_FRAME, ropeCode);
    stage.addEventListener(KeyboardEvent.KEY_UP, onSpacebarUp);

    function onSpacebarUp(e:KeyboardEvent):void
    {
        if (e.keyCode == Keyboard.SPACE)
            ropeMove = !ropeMove; // toggles ropeMove (i.e. if it's true, sets it to false, and vice versa)
    }

    function ropeCode(e:Event):void
    {
        //check direction of rope
        if(yDirection) 
        {
          rope.y += ropeSpeed;
        }
        else
        {
          rope.y -= ropeSpeed;
        }


        // move the rope
        if( ropeMove )
        {
            if( rope.y < 230) 
            {
                yDirection = true;
                trace(rope.y);
            }
            // stop moving if we've gone too far
            else if (rope.y > 230) 
            {
                yDirection = false;
            }
        }



    }
Was it helpful?

Solution

You have 2 checks like

if( rope.y < 230)

and

if( rope.y > 230)

I think your animation could get stuck when y is 230 so make one of those to test for equality like

if( rope.y < =230)

or add a third case

else if(y==230)

Edit: add a new variable/field named yDirection

var yDirection:Boolean=true;

when you want to change the direction flip this flag

if( rope.y <=0)
  yDirection=true;
else 
  yDirection=false;

if(yDirection)
  rope.y=+=speed;
else
  rope.y-=speed;

EDIT2 Hi had a bug in previous edit, replace the rope.y <=0 with the value you need (minY value)

EDIT3 The solutions is easy, you must check the ropeMove value,

if(ropeMove){

    if( rope.y <=0)
      yDirection=true;
    else 
      yDirection=false;

    if(yDirection)
      rope.y=+=speed;
    else
      rope.y-=speed;
} 

Your questions are very basic so you should learn the basics of algorithms,

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top