Need help with sprite1.tl.moveBy Loop .

28 views
Skip to first unread message

vmars316

unread,
Apr 30, 2013, 2:25:12 PM4/30/13
to enchantjs-...@googlegroups.com
Hello & Thanks ,

I am having a timing problem between these 2 statements 
        (way below is the full code if you want to run it):
        
this:            if (sprite1.x > 573 & sprite1.x <575) .......... 
and this:       sprite1.tl.moveBy(576, 0, 60)...........  


I want to enter this code: if (sprite1.x > 573 & sprite1.x <575)  
only once per  sprite1.tl.moveBy .loop  .
Please how can I do that ?  Thanks..vm       

         game.onload = function()
           {
             sprite1.addEventListener(Event.ENTER_FRAME, function() 
              {

            if (sprite1.x > 573 & sprite1.x <575) // 
                   {
                       // do sprite stuff
                   }  // END OF if (sprite1.x > 573 & )  
              });  // END OF  sprite1.addEventListener()  

        sprite1.tl.moveBy(576, 0, 60)   // move right
            .scaleTo(-1, 1, 10)      // turn left  
            .moveBy(-576, 0, 60)     // move left
            .scaleTo(1, 1, 10)       // turn right
            .loop();                 // loop it

          };  // game.onload = function()
 
 Full code starts here :
  
 <!-- LiveSampleObamaTest.html -->
    enchant(); // initialize
            var newLieCheck = 9;
            var oldLieCheck = 9;  //  
            var alertCount = 0;      
            var RandomNum = 0; 
            var SCREEN_WIDTH =640; 
            var SCREEN_HEIGHT =640; 
            var GameBackground01="http://www.vmars316.com/ShowMe/BengaziCompound320w.png";
            var GameBackground02="http://www.vmars316.com/ShowMe/Cow128x76.png";
//            var GameBackground03="CowPieActual.png";
            var GameBackground03= "http://www.vmars316.com/ShowMe/FrisbeeThrow.png";
            
window.onload = function() {    
    var game = new Game(SCREEN_WIDTH, SCREEN_HEIGHT); // game stage
    game.fps = 20;

    game.onload = function(){
    var scene = game.rootScene;
        
        //????????
//        var bg = new Sprite(SCREEN_WIDTH, SCREEN_HEIGHT);
//        bg.image = game.assets[GameBackground];
//        scene.addChild(bg);    
        var sprite2 = new Sprite(64, 64);
//        var sprite2 = new Sprite(32, 32);
              sprite2.image = game.assets['http://www.vmars316.com/ShowMe/sprites3.png'];
              scene.addChild(sprite2);
              sprite2.frame = [0];   // select sprite frame    
//              sprite2.x = 68; sprite2.y = 68;
              sprite2.opacity = 1.0; 

        var sprite1 = new Sprite(64, 64);  // after sprite2 ensures sprite1 is on top initially 
              sprite1.image = game.assets['http://www.vmars316.com/ShowMe/sprites1.png'];
              scene.addChild(sprite1);
              sprite1.frame = [0];   // select sprite frame

/*
        var sprite4 = new Sprite(64, 64);
              sprite4.image = game.assets['http://www.vmars316.com/ShowMe/sprites3.png'];
              game.rootScene.addChild(sprite4);
              sprite4.frame = [1];   // select sprite frame
              sprite4.x = 68; sprite4.y = 68; 
*/
        var sprite3 = new Sprite(64, 64);
              sprite3.image = game.assets['http://www.vmars316.com/ShowMe/sprites1.png'];
              game.rootScene.addChild(sprite3);
              sprite3.frame = [1];   // select sprite frame
              sprite3.x = 68; sprite3.y = 68; 

        var bg = new Sprite(320, 191);
              bg.image = game.assets['http://www.vmars316.com/ShowMe/BengaziCompound320w.png'];
              scene.addChild(bg);
              bg.opacity = 0.95;
              bg.x = 0;
              bg.y = 460;          
             
        var cow = new Sprite(128, 76);
            cow.image = game.assets['http://www.vmars316.com/ShowMe/Cow128x76.png'];
            scene.addChild(cow);
            cow.opacity = 1.0;
            cow.x = 510;
            cow.y = 564;          //   Cow128x76.png

        var Thrower = new Sprite(64, 109);
             Thrower.image = game.assets['http://www.vmars316.com/ShowMe/FrisbeeThrow.png'];
             scene.addChild(Thrower);
             Thrower.opacity = 1.0;
             Thrower.x = 360;
             Thrower.y = 532;          //   FrisbeeThrower 

        var LabelRandom = new Label('');
            LabelRandom.x = 100;
            LabelRandom.y = 150;
            scene.addChild(LabelRandom);
        
        var Label4X = new Label('Touch me!');
            Label4X.x = 100;
            Label4X.y = 80;
            scene.addChild(Label4X);
            scene.backgroundColor = '#FFF8DC'  //  '#F7F2E6';  //  '#FCEBD5';    // 
        
        sprite1.addEventListener(Event.ENTER_FRAME, function() 
          { 
            if (alertCount < 1) 
                  {
                alert("alertCount = "+ alertCount); 
                alertCount = alertCount +1;  
                Label4X.text = ("1stsprite1.x = " + sprite1.x);  
                  }
//            if (sprite1.x < 572 & sprite1.x > 568) // 572 is 4 less than 576(below)
//            if (sprite1.x > 568) // 572 is 4 less than 576(below)
            if (sprite1.x > 573 & sprite1.x <575) // 
                 { 
                    RandomNum = Math.floor((Math.random()*4)+0);
                    LabelRandom.text = ('RandomNum = ' + RandomNum); 
                      alert(LabelRandom.text); 
                    newLieCheck = Math.floor(RandomNum); // rounds down   
                    LabelRandom.text = ('newLieCheck = ' + newLieCheck); 
                      alert("2ndsprite1.x = "+Math.floor(sprite1.x));  
                    if (newLieCheck > 3) {alert(" newLieCheck > 3 ")};   
                    
                       var r=confirm("Press OK (Continue)  or  CANCEL(Exit Program)!");
                           if (r==true)
                             {
                              x="You pressed OK!";
                             }
                              else
                             {
                               x="You pressed Cancel!";
                               exit();
                               location.reload();  //  location.reload(true) forceget 
                             }  // if (r==true)
//                       if       
                       alertCount = alertCount +1;  
                       
                       
                    if (newLieCheck < 4)    // must be 0,1,2, or 3 
                    {
                      switch (oldLieCheck)
                       {
                         case 0:                      //  Obama
                             sprite1.opacity = (sprite1.opacity1 - (0.15));   
                             sprite2.tl.hide(); 
                          break; 
                          case 9:                      //  9 = 1st time in 
                             sprite1.opacity = 1.0;   
//                             sprite3.opacity = 1.0;
//                             Holder1.opacity = 1.0;
//                             Rice1.opacity = 1.0; 
//                             oldLieCheck = newLieCheck;
                          break; 
                       }
                     newLieCheck = 0;  //  do math random here 
                     switch (newLieCheck)
                       {
                          case 0:
                             sprite1.tl.hide(); 
                             sprite2.opacity = 1.0; 
                          break;
                       }
                    }    //  (RandomNum < 4)
                 }  //  if (sprite1.x < 571 &   
//                 
//              sprite1.onenterframe = function(e) {
                if (sprite1.intersect(sprite2)) 
                  {
                    scene.backgroundColor = 'magenta';
                  } 
                  else 
                  {
                      scene.backgroundColor = '#FFF8DC';
                  };
              });  // sprite1.addEventListener(Event.ENTER_FRAME, function()  

        
        sprite1.tl.moveBy(576, 0, 60)   // move right
            .scaleTo(-1, 1, 10)      // turn left  
            .moveBy(-576, 0, 60)     // move left
            .scaleTo(1, 1, 10)       // turn right
            .loop();                 // loop it

        sprite2.tl.moveBy(576, 0, 90)   // move right
            .scaleTo(-1, 1, 10)      // turn left  
            .moveBy(-576, 0, 90)     // move left
            .scaleTo(1, 1, 10)       // turn right
            .loop();                 // loop it

        sprite3.tl.moveBy(576, 0, 90)   // move right
            .scaleTo(-1, 1, 10)      // turn left  
            .moveBy(-576, 0, 90)     // move left
            .scaleTo(1, 1, 10)       // turn right
            .loop();                 // loop it
            
          };  // game.onload = function()

    game.start(); // start your game!
    };

vmars316

unread,
Apr 30, 2013, 4:58:20 PM4/30/13
to enchantjs-...@googlegroups.com
In other words , 
I would like statement " (sprite1.x > 573 & sprite1.x <575) " 
to be executed only ONCE as it goes 
forward to sprite1.x = 576 and then back to sprite1.x = 0 . Thanks..vm    

sidestepism

unread,
May 1, 2013, 7:40:49 AM5/1/13
to
How about this fix:

 sprite1.tl.moveBy(574, 0, 59)   // move right
            .then(function(){ ... })
            .moveBy(2, 0, 1)
            .scaleTo(-1, 1, 10)      // turn left  
            .moveBy(-576, 0, 60)     // move left
            .scaleTo(1, 1, 10)       // turn right
            .loop();                 // loop it

etc.

By the way, your code has some syntax mistakes. & is bitwise AND, it's not logical AND (&&). if statements expects boolean value, so && is correct way.

vmars316

unread,
May 1, 2013, 12:21:51 PM5/1/13
to enchantjs-...@googlegroups.com
Perfect:
         sprite1.tl.moveBy(574, 0, 59)   // move right
            .then(function(){sprite1Counter++; alert("sprite1Counter = "+sprite1Counter);}) 
            .moveBy(2, 0, 1)
            .scaleTo(-1, 1, 10)      // turn left  
            .moveBy(-576, 0, 60)     // move left
            .scaleTo(1, 1, 10)       // turn right
            .loop();  

&& 

Thank you very much !



Reply all
Reply to author
Forward
0 new messages